从码农到工匠
我在云顶山上钓鱼
linux,python,go 分享一些自己的工作和学习所得
展开
-
《从码农到工匠--学习笔记》抽象
面向对象的思考方式:万物皆对象。 面向对象的最有思想:面向对象分析(Object Oriented Analysis,OOA)、面向对象设计(Object Oriented Design,OOD)、面向对象编程(Object Oriented Programming) 把程序看作一系列函数的集合不是面向对象思想。 抽象的层次性:程度越高,包含东西越多,细节越多;内涵越大外延越小。 软件领域的任何问题,都可以通过增加一个间接的中间层来解决。 如何进行抽象: 寻找共性。抽象的过程就是合并同类项、归并分类、寻找共原创 2022-05-25 23:57:01 · 115 阅读 · 0 评论 -
《从码农到工匠--学习笔记》DDD(领域驱动设计)的精髓
领域驱动设计是面向对象的方法论。 过程式代码风格:评审需求、UML图设计、开始编写业务。 数据驱动和领域驱动 数据驱动:需求分析、数据建模(ER图)、建库建表,写DAO、编写业务逻辑。 领域驱动:需求分析、领域分析、领域建模、核心业务逻辑、技术细节(DB、Cache、Message…) 领域模型更关系业务实体,表现为类、聚合根、值对象,更加关注语意的显性化表达,而不是存储和数据之间的关系。 领域模型和数据模型并不是一一对应,通过对象映射关系(ORM,Object Relationship Mapping)原创 2022-05-25 23:22:09 · 212 阅读 · 0 评论 -
《从码农到工匠--学习笔记》模型
模型使对现实世界的简单抽象。 为何建模:隐藏不必要的细节,抓住问题的本质。不拘于表示法,能有助问题域的理解就是好方法。 模型大致分为四种: 物理模型:汽车模型,飞机模型。 数学模型:数学语言表达的。 概念模型:对问题域内事务的描述,与计算无关。将信息世界抽象为信息世界,客观对象抽象为信息结构。 思维模型:用图形、符号、结构化语言等表达人们思考和理解问题的形式。 模型不能代替现实,要带着审视的眼光看待模型。 用发展的眼光看待模型,软件开发的进程,当改则改,甚至重构,确保能跟上我们对问题域的理解。 统一建模语言原创 2022-05-24 22:54:54 · 118 阅读 · 0 评论 -
《从码农到工匠--学习笔记》设计模式
利用模式,我们可以让一个解决方案重复使用,而不是重复造轮子。 设计模式(Design Pattern)是一套代码设计经验的总结,而且该经验必须能被反复使用,被多数人认可和知晓。目的是提高代码的可用性、可读性和可靠性。 本质是面向对象设计原则的实际运用,是对类的封装性、继承性和多态性,以及类的关联关系的重复理解。正确使用设计模式,可以提高程序员的思维能力、编程能力和设计能力,使程序更加标准化、代码编制更加工程化,提高开发效率。 所谓模式,就是得到很好的研究的范例。设计模式就是设计的范例。 每一个模式都有典型意原创 2022-05-24 22:12:51 · 110 阅读 · 0 评论 -
《从码农到工匠--学习笔记》设计原则
所谓原则,就是一套前人通过经验总结出来的,可以有效解决问题的知道思想和方法论。可令事半功倍。 SOLID(稳定性): Single Responsibility Principle(SRP):单一职责原则。 Open Close Principle (OCP):开闭原则。 Liskov Substitution Principle(LSP):里氏替换原则。 Interface Segregation Principle(ISP):接口隔离原则。 Dependency Inversion Prin原创 2022-05-21 22:33:19 · 87 阅读 · 0 评论 -
《从码农到工匠--学习笔记》规范
**加粗样式**实物的复杂度在很多程度上取决于其有序程度,减少无序能在一定程度上减低复杂度,这正是规范的价值所在 理解复杂系统--发现共同抽象和机制 混乱的代价在于让我们对事务无法形成有效的记忆和认知,导致每次面对的问题都是新问题,又要重新理解一遍。思考:开发过程中,遇到的问题要好类,方便检索,文章命名要有共同性,再做到同一个事的时候,才能快速定位到解决方法。 我们有必要使用规范和约定来使大脑从记忆不同的代码段的随意性、偶然性差异中解脱出来。将有限的精神力用到刀刃上。 要一个团队要约定功能的代码风格.原创 2022-05-19 23:03:29 · 90 阅读 · 0 评论 -
《从码农到工匠--学习笔记》 命名
***一个名字虽然并不影响程序的运行,但是却对代码的表达力和可读性有着重要的影响。*** 有特殊意义却让人第一次见感到奇怪的名字,足以给人留下深刻的印象。 命名的过程本身就是一个抽象和思考的过程,当我们不能找到一个合适名称的时候,往往说明我们对问题的理解还不够透彻,需要重新挖掘问题的本质对问题域进行重新分析和抽象。 **好的命名是写出好代码的基础**。 **代码即文档** 可读性好的代码应该有一定的自明性,不借助注释和文档,代码本身就是显性地表达作者的意图。自明性依赖我们对问题域的理解,以及命名是否合原创 2022-05-18 13:30:37 · 60 阅读 · 0 评论