2019年1月7日 星期一

程式設計的層次

是我太敏感?
教程式,但一直覺得少了什麼。
外型,使用上都對,但就是少了一點點。

就像廚師學徒,拿到對的菜料,做出來的菜顏色也對,用看的看不出問題,但就是少了一點點佐料,整個味道就是出不來。

然後我提出程式設計層次,是個人學習不同方法所得的,以C為例
1. 程式語言控制
   基本語法的使用,主要在程式可以執行出想要的結果。
   換成不同語言,就會重來。像從組合語言轉成C,很多人重建程式語言控制不如預期,會退回去。

2. 資料結構
   程式不只處理單次資料,不斷的有資料會進來。於是要學會多種不同型式的資料處理。
   然後就會將資料打包,以方便程式可以做批次處理。也就是處理一整包的資料。若不這樣做,程式會很散亂。
   大一點的程式也會出現管理問題。
   圖型處理很考驗這個等級。

3. 結構化程式設計
   資料結構化了之後,發現程式也可以。同時認知程式其實是以資料處理為主。程式設計開始有架構性。也開始有簡單的程式模型行為:資料流,控制流。在控制流上的數值,可以改變程式執行流程。一般人會利用switch case等結構做為主體。

4. 函式指標
   因為結構化程式設計對於規格改變會有較大的程式調整,就是改switch case的內容。但不可能每次都可以小調整。運用函式指標可以得到更大的靈活性。控制流以函式指標做切換,大幅簡化程式架構。使得修改及管理變得很方便。

5. 物件化資料結構
   將函式指標和資料結構合起來管理的方法。軟體規格開始工程化。C只能做到這個地步。
   作業系統會寫,就算是這個層級畢業了。因為已可以動態新增工作。

6. 物件導向程式設計
   變成程式架構設計,物件可以在需要時才生成,沒有用時消減掉。需要語言支援。但理論仍可以套用到C及MCU設計上。架構設計個人一直卡很久,直到學了電腦語言設計才知道如何使用。
   原來可以利用程式新創另一個執行模型,一般就是創造一個新的語言。一個語言有自己的心中思想,有些部分想到靈活化,有些部分想要簡化(中間步驟要自動化)。

最後二階必須要學會作業系統設計及電腦程式語言設計才算是畢業。

沒有留言:

張貼留言