写点什么

架构师训练营 第三周 个人感想

用户头像
且听且吟
关注
发布于: 2020 年 06 月 24 日

0期3班4组 杨娴艳



第三周的课程智慧老师通过示例代码+UML图详细介绍了单例模式、适配器模式、装饰者模式、组合模式等常用设计模式的特征以及使用场景,并且通过对设计模式的应用引申出如何学习优秀的框架设计思想、在平台框架级别的产品研发中应该遵循的原则。



因为涉及到具体的设计模式的特征细节,所以还是抽了时间把老师的视频1.25倍速再学习了一遍,发现当自己安静下来再去聆听的时候,可以再次挖掘到很多细节。下面我将总结一下通过本周课程的学习,自己的思考和感想。

手写代码

智慧老师本周的第一个作业是手写代码,让我回想起学习面向对象分析和设计的那段时光,当时看到一些书籍中的示例代码,看不明白就在notepad里面手打抄代码,因为普通文本编辑器没有语法提示所以打字相对比较慢,慢下来以后发现思考的时间变多了,会去细细思量为什么需要加上static/final修饰符,关键字到底应该是大写还是小写,到底是implement/extend还是implements/extends,这个其实是和在学习UML画图一样的,聚合的菱形箭头指向,继承的三角箭头指向等,这样的练习除了能够夯实个人的编码基本功以及多了对代码的思考外,也会有其他的好处,譬如在参加软考之类的考试的时候,针对需要手写的编程考题就不会卡在语法问题上;针对一些需要笔试的面试,遇到编程题也不至于手足无措,最重要的是慢来下思考后的结论会牢牢的记在心里,成为自己的知识。

设计模式和框架

在周六课程的第一个视频的第55分钟那段智慧老师的话,让我非常有启示,当有同学提出质疑老师为什么在介绍Junit框架编写的单元测试用例的时候那么详细讲解代码的时候,智慧老师强调作为一名架构师,一定是要有良好设计的编码能力和抽象能力,只有把“多态”运用好,才有机会能够参与设计优秀的框架或平台,而学习优秀的框架的设计理念是可以让我们更好理解和学习抽象、多态、设计模式所带来的巨大的魅力的。当然如果能够有机会参与体量庞大的分布式架构的设计的话,也一定会是让人能够受益非常的经历,但我也相信,任何一个能够称之为“架构”或“平台”的载体一定是具备设计良好,插拔灵活并且具有非常好的可扩展性的特点的,作为一名合格的架构师不仅需要能够去从大局上感受架构带来的对项目基础设施的支撑、性能的支撑、协作的支撑,更是要体会到作为一个平台给使用的人员带来的便利以及约束。



几年前我曾参与当时公司的一个JAVA开发平台的研发工作,当时的开发平台就是遵循了依赖倒置的原则,当时推行的是RESTful风格的面向资源的开发,所以在Controller的定义层面对请求体、响应体的语义定义、Controller资源的定义等都做了约束,从一定层面上,框架的约束不仅起到了标准化的作用,更加要求开发人员需要遵循面向资源的开发理念进行,包括:1)资源的划分 2)资源状态迁移的分析 3)资源语义的定义等一系列的分析过程,用开发框架倒逼设计。现在想起来,框架的魅力的确很大,而支撑其标准化能力的是整体框架是面向接口编程的,是遵循设计原则的,应用了设计模式的。



另外一个特别有印象的是智慧老师谈到了针对Eclipse IDE、Intellij IDEA等集成开发工具中针对junit等工具插件式的支持实际上是使用了策略模式,让我有了更多思考,具体到我们日常生活的插头和插座的关系、订阅微信公众号消息后推送的原理,抽象到开发工具对插件功能的支持、各种优秀框架的设计、电商中针对产品价格策略的支持、消息中间件Rabbit MQ的实现原理都涉及到很多设计模式的具体应用。



本人在实际的开发过程中,使用到的设计模式包含工厂模式、策略模式、观察者模式、组合模式、Builder模式等较多,所以当老师讲到适配器模式和装饰者模式的时候还是需要再去翻阅一些资料去体会的,同时在今后的工作中,也对自己如何学习和阅读优秀的框架的源码有了很大的启示。

复杂的问题和难的问题

通过这个案例让我认识到,博士老师的硬核业务能力很重要,智慧老师抽象分析设计能力是软实力也是非常重要,作为一名合格的架构师,两种能力都是我们需要不断去追求极致的。



下周开始进入“三高”的学习章节,又开始了新的征程,加油!



发布于: 2020 年 06 月 24 日阅读数: 114
用户头像

且听且吟

关注

没有绝世高手 2018.06.30 加入

还未添加个人简介

评论

发布
暂无评论
架构师训练营 第三周 个人感想