好书推荐之周立功《抽象接口技术和组件开发规范及其思想》

最近,2019年5月,《抽象接口技术和组件开发规范及其思想 V0.2》电子书在朋友圈传开,和大家分享下。

周立功语句

周立功推荐语句:这本书解决了我最头痛的问题,因为我一直不知道如何管理软件开发?员工也不知道如何开发软件?每天的工作被一个又一个需求驱使疲于应付。现在员工问我:“周工,我具体做什么?”我会告诉他们,“开发抽象接口和组件!你面对的是一栋搭好框架的大楼,房间怎么规划?们开在哪里?窗户如何放置?等等都由你来设计!”

周工的电子书刚出来,读完之后,会感受到嵌入式软件的框架、分层、各司其职的功能,还涉及到用 C 去实现面向对象编程。仅是第一页就让我欲罢不能!这其中承载了多少人在大学时学51单片便鄙视学JAVA的固执,后来毕了业又学JAVA真香。

学了嵌入式的请看:

以下为文章摘录

部分C程序员(特别是嵌入式C程序员)有一种误解:C语言不是面向对象编程语言,C++、Java、Python等更高级的语言才是,使用C语言是无法实现面向对象编程的。这种误解致使他们没有意识去接触一些优秀的面向对象编程方法,例如设计模式、设计原则、软件架构设计等等,进而很难开发出易维护、易部署、易重用、易管理的软件,很难面对项目需求的变更(扩展),很难开发和维护大型的复杂项目。

学了 C++高级或JAVA的请看:

以下为文章摘录

提到面向对象编程,往往会涉及到三个重要的特性:封装、继承与多态。可能很多人对这几个词语并不陌生,甚至是耳熟能详。就像笔者随机的问了几个公司的实习生,“面向对象编程的三大特性是什么?”几乎都可以不假思索的回答:“封装、继承与多态”。但是,在实际编程中,应用这些特性真的能像回答问题这么熟练吗?

AWorks 是周工推出的一个嵌入式系统。我大学老师那辈人都是看着周立功的书学的嵌入式,周立功先生可谓是那时技术的清流,技术图书市场匮乏的年代系列图书较多,并且有相应的开发板。鼓励在校学生实习方式,为学校、研究所、公司提供免费的技术支持。虽然时代不同了,有更便宜的开发板,有更多机构提供更完备更美观的PPT贴合实际与高端的配套学习视频及解答,但是周立功先生的技术质量还是朴实无华的

抽象接口技术和组件开发规范及其思想 V0.2.pdf,文档 3.3 M B , 共 108 页。

目录 第一部分 抽象 接口 技术 第 1章 面向对象编程 · · · 1
1.1 基础概念 · · · 1
1.1.1 对象 · · · 1
1.1.2 类 · · · 1
1.1.3 UML 类图 · · · 4
1.2 封装 · · · 5
1.2.1 “封装”示例 “封装”示例 “封装”示例 · · · 5
1.2.2 进一步分析 创建对象 · · 8
1.2.3 进一步分析 销毁对象 · · 15
1.3 继承 · · · 20
1.3.1 “继承”示例 “继承”示例 “继承”示例 · · · 20
1.3.2 进一步分析—— 初始化函数 · · 23
1.3.3 进一步分析—— 解初始化函数· · 24
1.3.4 最少知识原则 最少知识原则 最少知识原则 · · · 24
1.4 多态 · · · 26
1.4.1 学生的 “自我介绍” · · · 26
1.4.2 I/O 设备驱动 · · · 31
1.4.3 带检查功能的栈 · · · 33
第 2章 抽象接口 · · · 52
2.1 基本概念 基本概念 · · · 52
2.2 “接口”示例 “接口”示例 “接口”示例 · · · 52
2.2.1 在 C语言中定义“接口” · · 52
2.2.2 基于接口编写应用程序 · · 53
2.2.3 实现类 · · · 54
2.2.4 主程序设计 主程序设计 · · · 56
2.3 更换底层硬件 更换底层硬件 更换底层硬件 · · · 57
第 3章 依赖反转 · · · 59
3.1 问题引入 问题引入 · · · 59
3.2 基本结构 基本结构 · · · 63
3.3 依赖反转在 AWorks 中的应用 · · 64
3.3.1 抽象接口层 · · · 64
3.3.2 应用程序的实现 · · · 70
3.3.3 抽象方法的实现 · · · 71
第二部分 组件 开发 规范· · · 72
第 4章 组件简介 · · · 74
4.1 组件的定义· · · 74
4.2 组件化的优势 · · · 74
4.3 组件的设计原则 · · · 75
4.3.1 复用 /发布等同原则( REPREPREP) · · 75
4.3.2 共同闭包原则( CCP ) · · 75
4.3.3 共同复用原则( CRP ) · · 76
4.3.4 设计原则小结 · · · 76
4.4 特殊的组件 特殊的组件 · · · 77
4.4.1 框架( Framework) · · · 77
4.4.2 平台( Platform) · · · 78
4.4.3 板级( Board) · · · 79
第 5章 基本属性 · · · 84
5.1 名称( name name) · · · 84
5.2 版本号( 版本号( Version number ) · · 84
5.2.1 版本号的基形式 · · · 86
5.2.2 先行版本号 · · · 86
5.2.3 编译信息 · · · 87
5.2.4 版本的优先层级判定 · · 87
5.3 依赖( Dependency ) · · · 89
5.3.1 组件依赖 · · · 89
5.3.2 框架依赖 · · · 93
5.3.3 平台依赖 · · · 93
5.3.4 板级依赖 · · · 94
5.4 组件仓库( Repository) · · · 94
5.5 简要描述( Description ) · · 94
5.6.1 BSD · · · 95
5.6.2 MIT· · · 95
5.6.3 Apache Licence 2.0 · · · 95
5.6.4 GPL · · · 95
5.6.5 LGPL · · · 96
5.6.6 MPL · · · 96
5.7 贡献者( 贡献者( Contributors) · · · 96
5.8 开发语言( 开发语言( Programming Language) · · 97
6.1 AXIO简介 · · · 98
6.2 命令行工具 axio-cli · · · 98
6.2.1 简介 · · · 98
6.2.2 安装 · · · 99
6.3 Web 网站 · · · 100
第 7章 组件的开发过程 · · · 101
7.1 创建组件目录 · · · 101
7.2 编写代码 · · · 101
7.3 添加组件 描述文添加组件· · · 102
7.3.1 语法简介 · · · 103
7.3.2 基本属性表示 · · · 104
7.4 打包组件 · · · 105
7.5 发布组件 · · · 105
第三部分 MVVM框架

下载地址:


https://github.com/wutiantian/ProgrammingLanguageStudy/tree/master/嵌入式/BOOK