2008年11月16日 星期日

百萬程式碼

http://4rdp.blogspot.com/2008/11/blog-post.html?m=0

這陣子工作壓力很大,差點喘不過氣來。最近開發新產品,集結多項工藝技術在產品中,無論電路硬體或軟韌體設計,都有極高技術門檻,同業競爭者想設計同類商品,還有的搞。對不起,不是要故弄玄虛,而是產品還未上市前,不能透露,況且這是工業用商品,不是給一般使用者用。 

這產品內含多顆 MCU,程式碼高達百萬字元以上,都是由我以及剛離職的同事共同開發,他因為家庭工作無法兩頭兼顧,最後選擇離開公司。現在則由我繼續負責專案完成,其它工程師協助解決已知 bug,另外涉及輸入、輸出與通訊多樣功能技術,再加上日程短促,才會搞得精疲力竭。

我的專長在設計技巧的展現,把別人的程式壓縮剩五分之一大小 (MCU ROM容量減半、功能加倍),這樣可以降低成本,並且執行效能也不差,我並沒有別人的原始碼參考,只知道所需的功能,把它寫得越精簡以及具有快速效能,日後有空再討論資料結構問題。不過年紀大了、程式碼太多,沒辦法面面俱到,臭蟲一大堆還有得努力才能解決。 

執行過這麼多的案子,程式設計師很少用到高深的數學,但是沒有達到高中畢業的數學程度,恐怕有些程式是寫不出來的。另外,寫程式邏輯概念要很清楚,條件式要弄對,否則臭蟲會更多,舉例來說,A 型的人喜歡吃橘子也喜歡吃蘋果,B 型的人喜歡吃橘子不喜歡吃蘋果,條件式可寫為:
   if (like orange) {
      if (like apple)
         A type;
      else
         B type;
   } else {
      other type;
   }
大多數情形,設計文件不會提到例外狀況,設計時候沒考量到,遺漏這些其它類型,系統就會出現奇怪狀況。 

到新公司上班,通勤時間變長了,為了多一些上班時間,每天早出晚歸、假日加班,還好老婆能夠體諒,不然這段日子壓力更大。

沒有留言:

張貼留言