正文

日本的程序代码风格强吗?2006-02-05 14:43:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/sgpro/9990.html

分享到:

我一直认为我的代码风格是好的, 毕竟经历长期的磨练, 可是和公司的要求不符合,  当然在一个团队里面必须遵守统一的归约, 这无可争辩, 可是他们硬是要说我的风格差, 我就不服了. 有的同事还振振有词地说我要摒弃以前的陋习,  弄的我自己真的怀疑我的代码风格是不是真的不好, 后来问了项目经理, 才真相大白!!! 举一个例子, 大家看看: 相同的程序, 我的代码是这样写的(省略注释,不是公司内部代码,不要对号入座) 01: public  bool   ShowClientDataSet( string  argQueryStatement) 02:{ 03:      bool  bValRet ; 04:     System.SqlClient.SqlDataReader  res; 05:       res  =  new  System.SqlClient.SqlDataReader(); 06:      try 07:      { 08:            res = this.DbConnection.ExecuteQuery( argQueryStatement ); 09:      } 10:      catch (SqlException excQueryException) 11:      { 12:                  this.ApplicationLog.Add("Query Error , occured:" 13:                               +  excQueryException.ToString()); 14:    } 15:    int iCount = 0; 16:    try 17:    { 18:          while  (  res.Read()) 19:          { 20:                  res.GetValues(this.objDataSet); 21:                  this.viewInterface.ReceiveDataSet(this.objDataSet); 22:                  iCount++; 23:           } 24:    } 25:    catch (SqlException excQueryException) 26 :   { 27:             this.ApplicationLog.Add("Query Error , occured:" 28:                          + excQueryException.ToString()); 29:    }  30:   if ( iCount > 0 )  31:    { 32:             this.viewInterface.Show(); 34:            bValRet = true; 35:    } 36     else 37 :   { 38:               bValRet = false; 39:    } 40:    return   bValRet; 41:}   公司按照日本客户要求的: 01:  public  bool   ShowClientDataSet( string  argQueryStatement) { 02:      SqlDataReader  res = new  SqlDataReader(); 03:       try  { 04:       res = DbConnection.ExecuteQuery( argQueryStatement ); 05:     int count = 0; 06:     while  (  res.Read() )  { 07:        res.GetValues(DataSet); 08:        Interface.ReceiveDataSet(DataSet); 09:        count++; 10:       } 11:    } catch (SqlException ex) { 12:             ApplicationLog.Add( ex.ToString()); 13:      }  14:   if ( count > 0 )  { 15:         Interface.Show(); 16:         return true; 17:   }  else { 18:        return   false; 19:       } 20:}   最显著的区别是代码长度,  我的是41行, 公司的是20行, 主要发生在,: 一:  我的缩行形式是微软形式的, 公司沿用的是PASCAL形式的, 我觉得PASCAL形式早在80年代就应该被淘汰.不知道为什么先进的Eclipse IDE也使用这样的. 二: 我使用了两个try,catch, 公司只用一个, 我的理由是两个异常的发生的原因是不一样的.方便调试. 三: 我使用了一个bValRet变量, 而公司使用了两个return语句, 我的理由依据理论上的是算法最好使用单出口, 所以不使用两个return 四: 我使用定义和赋值分开写法.公司却写在一起,这是我的习惯, 没什么理由 五:方法的参数个数多, 或者字符串长度长的时候, 我会分行。公司迫不得已的情况下不分行. 上面五个方面会显著影响代码长度, 在学校读书的时候, 我就这样做,只考虑代码清晰, 不考虑代码行数问题 另外: 我使用的变量名前缀是小写的类型名,后面的单词用大写字母区分, 类名会完整地写上命名空间,类内引用自身属性一般加上this. 公司使用的是JAVA类库的写法, 我很 Shit 的写法 不知道SUN是怎么想的。   总的来说, 我更喜欢自己的写法, 有一次和项目经理聊天, 终于知道了真相, 其实并不是我的风格不好, 是因为日本客户为 了防止程序开发商的代码写地过长所规定的, 上面这段程序, 按每行2圆的价格交易的 话,  我的程序日本客户要付82元, 而公司交易的, 日方只要出40元,  TMD我们劳动力本来就 如此低廉, 他们还要在里面绞尽脑汁地缩水,  一个这么有钱的国家也这么吝啬, 可见我们被 日本人鱼肉的现状.   不知情的人还大势吹嘘这种风格好, 要我抛弃以前'陋习.  被人卖了还帮别人数钱, 悲哀!!   

阅读(6212) | 评论(19)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

loading...
您需要登录后才能评论,请 登录 或者 注册