DAY22: 为甚麽要模组化?

今天要讲解的是模组化的重要性,我在上学期修一门网页程序设计,
在学期末需要作出实体网页时,所有的程序码通通都方在同一个项目下,
很快地随着功能越来越多,程序码变得多而复杂,其中我还用了很蠢的方法,
将同样的程序码一职重复地复制贴上,把各种功能都混在一起…,
导致後期测试的时候,一旦发现有错误,
就要在上百行的程使码间找出错误点,不但耗时还耗力。

後来才发现原来在国小上的电脑课就已经碰过模组化的功能过了,
还记得这只一直不知道它是狐狸还是猫的图案吗?

https://ithelp.ithome.com.tw/upload/images/20211003/201402445GszgpiRmd.png
(图片来源: https://www.techlearning.com/how-to/what-is-scratch-and-how-does-it-work)

接下来放上一张图片,会勾起小时候的国小童年…

https://ithelp.ithome.com.tw/upload/images/20211003/20140244j7JLZZzk4t.png
(图片来源: http://ms2.ctjh.ntpc.edu.tw/~luti/105m-programing.htm)

看到这一串串很像用拼图做成的程序吗?
当一个模组被制造出来後,它也不是毫无作用,它能被其他的模组调用使用。
(想当初..老师让我们做出这只猫?能来回走动并且碰到墙壁就反弹,
结果我做出了让它整个页面360度无死角的循环奔跑….)

而模组化是将整个大问题切割成小问题,这些小问题可以依照项目的功能做分割,
个别设计它,再将这些模组组合成有效率的系统。

https://ithelp.ithome.com.tw/upload/images/20211003/20140244xSQl1HEtwu.png

(图片来源: https://baike.so.com/gallery/list?ghid=first&pic_idx=1&eid=1516197&sid=1602994)

就像是乐高积木一样,虽然分割成一块一块地,
只要有一个对口可以拼起来,就可以组成一座房子。

同样的运用在程序上,假设像是知名的购物平台,它就像一个巨大的水池,
当今天有一个bug出现了,我需要在这巨无霸的水池中寻找那个bug,
也就是在这上千甚至上万行得程序码中大海捞针找bug…
(我有前言叙述的经验了…这找的过程一定会想哭..)。

https://ithelp.ithome.com.tw/upload/images/20211003/20140244B77f15GuWi.png
(图片来自: Nicole本人制作)

所以这个水池一定要被模块化,依照它的功能切割不同的模块出来。
比如说登入的功能转成登入模块、客服功能转成客服模块、结帐功能转成结帐模块。

https://ithelp.ithome.com.tw/upload/images/20211003/20140244RNlFeWBU2J.png
(图片来自: Nicole本人制作)

每个模块都独立的运行,而每个模块都会通过接口对外开放,使程序可以统一调用。

如此一来,当这个网购平台有功能出现bug,我可以直接找到那个功能模块进行修正,
不再大海捞针找bug,由於是模块独立运行,只要我的对外接口不变,
想随时升级、修改、替换都可以被实现;也不会出现一直同样的重叠程序码,直接调用即可;
更可以保持一制性,对於後期的维护查错都相当有利。

总结

模块化的优点:

  • 利於查错与维护
  • 提高效率
  • 减少程序的重叠率
  • 维持一制性
  • 独立运作

<<:  Day 19:二元树遍历 Binary Tree Traversal

>>:  Day 19 - UML x Component — Independent (上)

JavaScript学习日记 : Day19 - Class继承

1. extend class Animal { constructor(name = "...

[C 语言笔记--Day11] Makefile 的粗略笔记

Makefile 是一个是一个常常用来编译 C/C++ 专案的工具, 对应到 JAVA 了话,就有点...

认识HTML(四):加入图片

在HTML文件中加入图片,可以在想置入图片的地方使用img标签。 <img>是单一元素,它不用开头和...

Day6 - 程序设计报价 (ㄧ)- 报价单的 Bug

老实说,在自己还没转型以前,我最讨厌的部分就是接洽新专案这个环节,从询问来信开始,初步了解需求,然後...

day 2 - 先看清楚目标的样子再动手

画流程图是我的第一堂程序课内容,大学教授讲了很多话,我记得的寥寥无几,其中一句话是:你画的出来就写得...