今天要讲解的是模组化的重要性,我在上学期修一门网页程序设计,
在学期末需要作出实体网页时,所有的程序码通通都方在同一个项目下,
很快地随着功能越来越多,程序码变得多而复杂,其中我还用了很蠢的方法,
将同样的程序码一职重复地复制贴上,把各种功能都混在一起…,
导致後期测试的时候,一旦发现有错误,
就要在上百行的程使码间找出错误点,不但耗时还耗力。
後来才发现原来在国小上的电脑课就已经碰过模组化的功能过了,
还记得这只一直不知道它是狐狸还是猫的图案吗?
(图片来源: https://www.techlearning.com/how-to/what-is-scratch-and-how-does-it-work)
接下来放上一张图片,会勾起小时候的国小童年…
(图片来源: http://ms2.ctjh.ntpc.edu.tw/~luti/105m-programing.htm)
看到这一串串很像用拼图做成的程序吗?
当一个模组被制造出来後,它也不是毫无作用,它能被其他的模组调用使用。
(想当初..老师让我们做出这只猫?能来回走动并且碰到墙壁就反弹,
结果我做出了让它整个页面360度无死角的循环奔跑….)
而模组化是将整个大问题切割成小问题,这些小问题可以依照项目的功能做分割,
个别设计它,再将这些模组组合成有效率的系统。
(图片来源: https://baike.so.com/gallery/list?ghid=first&pic_idx=1&eid=1516197&sid=1602994)
就像是乐高积木一样,虽然分割成一块一块地,
只要有一个对口可以拼起来,就可以组成一座房子。
同样的运用在程序上,假设像是知名的购物平台,它就像一个巨大的水池,
当今天有一个bug出现了,我需要在这巨无霸的水池中寻找那个bug,
也就是在这上千甚至上万行得程序码中大海捞针找bug…
(我有前言叙述的经验了…这找的过程一定会想哭..)。
(图片来自: Nicole本人制作)
所以这个水池一定要被模块化,依照它的功能切割不同的模块出来。
比如说登入的功能转成登入模块、客服功能转成客服模块、结帐功能转成结帐模块。
(图片来自: Nicole本人制作)
每个模块都独立的运行,而每个模块都会通过接口对外开放,使程序可以统一调用。
如此一来,当这个网购平台有功能出现bug,我可以直接找到那个功能模块进行修正,
不再大海捞针找bug,由於是模块独立运行,只要我的对外接口不变,
想随时升级、修改、替换都可以被实现;也不会出现一直同样的重叠程序码,直接调用即可;
更可以保持一制性,对於後期的维护查错都相当有利。
模块化的优点:
<<: Day 19:二元树遍历 Binary Tree Traversal
>>: Day 19 - UML x Component — Independent (上)
1. extend class Animal { constructor(name = "...
Makefile 是一个是一个常常用来编译 C/C++ 专案的工具, 对应到 JAVA 了话,就有点...
在HTML文件中加入图片,可以在想置入图片的地方使用img标签。 <img>是单一元素,它不用开头和...
老实说,在自己还没转型以前,我最讨厌的部分就是接洽新专案这个环节,从询问来信开始,初步了解需求,然後...
画流程图是我的第一堂程序课内容,大学教授讲了很多话,我记得的寥寥无几,其中一句话是:你画的出来就写得...