嵌入式工程師瑞士刀 (1) Hello World 程式
緣起
我們團隊使用指令搞(build script)作為單一入口,用起來很爽。我們盡可能優化速度,但還是有些無法突破的極限,這裡就假設一分鐘吧
開發行為包括{人類思考,寫軟體,編譯,執行}。假如開發一個函數,加上測試總計100輪。用指令稿開發,等待的低消是100分鐘,人可能去收信,回訊息,注意力就掉了
Hello World
怎麼讓注意力保持集中?想辦法不分心吧!
- 用順手編輯器寫Hello World,我用隨處可見的gvim。應該50秒寫得完
#include <stdio.h>
int main()
{
printf("Hello World\n");
return 0;
} - 在terminal執行以下命令,編譯和執行的命令寫一起,10秒就搞定
gcc -m32 hello.c; ./a.out
開發活動的時間分佈
- 搭建Hello World測試環境,一分鐘(extra)
- 複製貼上測試的函數,跑10次修正build error(extra)
- 測試各種輸入數值,跑90次,編譯和執行時間可忽略,瓶頸在人類
- 移植回去(extra)
步驟1可能得去Google找範例(建議背起來),步驟2碰運氣,步驟3 {人類思考,寫軟體,編譯,執行},不用等待,沒有收信或回覆訊息的誘因;步驟4理論上幾輪就搞定了
Hello World也能開發大一點的模組,反覆做實驗,最後再整合回去。因為速度飛快無比,精雕細琢程式碼也不會多麻煩。帳面上多了3個步驟(1/2/4),但是時間大幅縮短
最後一步是調整軟體架構,隨時能用gcc建構模組,未來開發從步驟3出發,用來清理建構錯誤,做實驗就是比較快!有這種環境,做重構(Code Refactor)或是測試驅動開發(Test Driven Development)才變得現實
結論
使用Hello World工具,用最少的工具即可執行,是工程師必備瑞士刀
- Terminal
- Editor
- Compiler
下一篇回答:為什麼編譯指令下-m32
留言