极客时间架构师训练营 - week2 - 作业 2
本周的架构师训练营第一次课程主要讲解的是编程发展史(软件开发史),面向对象设计的概述等。软件设计的目的是利用计算机来解决真实世界中的问题;编程的过程即是将现实世界中的问题,抽象成计算机所能理解的模型,如下图所示。
编程语言多种多样,从最早期的打纸带,到后来的汇编,Basic,Perl,再到C,再到后来的面向对象设计语言SmallTalk,C++,Java等等。整体的发展趋势是编程语言越来越人性化,软件设计与开发也能以人类习惯的思维来进行。面向对象设计编程是当下的主流,封装、继承与多态是面向对象编程的三大要素。
第二次课程时间则讲了4个多小时,老师讲解的主要内容是面向对象设计的目的,原则与方法论。
目的呢,就是使得设计出来的软件强内聚、低耦合,软件系统易扩展、更强壮、可移植且更易于维护;
原则呢,包括开闭原则,依赖倒置原则,里氏替换原则,单一职责原则,接口分离原则(本节课重点);
设计模式是前辈们在面向对象设计的原则基础之上,总结出来的一套有效的方法论,大致包括23种设计模式。
本次课程对我个人的冲击力有点大,因为平常主要是写业务代码,没有涉及多少框架层面的代码。年初做过一个业务系统,起初实现很简单,但是需求一变化,大段的代码逻辑都需要改,加了很多班才按时按要求完成啦修改,着实是痛苦。目前看来首要任务,是先记住这些原则,记住23种经典的设计模式,争取在项目中落地部分。另外优秀的开源代码也是需要好好钻研的,通过代码去体会设计者的良苦用心!
加油!
版权声明: 本文为 InfoQ 作者【jjn0703】的原创文章。
原文链接:【http://xie.infoq.cn/article/4557cf86e904a1dfd0cc90123】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论