郑晔,网名 dreamhead,极客时间《10x程序员工作法》《软件设计之美》《代码之丑》《程序员的测试课》专栏作者,学习人数 11w+。
他是一位有着 20 多年研发经验的技术老兵,Oracle Duke 选择奖获奖作品 Moco 的作者,曾担任火币网首席架构师、ThoughtWorks 首席咨询师。
人生目标是终身编程,他对代码整洁之道、自动化测试有深入理解,同时也热衷于不断优化代码质量和编程效率。
在开发软件的过程中,我们都遇到过这样的情况:
其实,出现这些问题,绝大多数都是因为一个原因——软件设计一开始没做好。软件设计的优劣在根本上决定了软件系统的质量。好的设计,可以让系统更容易修改和扩展,不好的设计,却会让人举步维艰。
尽管软件设计很重要,但是学习起来却很容易陷入困惑。比方说,学了那么多设计模式,发现能用上的却没有几个;领域驱动设计中的概念那么多,却不知道该从哪学起。其实我们困惑的,并不是这些知识本身,而是缺乏一个整体结构将它们贯穿起来。软件设计学习的难度,不在于一招一式,而在于融会贯通。
所以,郑晔老师会通过这门课程,给你讲解软件设计的核心思维,将纷繁复杂的软件设计知识融会贯通成一个整体的结构,帮助你建立起对软件设计的整体认知,切实帮助你提高软件开发能力。你会感受到软件设计之美,在日后的工作中不断寻求最佳的设计方案。
课程主体分为四个模块。
第一模块:课前必读
在正式开始软件设计的学习之前,我们会先梳理清楚软件设计的真正内涵与意义,与你谈谈影响软件设计的两个不可忽视的因素:分离关注点和可测试性。掌握这些内容会为你的软件设计学习之旅奠定一个良好的基础。
第二模块:了解一个软件的设计
教你一个“三步走”方法,让你无论是在新接触一个项目,或是想借鉴优秀实践的设计时,都有可以遵循的框架,快速抓到一个软件的设计精髓。同时,我们还会深入拆解三个最具代表性的开源项目,让你在案例中加深对知识的理解。
第三模块:设计一个软件
给你讲解设计一个软件时,你需要掌握的核心知识:
第四模块:巩固篇
通过三个实战项目,分析如何设计一个程序库、如何构建一个可扩展的模型和如何对既有的项目做设计上的改进,将学到的软件知识融会贯通。

购买请联系微信/QQ
QQ 临时会话已不可用,请先添加好友再发送消息。