昨晚写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的思想,节省部署的时间和复杂度
结论:
在没有提供使用场景和生命周期的情况下,说一个通用的项目应该具备哪些条件就是耍流氓。
在一般意义上,够用就好就足够了