模塊化編程

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 決定點做嘢,唔准自己去第道攞料。

喺概念上,模塊化編程做嘅係將個程式要解嘅問題dap6散做若干個可以分開噉嚟解嘅細問題,每個細問題由一個模塊嚟處理。每個模塊夠簡單,對人腦嚟講容易思考。事實係做軟件工程嘅人開親 project,第一步好多時就係要諗吓手上嘅問題可以點樣揼散[4],而且佢哋仲往往會每個模塊都有 teamtim1 人專門負責處理,唔同 team 嘅編程員會各自噉做自己嘢,到咗最後先至會將啲模塊結合埋一齊,出到想要嗰件成品。

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 ——嚟自英文引入或者匯入噉解)攞一啲「模塊」嚟用,呢啲模塊可以係個 folderfou1 daa2*4 入便其他 Python 腳本嘅類別或者子程式等。句嘢結合咗兩個功能:去搵用家想要嗰嚿模塊返嚟,然後畀個名佢,等用家可以喺個程式入面召喚嚿模塊[6]

以下呢啲程式語言,都有方法支援模塊化編程:

Remove ads

優同缺點

模塊化編程被指有好多優點,包括咗[7]:p 10 [8]

  • 可以將每嚿模塊交畀唔同 team 嘅人處理,達致分工
  • 令到啲程式比較易睇。可以睇吓易讀度[e 4]嘅概念。
  • 個程式出問題嗰陣,編程小組可以輕易搵到係邊道有問題。可以睇睇可維護度[e 5]嘅概念。
  • 每嚿模塊能夠獨立運作,第時可以攞去喺第啲 project 嗰道翻用。可以睇睇可翻用度[e 6]嘅概念。

不過,模塊化編程亦都有人批評,例如有人指出模塊化編程[9]

  • 有陣時會引致成本上升。
  • 「將啲模塊結合埋一齊」呢個過程,可以好撈絞。

等等。

類似概念

睇埋

參考

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads