代码的设计图纸——UML(上)
优秀项目代码是怎么构建出来?
写一步算一步?
凭空想象?
回答这个问题之前,先让我们看这么一个场景:搭猪窝or建高楼大厦。
搭猪窝
搭一个猪窝,可以这样来操作: 根据猪体型大小,粗略计算出猪窝大概要占几平米。去生活市场购买相应数量的木块、铁锤、尺子、钉子等一些基本物料和工具。物料准备完毕后,使用铁锤和钉子,很快可以利用木块把猪窝的外形搭建好,然后再往里面铺一些稻草。
前后不需几个小时,一个人就完成了从构思到施工的全部过程。这个猪窝只要能够遮风挡雨以及保暖,就满足猪的需求了。哪怕搭建得不够牢固,也完全可以等空闲的时候,再返修一下。
建大厦
假如你要建造一座高层办公大厦,若还是先备好木料、钉子和一些基本工具就开始工作,那将是非常愚蠢的。因为你所使用的资金可能是别人的,他们会对建筑物的规模、外形和风格做出要求。同时,他们经常会改变想法,甚至是在工程已经开工之后。由于失败的代价太高了,因此必须要做详尽的计划。
负责建筑物设计和施工的是一个庞大的组织机构,你只是其中的一部分。这个组织将需要各种各样的设计图和模型,以供各方相互沟通。只有得到了合适的人员和工具,并对把建筑概念转换为实际建筑的过程进行积极的治理,才能最终建成这座满足使用要求的大厦。
UML建模语言
注意到没有,搭猪窝和建高楼大厦之间,设计的技能和工作量差的可不是一点半点。如果没有良好的设计、没有对项目进行整体把控,那么你的任何项目很有可能会沦落为仓促地搭猪窝。
如果你的目标是建造一个大厦式的软件,那么学会设计模式是非常重要的。UML建模就是进行良好软件设计的工具,在代码的世界里,UML的各种图就是工地上大厦的施工图纸。UML之于程序员,就犹如CAD之于机械工程师,犹如PS之于美工,毫不夸张地说,它是我们设计一个优秀项目的左臂右磅。
UML与嵌入式
随着后PC时代的到来,嵌入式抓住了物联网、5G等高科技的风口不断发展,琳琅满目的应用层出不穷。嵌入式编程与PC编程的边界已经逐渐模糊,C语言对应的传统结构化设计方法已经不能满足嵌入式软件设计和开发的需求。现在更为流行与使用的方法是用c语言来实现面向对象的语法(C++/JAVA),比如用结构体来模拟类,用函数指针来表示成员函数等。因此以往在C++/JAVA领域上大量使用的代码设计工具--UML,也势必将在嵌入式领域搅起一番风云!