通过近一段时间的学习,大概看了一些模式,可是还是很困惑,看了之后好像没有留下什么深刻印像,当时看的时候好像挺懂,但没有练习,导致现在不知道怎么运用到实际中,估计是没有对它们进行仔细比较,所以想着等后面遇到具体问题时,在分析问题的过程中,再将设计模式的思想融入进去再写出来。关于设计模式的学习,先告一段落,最近工作也签了,可以重新开始论文方面的工作了。
在学校,一般做的都是小程序,所以一般很少用到设计模式思想,而且一个程序完成后,可能就永远不会再改了,所以都是怎么简单实现就怎么做,而在公司做的东西,会随着客户的需求随时改变,所以此时如果还是用老的面向过程的思想来做程序,那维护和扩展起来就会相当头痛
搞什么东西之前,第一步是要知道What(是什么),然后是Why(为什么),最后才是How(怎么做)。但很多开发人员,都习惯是先How,然后What,最后才是Why,这样往往会将技术误用于不适合的场景。一般来说,架构师更侧重于what和why,程序员侧重how,所以程序员在开发过程中往往会遇到系统架构上的疑惑。
前面虽然在实习时接触过单元测试,但一直觉得单元测试没用,不能理解为什么要开发人员写单元测试,看一般单元测试,就是开发人员给个输入的测试数据,然后对输出做一下断言,这个过程中,输出数据本身就是开发人员根据将输入数据代入程序运行后正确输出的结果,这个断言肯定可以保真啊,这相当于是开发人员将自己设计的输入数据沿着程序正方向(即不走一些错误处理分支)走了一遍,没多大意义,觉得让开发人员写单元测试其实只是增加工作量。现在看了设计模式后,方才体会到单元测试是重构代码的保证,因为代码重构不只是一个函数的改造,而是将代码从面向过程到面向对象的转变,有了单元测试便可保证重构出来的代码是否还能让以前那个断言保真。
肯定-否定-否定之否定,这个是哲学领域里的一个事物发展规律,为什么上升到哲学,是因为抽象到任何学科都遵循这样一个发展过程。否定之否定规律是哲学的基本规律之一。它揭示了事物发展的前进性与曲折性的统一,表明了事物的发展不是直线式前进而是螺旋式上升的。否定之否定规律的原理对于人们正确认识事物发展的曲折性和前进行,具有重要的指导意义。
一 否定之否定规律经历的全过程:中心是从整体上描述否定之否定规律的发展过程。
二 第一阶段:肯定时期的发展过程:揭示出它的特点是从本质和形式的统一到分离。
三 第二阶段:否定时期的发展过程:揭示出它的特点是从形式上的肯定到彻底否定。
四 第三阶段:二次肯定具有的特点:展示出科学辩证法的特色,通过实例把握规律的本质,从而使这一规律建立在坚实的唯物主义基础上。
五 从运动层次上进行对比分析:主要是对否定之否定规律的认识过程进行综合分析。
上述五个题目之间具有的逻辑关系是:一是总体描述,二、三、四是具体分析,五是综合分析。即“总体描述——具体分析——综合分析”三个层次。显然,这样的逻辑结构完全符合辩证逻辑的一般规则。
希望在学设计模式的过程中,也要多思考,多否定,多体会。隔行如隔山,任何行业都有技巧和经验,需要多思考、多琢磨,才能做到最好。设计模式的学习也是如此。