1 前言
反馈机制是一个很有效的自我提升工具。个人认为反馈可分为:他人反馈和自我反馈。他人反馈就是旁观者角度,俗话说:旁观者清,可以明确说出自己的缺点和不足,促进自己改进。自我复盘是自我反馈是一个主要方式。整个自我复盘过程,就是回顾目标、评估结果、分析原因、总结经验。同时复盘能让你拥有一次“变更好、不断变好”的机会,更是一次精准的学习。
本文就是基于之前开发OS MVP版的一次DDD实践活动做一个自我复盘。
2 引入DDD
事情的开头总是这样,适逢其会,猝不及防。在开发OS MVP版之前,针对以下几个问题有过一些思考:
- CC平台演化的思考
- 0521事件后代码评审时的思考
- 现有问题的思考
用着面向对象的语言,做着面向过程的开发
业务概念到编程概念的“鸿沟”在扩张
系统熵增的各方面
之前了解过DDD的一些思想,只是表面知道通过DDD可以统一语言,解决复杂业务逻辑编程,真正实现面向对象编程。故而,基于本次MVP版的契机想引入DDD模式。
2.1 现有问题的思考
1:为何打着面向对象编程的旗帜,乐此不疲的进行着面向过程的开发
以java技术栈为例,工作之中接触到、了解到的很多项目都是遵循着MVC的范式(具体MVC的弊端,想必大家都有所体会,这里不再细说)。而这种范式的普及很大一部分都是受周围环境的影响。
当刚入门软件编程时,我们都处于萌芽期,大学C语言书中的定义就是像下图:
图1:教科书式定义
当大学毕业后,进入工作岗位,进入软件研发成长期。我们所接触到的工程、代码模式就是这种MVC结构,从而我们也就自然而然的接受了这种模式。另外还有一个很重要的原因,就是本性喜欢确定的东西,缺乏抽象,导致代码耦合严重(具体可参考7种耦合方式)。所以开发出来的东西,内涵较大,外延就比较小。很多时候,需求来了,直接开干,撸完交活。