如果把软件开发当成艺术,我想程序员是需要个性的! 倘若把它看作工程,我想共性是大家更看重的东西!
在一个人负责的项目里,抛开其它因素,你完全可以随心所欲,将自己的所思所想随意的发挥出来,把它当作艺术品来雕琢!然而,如果是多人合作开发产品,你的个性产物应该获得大家的认可,对项目是有益的,可以变成共性的东西来普遍使用。
举个例子:DataSet.Fields[i]和DataSet.FieldByName('fieldName')这两种定位数据字段取值的方法,程序员们就各有偏爱。前者取用方便、灵活,特别是在循环语句体内。但是在表结构变化的情况下(如增减字段,这往往很常见)变成了一个非常隐蔽的Bug,只要不越界,就不会有显式的错误提示!而错误的确存在,因为这字段不是你要的了!这类的问题往往很难排查!
写过软件的人都知道,只要软件没有走到它的生命尽头,就有可能要维护,而往往维护的那个人不是写代码的人,所以在团队开发中你写的代码,不仅仅只考虑满足功能和性能要求,还要考虑代码的可读性,可测试性,可维护性!
但这与个性和共性有什么关系呢?在团队开发中,一般都会有一些制度或是约定(如编码规范等),这些讲的就是共性,这些往往都是经验的积累,对项目是有益的,需要大家共同遵守的东西!但是不是你的个性不能发挥呢?完全不是,只是需要在遵守这些共性的前提下来表达你自己!因为,个性只有在共性的基础上才有价值!