在一家网络初创公司,让工程师负责功能的前端和后端(基本上负责整个功能)是否更常见?还是工程师们把后端和前端分开了?
哪些方案更有益,哪些情况下更有利?
我注意到,关于由一名工程师负责整个功能的缺点是,这个人可能只在前端或后端开发中特别强大,而不是两者都很强,因此有时速度和质量都会下降。
让前端和后端开发人员在一个特性上提高功能的速度和质量,并鼓励协作。但我担心的是,有2名工程师在一个功能上工作,这可能是一个资源使用不良的问题,因为1名工程师可以被安排在另一项功能上进行工作。
在小型早期启动阶段,分配后端/前端工程资源的通用/最佳实践是什么?那么,随着它的成长,它将如何变化呢?
发布于 2011-09-12 06:47:35
以下是我14年经验的智慧:
发布于 2012-08-02 20:18:45
最好的答案是“鲨鱼”,但只有最后一部分“它取决于”。根据我的经验,大约16年左右,我看到这两种选择都尝试在各种不同的配置。作为一个完整的堆栈开发人员,下面是我要学习的内容:
*(BE =后端,FE =前端)
结论:
如果你是一家初创公司,而且你没有太多的时间或金钱去消耗,那就不要雇佣FE或者仅仅是开发人员。聘请高级网页开发人员和一个优秀的用户/设计师,他们将尽快得到你的应用程序。它们的价格更高,但它们的效率要高得多,而且你所需要的也会更少。
发布于 2013-07-22 09:45:36
我认为这个问题是错误的。
我参加过的所有初创公司都不是只有FE架构的。
我认识的大多数初创公司都有:
API是无状态的,很容易被模仿--即使不需要。见鬼,如果我必须从头开始一个项目,我可能会从一个完全在模拟上工作的整个UI开始--这将是非常适合演示的。大部分反馈都是由UI引起的。顾客注意到更多-(取决于你的目标受众)。)
例如,Google搜索有一个核心组件,它可以抓取网页,索引它等等。谷歌用户界面是一个完全不同的世界。这个核心可以很容易地支持非WWW搜索,而UI不能。
这样,您的UI是“可插拔的”,并且您有不同的关注点。
您提到了开发知识,但是您忽略了项目管理方面。虽然核心团队可能需要2周的冲刺持续时间,UI团队将使用CI -所有的东西都上传所有时间。核心团队需要向后兼容性,而UI则不需要。
语言不同。您可能需要C开发人员为核心组件-如果它运行在一个单一的操作系统上,因为UI将编写为跨OS语言。
测试各不相同。UI测试世界是我所知道的软件开发中最复杂的领域之一。大多数初创企业都忽视了这一点,并对后来的决定感到遗憾。测试时不能分离BE和FE。它必须是一个处理它的单一单位。
开源UI --将两者分开的最大好处之一是你可以开源你的UI。UI项目需要开源支持。
我无法想象一个UI开发人员无法理解整个session特性。您知道-在不同的请求之间登录并保持登录的位置。没错,他们可能知道PHP,而不是Java。但是BE的概念应该是明确的(例如使用加密的cookie)。具体的语言障碍是错误的-每个开发人员都应该愿意在任何语言中工作。几年前,谁会想到他们会用JavaScript写字呢?
如果你继续拥有3个团队:核心团队、BE团队和FE团队,这是对资源的浪费。那DB呢?你应该有DBA吗?为什么BE开发人员应该知道DB而FE开发人员不知道BE和DB?是没有限制的。
如果你需要专家,而且你会的话,外包他们会很好。他们通常交付高质量的代码,而且他们做得相当快。你不一定要他们在家里,因为如果他们离开,你就会迷路。此外,你今天可以在网上得到很好的建议。尖端的东西可能需要不同的方法。
因此,结果基本上是一个非常薄的UI,每个FE开发人员都可以开发。如果您在UI中有一个很厚的BE,那么您很可能在Core中需要一些API功能。
总是至少有一个开发人员在其他项目中脱颖而出。考虑到这么瘦的FE,他/她可以设法在BE代码中支持(而不是开发)其他开发人员。我的看法是,这个开发商处于一个非常好的地位,应该得到适当的奖励(而不是在薪水,其他东西)。我也相信他们能够正确地处理构建过程和构建。
这个模型为您提供了非常大的灵活性。在过去的几年里,BE世界经历了几次翻天覆地的变化,所以我不建议过于依赖稳定。核心是另一个故事。
还有一个问题-- FE和是同一个项目吗?您应该注意到以下几点
我可以继续,但我希望这是明确的,我认为BE和FE应该是同一个团队,但可能是不同的项目。
https://softwareengineering.stackexchange.com/questions/107503
复制相似问题