程序员的职业素养

/ 方法论

如果说个人能力是职业道路上的"外功"决定你走的多快,那么职业素养就是"内功"决定你走多远。

我将从一下几个方面来谈谈我对职业素养的认识

专业主义

1. 了解你的领域

1.1 编程规范
1.2 基础建模

统一建模语言(UML),一图胜前言。

1.3 设计原则

SOLID 是基础原则我们需要尽量遵守,但为了稳定性和快速迭代破坏其中的原则也无可厚非。

DRY是我们需要进行重构的重要信号。当你发现一个逻辑到处拷贝时,就需要考虑抽象整合了。

KISS是我们方案设计的首要原则,好的程序一定是迭代中诞生的,而不是一蹴而就。

1.4 设计模式

设计模式主要为了解决程序复用问题,即DRY原则。单纯的炫技而设计,不仅不专业还会让专业的人贻笑大方。

1.5 方法实践

集以上专业技能之大成者,盖 领域驱动重构 也。

1.5.1 领域驱动

总览

自顶向下设计,核心包括以下两块

DDD精粹

核心思想

人们熟悉的是现实世界的规则,如出去玩,乘坐地铁需要先买票、安检进站、选择合适的班次上车、到站下车等。

DDD的思想是,将现实规则照搬进软件工程。对应接口或方法 buy 、 check 、 selectSubway 、 arrvied 等。

最后将需要实现的技术屏蔽到这些接口抽象之下。

就说同样的购票(buy),你无论是通过mq实现、亦或是直接mysql事务编程都不影响上游对该接口的依赖。

这也是依赖倒置思想的体现。

将屏蔽技术细节,反应世界原有的规则,这样使得项目更加容易上手和维护。

ddd-mapping

设计流程

项目架构设计

ddd-project

DDD学习推荐

1.5.2 重构

重构的前提

不改变软件可观察的行为,即重前后程序的处理结果保持一致。

重构的时机

Rule of Three原则

重构的核心思想

将原本臃肿复杂的逻辑拆分成一个个更短小精悍的实现。

越细的方法,越利于组合复用。

重构

重构的实现

利用DDD拆分主流程,利用设计模式去遵守DRY原则

2. 了解你的业务领域

了解业务领域可以让你更好的设计出可拓展的、与业务保持一致的架构。

2.1 基本面
2.2 快速上手

沟通协作

1. 说“不”

2. 说“是”

3. 压力

压力

理论实战

1. 方法论

2. 实战

项目设计

参考