模塊化編程
From Wikipedia, the free encyclopedia
Remove ads
模塊化編程(粵拼:mou4 faai3 faa3 pin1 cing4 [e 1])係一種編程範式,講緊整軟件嗰陣,要將一個程式分做若干個喺功能上互相獨立嘅部份,每個呢啲部分算係一嚿模塊[e 2]。最理想嘅情況係,一嚿模塊就算冇咗其他模塊都可以順利噉運作,做到佢專門負責處理嗰一個功能,唔會輕機[1]。
喺實際應用上,軟件工程師製作嘅軟件閒閒哋會有幾千行原始碼,大型啲嘅 project 可能仲會有成上百萬行碼咁多。喺呢個時候,如果軟件工程師唔識得做模塊化,就會令到隻軟件難以打理——想像隻軟件嘅唔同部份高度互相依賴,是但改咗其中一部份,其他部份就即刻軭晒,又或者係其他部份即刻要大執。
模塊化編程嘅諗頭係源自 1960 至 1970 年代嘅[註 1]。而呢個概念喺廿一世紀初廣受採用。一般認為,模塊化編程能夠提升一隻軟件嘅可維護度同可讀度,令到冇份製作隻軟件嘅工程師更加容易攞隻軟件去改良、執錯或者調較。
Remove ads
應用技巧
内文:抽象化 (電腦科學)
整體嚟講,模塊化編程可以想像成係盡力將啲程式寫到有以下呢啲特性[2][3]:
- 每一嚿模塊淨係負責做一種功能咁大把,而編程員幫啲模塊改名嘅時候,最好就係個個名都清楚反映功能。
- 每一嚿模塊都有一列清楚界定咗嘅 input 參數,而除咗呢列 input 之外嚿模塊唔會接收任何嘅數據。
- 每一嚿模塊都有一列清楚界定咗嘅 output 參數,而除咗呢列 output 之外嚿模塊唔會出任何嘅數據。
- 叫一嚿模塊計任何 output 或者做任何其他嘢,嚿模塊只睇收到嘅 input 決定點做嘢,唔准自己去第道攞料。
喺概念上,模塊化編程做嘅係將個程式要解嘅問題
Python 嘅 import module 功能:
例如 Python 呢隻程式語言就充滿咗各種嘅「模塊」,想像以下噉嘅簡單原始碼(
sin
係指正弦)[5]:from math import sin # 由 math 呢個模塊嗰道,引入 sin print(sin(3)) # 叫部電腦計 sin(3),並且畀個答案出嚟。好似
math
就係一個好常用嘅 Python 模塊,包含咗好多重要(但唔係簡單加減乘除)嘅數學運算。假設math
嘅設計完美無誤,編程員可以叫部機直接攞佢哋個 Python 模塊嚟計數,唔使理個模塊運作原理係點(抽象化[e 3])都可以整到有用嘅程式[註 2]。模塊嘅做法令到做軟件工程嘅人可以集中諗自己整緊嗰件嘢嘅運作,幫軟件工程師有效噉應對高複雜度嘅軟件[註 3]。
Remove ads
語言支援
睇埋:函式庫
喺廿一世紀初,主流程式語言都有功能支援模塊化編程。例如 Python 就可以畀用家用一句陳述式(import
——嚟自英文引入或者匯入噉解)攞一啲「模塊」嚟用,呢啲模塊可以係個
以下呢啲程式語言,都有方法支援模塊化編程:
![]() |
Remove ads
優同缺點
- 可以將每嚿模塊交畀唔同 team 嘅人處理,達致分工。
- 令到啲程式比較易睇。可以睇吓易讀度[e 4]嘅概念。
- 個程式出問題嗰陣,編程小組可以輕易搵到係邊道有問題。可以睇睇可維護度[e 5]嘅概念。
- 每嚿模塊能夠獨立運作,第時可以攞去喺第啲 project 嗰道翻用。可以睇睇可翻用度[e 6]嘅概念。
不過,模塊化編程亦都有人批評,例如有人指出模塊化編程[9]
- 有陣時會引致成本上升。
- 「將啲模塊結合埋一齊」呢個過程,可以好撈絞。
等等。
類似概念
睇埋
參考
拎
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads