※以下內容皆是新手撰寫,內容可能不完全正確
或許有人覺得奇怪,都已經第三天了還沒有切入實際寫程式的部分,為什麼不像其它自學程式語言的筆記,寫完程式語言簡介後第二篇就開始寫Hello world、介紹變數?
那便是因為鄙人有身為出新者的自知之明,不像其他有經驗的人們是「再多學一個程式語言」,必須從基礎開始紮根。有了這樣的覺悟,一些不清楚的分類和特質都會想先搞懂,以免下次看到的時候依然不懂,不懂的東西越積越多,以致最後放棄學習(好吧,有點悲觀過頭了)。總之,稍微了解一下以滿足自己的好奇心 (◕‿◕✿)
「什麼是程式設計法?」
程式設計法(Programming paradigm(s)) 講白一點就是程式語言用來處理某些問題的風格/方式,或者,照著某種規則/規律使用我們手上的工具和技巧。使用市面上任何的程式語言時,所有程式語言都各自遵循某些法則,而這些法則和策略就是程式設計法。認識一些程式設計法後,下次看到會有一點概念(吧)。
以下是我在看完這些程式設計法和例子之後歸納出的C#程式設計法懶人包(C#為多重程式設計法類型程式語言),因為我個人不喜歡看擠滿文字的大段落:
結構化程式設計法(structured programming) 用(if、then、else)和重複(while、for)等結構取代舊式用法,提高程式的品質及開發時間。
指令式程式設計法(imperative programming) 相較於告訴電腦「該做什麼」的宣告式程式設計(declarative programming),指令式程式設計直接告訴電腦「該怎麼做」,讓程式讀寫方面更便利。
函式程式設計法(functional programming) 和指令式程式設計相反的概念,雖然C#主要屬於物件導向程式語言,卻有許多支持函式程式設計法的功能。
物件導向程式設計法(object-oriented programming) 資料結構變成包含資料和函數的物件,可在物件(有功能的小片段)間創造關係。
事件驅動程式設計法(event-driven programming) 以事件作為軟體開發的基礎,如按某個按鍵、輸入文字、點擊某個選項等。
非同步方法模式(AMI) e.g. 某網頁的圖片跑出來之前,網頁視窗已經先出現。
泛型(generic programming):演算法和函式用類別(types)做區分,以便對所有資料類別起作用。
反射程式設計法(reflective programming) 是程式在跑的同時,能監視並修改程式的行為。
並行計算(concurrent programming) 相較於順序程式設計一條計算進行完才跳下一條,並型計算程式設計系統中有兩個以上的計算同時進行。
不曉得這些簡單的解釋是否有助於理解◃┆◉◡◉┆▷?
下一篇會開始實際操作的部分(大概吧)
參考資料:
(a) Introduction of Programming Paradigms (GeeksforGeeks)
https://www.geeksforgeeks.org/introduction-of-programming-paradigms/
(b) Structured Programming (Techopedia)
https://www.techopedia.com/definition/16413/structured-programming
(c) Wikipedia