‘好’得边界

昨晚写JVM收集器的选择,说到编程中到处都是TradeOff,想起了前几天QQ群的一些讨论;

问:怎么样的一个工程才算是比较好的工程

群里面比较多的答复是;

比如有VCS啦,能够DevOps啦,还有关注代码质量啦。

但是在我看来,这些都没说到点子上。我认为一个好的工程应该是和其应用场景及生命周期相关的

Example 1:

我写了一个HelloWorld想学习一门新的语言,比如Java,那么这时候我们只需要一个Vim,一个JDK就足够了,就是一个好的工程了

Example 2:

我做了一个工具,能够自动的收集所在计算机的负载数据,我需要的数据在很长范围内是不会增加或者改变的,那么我随便一个IDE,怎么写得快就怎么写,这样可以快速使用,连VCS都可以不用有

Example 3:

我对外声称了一个比较小型服务,比如计算A+B的结果,那么我只要SVN和一个tomcat加上一个IDE就足够了,什么Spring,什么Struct都不需要。30KB+tomcat大小足以

Example 4:

我对外声称提供越来越多的服务,这时候可以用上DevOps的思想,节省部署的时间和复杂度

结论:

在没有提供使用场景和生命周期的情况下,说一个通用的项目应该具备哪些条件就是耍流氓。

在一般意义上,够用就好就足够了