我们正在开发一个B2B web应用程序,在其中我们使用两个服务器(由老年人推荐)。一个是Node.js (用于服务所有与请求相关的html &静态内容),另一个是Tomcat,用于实现用于服务后端的REST服务。
我认为如果我们考虑以下几点,便会增加不必要的开支:
用这样的建筑决策来考虑这些风险,我是否错了?在功能和功能重叠的情况下,决定使用两个完全不同的框架的潜在理由是什么?
发布于 2017-04-12 09:49:52
如果您使用的是微服务,那么使用哪种技术编写的微服务应该无关紧要。
为系统的两个部分配置两种语言和运行时可能有一个缺点,即必须配置两种类型的部署,但如果做得好,应该不会很复杂。
另一方面,这似乎是为这项工作使用了正确的报酬。如果您需要两个工具,那么您应该使用两个工具,而不是仅仅为了最小化所使用的工具的数量而使用一个工具。请注意,适合这项工作的工具不仅是对特定目的的抽象适应,还需要考虑其他因素,如人们的经验、已经编写的工具、可用代码、库、体系结构等。
另外,拥有两个独立的系统将强制执行明确的API边界。这可以帮助减少泄漏抽象和紧密耦合,所以在一天结束时,它可能不是一个糟糕的想法,它可能听起来像在一开始。
记住,需要Node开发人员和Java开发人员并不意味着需要更多的资源。您不认为这些开发人员中的任何一个都可以同时创建系统的两个部分,对吗?
发布于 2017-04-12 13:12:51
我不是“最佳工作工具”哲学的粉丝。但这是一个大问题,而不是一个技术问题。
一般来说,招聘人员喜欢将开发人员捆绑到技能集/堆栈中。Java,Microsoft,JS。如果你坚持一个堆栈,那么很容易招募新的开发人员。每个人都知道比赛的环境。
这并不是说那些开发人员没有能力捡起一个随机的堆栈,让它工作,这只是世界的运作方式。
公司希望雇佣那些以前在其他地方做过同样事情的人。如果你开始使用随机技术,你就会从众所周知的简单道路上跌落下来,让你的生活变得更加艰难。
此外,在技术方面,您希望能够重用您的低级别组件。日志记录,数据库访问,云api包装等等。如果你坚持一个堆栈,你可以只有一组这些。
当然,在这个想法中隐含的是,您选择的堆栈确实为您的问题提供了一个可行的解决方案。如果你想在android手机上安装一个小部件,你必须用xml/java来实现。
https://softwareengineering.stackexchange.com/questions/347029
复制相似问题