公司是否应该在所有开发工作中强制使用单一架构?

时间:2009-02-12 13:58:48

标签: architecture user-interface doctrine

我知道这是一个略带修辞的问题,但我希望听到支持或拒绝这一学说的意见,因为它将帮助我在我的请求中建立一个更好的案例,不使用口述的解决方案。

一点背景:我开发并维护一个大型,成熟的应用程序(UI的VFP,中间和后端的Oracle PL / SQL),内部使用严格。我已经要求我的上级重新编写C#中的UI,但我被告知所有未来的开发工作都要在Java / Spring中完成。我已经解释过,从桌面应用程序到Web应用程序的工作量远远大于简单地迁移到C#。我还解释了整个UI如何进行重大的重新设计以转换到Web浏览器。最后,我解释说这个应用程序仅在内部使用,因此与外部应用程序将获得的好处相比,实现Web架构不会带来太多好处。不幸的是,我的论点没有动摇他们。

我的一部分很想投降并尝试用Java重写,这样我就可以获得经验,但我担心这可能是一个项目的灾难,需要花费四倍于迁移到C#的时间和精力必需的。

我知道让一个部门只支持一种语言会有好处,但对我而言,感觉就好像我们正试图用锤子驱动螺钉。

那么,对于所有开发工作,使用单一解决方案的公司的积极和消极是什么?此外,是否有其他人发现自己处于类似的情况,尽管有这种选择的所有实际原因,他们的选择语言被拒绝了?

5 个答案:

答案 0 :(得分:2)

公平地说,所说的问题是一个稻草人的论点。当然,如果我们从字面上理解“无论成本”条件,答案就是

编辑:OP删除了“无论成本”的措辞,我的其余答案仍应适用。

尽管如此,通常强制执行单一架构的原因是为了节省成本。他们希望每个人都投入到这个架构中。如果该架构适合他们处理的大多数问题,这可以降低其成本。那么问题就变成了:执行架构的节省是否值得偶尔使用它来解决不合适的问题?

在许多情况下,答案仍然是否定的,但不是黑白分明,这取决于贵公司的业务,核心竞争力所处的位置以及他们真正感兴趣的项目。

答案 1 :(得分:1)

我同意你和Rob Wells的说法,强制执行单一架构原则是一个坏主意。在这种情况下唯一可行的方法是对每个解决方案的成本进行分析(Java Vs. C#),并使用实际数字和确凿证据向他们进行演示。您还可以尝试查看是否有任何案例研究。如果它们不可用,您可能想看看是否有其他公司做过类似的事情,研究其影响并用它来说服您的管理层。也就是说,这可能比编写Java(Kidding :))更多的工作。祝你管理层好运,祝你好运。

答案 2 :(得分:0)

没有

这就像去一位只能使用混凝土的建筑师。

您只能将单个解决方案叠加到所有问题空间。

编辑:请注意,很难说服任何管理层认为有价值的投资回报率来自重写成熟系统。

答案 3 :(得分:0)

通常不会强制使用体系结构来使一个项目团队的生活更轻松,因此除非您使用Java / Spring,否则它将为您带来一些成本。

Java和webapps的选择不一定只是一种语言。

公司可能要求单一架构的原因有很多。您需要了解公司为什么这样做的原因以及公司的价值。

这样做的原因可能包括

  • 必须保持专业知识,只用一种语言和工具链培训人员
  • 由于技术类似,因此可以更轻松地在项目之间移动人员。
  • 使维护更容易,因为以后处理该应用程序的人员不必知道多种语言。
  • 无需为多种语言购买工具(IDE,重构浏览器等)
  • 更轻松地使用非Windows桌面
  • 降低支持应用程序的运营成本(例如,无需桌面安装,或通过减少他们需要知道的技术数量)
  • IT总监正在从Java工具供应商处获得回复:)

因此,采用该架构既有好处,也有成本。您需要表明您至少了解其中的好处,并且可以说明为什么在这个项目中使用您的首选语言具有公司意义。

为什么你认为这将是一场灾难?是什么让Java非常适合重写?你需要小心,你不会因为有一种最喜欢的语言,只是一些你还不知道的坏话而过来。

答案 4 :(得分:0)

如果考虑维护成本,限制“制裁”架构的选择是有意义的。它使人们甚至整个团队在项目之间移动变得更加容易。