读书笔记《Java开发技术-在架构中体验设计模式和架构之美》


一、Java程序员的三层境界

第一层:豪情万丈,欲与天公试比高

java开发技术掌握,工具娴熟,可以按要求独立完成类、接口和算法的开发;能注重技巧;热衷于谈技术问题。修炼第一层境界还是比较辛苦的。


第二层:要学的东西有很多很多

探求更多集中在产品的架构层次,技术关注点更多,比如网络协议,Linux内核,其他语言。修炼的结果是已经能将技术练得炉火纯青,甚至个别技术已经登峰造极,有可自己的一套“技能”,利用这些技能,过着“衣食无忧”的生活。


第三层:横行无阻,任意驰骋

要突破、要进阶、要创新。能结合产品和市场。(自己感悟)对未来的发展潮流能有所把握。


二、如何成为优秀的软件架构师

1、基本要求

首先,必须具有丰富的软件设计和开发经验;

其次,具有领导能力和团队协作能力;

第三,具有很强的沟通能力;

另外,应时刻注意新软件的设计和开发方面的发展情况,不断探索更有效的新方法。

2、高级要求

有时需要左右逢源,八面玲珑;有时又需要果断坚定、不留情面。



三、架构师的自我培养过程

1、胚胎-程序员

语言基础、设计基础、通信基础,Java,C/C++,UML,RUP(统一软件过程),XML,Socket通信等。


2、萌芽-高级程序员

分布式,高性能等


3、幼苗-设计师

结合实际经验,透彻领会应用设计模式,包括通用设计模式、EJB设计模式、Java EE框架、软件设计模式等。了解软件工程在项目开发中的应用以及小组开发、项目管理。


4、成型-架构师

机遇、天赋和个人努力


四、架构中的设计原则(面向对象)

1、单一职责原则(SRP)

高内聚,低耦合


2、里氏替换原则(LSP)

核心思想:在任何父类出现的地方,都能用子类来替代


3、依赖注入原则(DIP)

核心思想:要依赖于抽象,而不要依赖于实现

实践:针对接口编程,而不是实现。


4、接口分离原则(ISP)

核心思想:不强迫客户程序依赖它们不需要的使用的方法。

含义:一个接口不需要提供太多的行为,一个接口应该只提供一种对外的功能,不应该把所有的操作都封装到一个接口中。

接口:对象接口、类接口


5、迪米特原则(LOD)

核心思想:一个对象应该对其他对象尽可能少的了解,即降低对象之间的耦合。


6、开闭原则(OCP)

核心思路:一个对象对扩展开放,对修改关闭



第一部分 论架构 第1章 架构概述  13 1.1 简介  13 1.2 创建软件架构  19 1.3 架构结构  23 1.4 好的架构  27 1.5 丽的架构  28 致谢  30 参考文献  31 第2章 两个系统的故事:现代软件神话  33 2.1 混乱大都市  34 2.2 设计之城  40 2.3 说明什么问题  47 2.4 轮到你了  48 参考文献  48 第二部分 企业级应用架构 第3章 伸缩性架构设计  51 3.1 简介  51 3.2 背景  52 3.3 架构  56 3.4 关于架构的思考  61 第4章 记忆留存  67 4.1 功能约束  68 4.2 工作流 69 4.3 架构关注点  70 4.4 用户反应  90 4.5 结论  90 参考文献  90 第5章 面向资源的架构:在Web中  91 5.1 简介  91 5.2 传统的Web服务  92 5.3 Web  94 5.4 面向资源的架构  99 5.5 数据驱动的应用  102 5.6 应用面向资源的架构  103 5.7 结论  108 第6章 数据增长:Facebook平台的架构  109 6.1 简介  109 6.2 创建一个社会关系Web服务  114 6.3 创建社会关系数据查询服务  121 6.4 创建一个社会关系Web门户:FBML  129 6.5 系统的支持功能  142 6.6 总结  147 第三部分 系统架构 第7章 Xen虚拟化之  151 7.1 简介  151 7.2 Xenoservers  152 7.3 虚拟化的挑战  154 7.4 半虚拟化  155 7.5 Xen的变换形式  158 7.6 改变的硬件,改变的Xen  163 7.7 经验教训  165 7.8 延伸阅读  166 第8章 Guardian:一个容错操作系统环境  169 8.1 Tandem/16,将来所有的计算机都会像这样构建 170 8.2 硬件  170 8.3 物理布局  172 8.4 处理器架构  172 8.5 处理器间总线  178 8.6 输入/输出  178 8.7 进程结构  179 8.8 消息系统  179 8.9 文件系统  183 8.10 轶闻趣事  188 8.11 弊端  189 8.12 后继者  190 8.13 延伸阅读  191 第9章 JPC:一个纯Java的x86 PC模拟程序  193 9.1 简介  193 9.2 概念验证  195 9.3 PC架构  198 9.4 Java性能技巧  199 9.5 把4GB放入4GB:这不起作用  200 9.6 保护模式的危险  203 9.7 从事一项毫无成功希望的斗争  206 9.8 劫持JVM  210 9.9 终极灵活性  220 9.10 终极安全性  222 9.11 第二次做会更好  223 第10章 元循环虚拟机的力量:Jikes RVM  225 10.1 背景  225 10.2 与运行时环境相关的传言  227 10.3 Jikes RVM简史  229 10.4 一个自足执行的运行时自举  230 10.5 运行时组件  234 10.6 经验教训  246 参考文献  247 第四部分 最终用户应用架构 第11章 GNU Emacs:滋长的特性是其优势  251 11.1 使用中的Emacs  252 11.2 Emacs的架构  254 11.3 滋长的特性  260 11.4 另外两个架构  262 第12章 当集市开始构建教堂  267 12.1 简介  267 12.2 KDE项目的历史组织结构  269 12.3 Akonadi  274 12.4 ThreadWeaver  289 第五部分 语言与架构 第13章 软件架构:面向对象与面向函数  299 13.1 概述  299 13.2 函数式示例  302 13.3 函数式解决方案的模块性评价  305 13.4 面向对象视图  313 13.5 面向对象模块性的评价改进  319 13.6 代理:将操作封装到对象中  323 致谢 328 参考文献 328 第14章 重读经典  331 14.1 所有东西都是对象  335 14.2 类型是隐式定义的  342 14.3 问题  348 14.4 砖块灰浆建筑架构  352 参考资料  359 跋 漂亮地构建 363
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值