程序员自嘲为码农,每一行代码都是一块砖,每天一点点垒出“整个”程序。那么代码变成一个系统都要经历多少个阶段?
代码行是程序中最小的可执行单元,世界上被程序员写的最多的一句代码是在屏幕上输出“Hello,World!”。因为这是每一个程序员,学习新语言时写下的第一行代码。
代码块(代码片段)是共同完成一个特定功能的多个语句。通用的代码块经常被提取出来,封装成函数或方法来实现代码的复用。代码示例中,变量和函数名经常会用两个无实际含义的“单词”:foo,bar。
在OOP(Object-Oriented Programming,面向对象编程)开发过程中,类是比方法更大的一个概念。类不是把类似的功能聚集到一起,而是把一类具有相同功能的事物聚集到一起。这是类和模块最大的区别。
模块是开发人员和业务人员交流过程中提到最多的一个开发名词。模块与方法类似,都是可复用的功能代码,但是模块实现的功能通常更接近真实世界。所以业务人员通常会提出功能模块的概念,但是功能模块并不能代表一个功能集合。代表外部特征的功能和代表内部代码集合的模块本身也不是一对一等价的关系。例如,商品列表展示功能,前后台系统需要调用网络通信模块进行通信,后台系统需要调用缓存模块和数据库模块获取数据,最后前端系统还要调用页面渲染模块展示到屏幕上。采用库的形式对模块代码进行封装,可以有效的防止模块中代码被变更,保障分发出去的库版本一致性。C/C 语言称作静态库(.a,.lib)和动态库(.so,.dll),Java语言称作jar包。模块由代码、方法和类组成,下图黑方块连线表示组成的含义。
代码和模块示意图
程序是可以独立运行并被用户使用的最小代码单元。程序根据运行方式可以分为,交互程序、服务程序和批处理程序。手机和电脑桌面上有操作界面的是交互程序,运行在电脑后台的程序是服务程序,程序启动之后不需要人为干预,自动完成任务的是批处理程序。交互程序、服务程序和批处理程序是三类不同的程序,下图的箭头连线表示泛化的含义。
程序和三类程序示意图
当软件更加复杂之后,会使用多个程序实现完整的功能。此类软件会被称作某某系统,但此时的系统应特指为某某软件系统。因为系统可以包含硬件、操作系统和实现某领域功能的软件。软件系统过于复杂时是会按业务拆分为子系统,系统中具备通用功能的程序被称为组件。软件开发中常说的微服务架构,也是将一个完整的后台服务按业务领域拆分为多个小的服务程序。一个系统包括多个程序,下图的空方块连线表示组合的含义。
程序和系统示意图
代码和系统示意图
一个系统虽然复杂,但我们只要有适合的设计、合理的时间规划和足够的耐心就能一步步构建完成稳定高效的系统。
联系客服