新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 牛人業(yè)話 > 一線研發(fā)之聲 之 完美主義者的程序員特征

一線研發(fā)之聲 之 完美主義者的程序員特征

作者: 時(shí)間:2014-07-30 來源:網(wǎng)絡(luò) 收藏

  3.、換行、替換、{}保護(hù)、還有效率。

本文引用地址:http://butianyuan.cn/article/256101.htm

  if((long_state_var==1)||(long_state_var==2)||((ch>0x2F)&&(ch<0x3A)))

  do_something();

  看到這種,他就感覺渾身難受、頭暈惡心…..

  狂吼一聲,這段立馬會(huì)給改成這樣。

  if ((long_state_var==1)||(long_state_var==2)

  ||((ch>0x2F)&&(ch<0x3A)))

  {

  do_something();

  }

  長字符行要換行,模塊要添加{}保護(hù),這是做人的底線。

  再瞄一眼,會(huì)發(fā)現(xiàn)沒有也很讓人難過。

  趕緊快速編輯了而下,舒了口氣。

  if ( (long_state_var == 1)                

  || (long_state_var == 2)                 

  || ((ch>0x2F) && (ch<0x3A)) )

  {

  do_something();

  }

  加上的美化,更有層次感。

  當(dāng)他開始維護(hù)這段,搞清楚邏輯后,無意義的就會(huì)被處理成這樣的,長變量名也會(huì)被適當(dāng)縮短。而0x2F、0x3A這種坑爹的的,則會(huì)被他心里狠狠地鄙視:

  “丫丫的,原創(chuàng)者這是在炫智商、秀優(yōu)越嗎?”。

  #define MODE_NAME_1 (1) /* 簡單描述模式1 */

  #define MODE_NAME_2 (2) /* 簡單描述模式2 */

  if ( (stat == MODE_NAME_1) || (stat == MODE_NAME_2)

  || ((ch>='0') && (ch<='9')) ) /* 數(shù)字字符 */

  {

  do_something(ch);

  }

  常量用宏替代,這樣的代碼意圖會(huì)比較清晰。

  后來他感覺,還是有些不妥。干脆又改了下,最后變成這樣。

  #include

  ……

  if ( (stat == MODE_NAME_1) || (stat == MODE_NAME_2)

  || is_digit(ch) )

  {

  do_something(ch);

  }

  is_digit的加入,使得代碼與注釋渾然天成。

  后來他在優(yōu)化過程中發(fā)現(xiàn),ch的值在99%的情況下都滿足'0'~'9',

  這個(gè)時(shí)候,這段代碼又會(huì)被優(yōu)化成這樣的。

  if (is_digit(ch))

  {

  do_something(ch);

  }

  else if ((stat == MODE_NAME_1) || (stat == MODE_NAME_2))

  {

  do_something(ch);

  }

  else

  {

  /*已考慮無誤*/

  }

  為了效率,可以犧牲一點(diǎn)代碼可閱讀性。



關(guān)鍵詞: 代碼 常量 空格

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉