我最近发现自己处于解释我写给我公司喜欢雇用的两名候选人的(内部)应用程序的位置,以协助维护和添加次要功能。
这是我编写的第一个“生产”应用程序,它有 45k LOC,我花了将近两年的时间“单独”开发它。我还很年轻(18 岁),从头开始编写应用程序,同时被签约为一名离开公司的前开发人员的替身。在设计这种规模的应用程序方面缺乏经验,我尝试使用常见的架构和设计模式。
今天我知道我做了一些严重的过度工程,例如使用断开连接的更改跟踪架构而不是所选 ORM 已经实现的工作单元模式。我可能永远不必去“真正的”三层。
两位候选人在相关平台的内部应用程序开发方面都有 10 年以上的背景。作为他们的一半年龄并且没有什么经验,我确实尊重他们的意见。当我向他们解释应用程序架构时,评论大致如下:
- 天哪,没有人会付钱让我做那样的事情,我必须把事情做好
- 坚持框架的功能,不要使用花哨的库/技术
- 不要包装框架代码。在一个团队中,无论如何,每个人都会编写自己的包装代码。
- 您使用的是 .NET 3.5?好吧,我们使用的是 2.0。
- 那些 LINQ 的东西给我带来了什么?所有这些查询组合和投影似乎都太复杂了。
现在我问自己:
我是一名建筑宇航员吗?我怎么知道我在建筑方面走得太远了?过度工程的常见症状是什么?