[书籍推荐]《软件设计精要与模式(第2版)》-张逸——提高设计模式及软件设计的方法...

     《软件设计精要与模式(第2版)》是园子里张逸大大今年4月出版的关于软件设计及设计模式方面的书,我是5月下旬到手,每天晚上看一章,断断续续的到昨天晚上总算把全书28章看完了,感受很深,以往在设计模式以及一些有关软件设计方面很模糊的知识,读完这本书后有了比较清晰的了解。

 

下面来说下我对这本书的感受吧:

一、书的质量

有关书的封面等信息可以点击文章顶部的书名链接查看,书的纸张是有点黄(保护视力),而且纸张手感也不错,厚度适中,不会出现看书的时候因为书太薄一下子翻2页的情况。

 

二、书的内容

这本书不同于许多学习相关技术的书,比如:ASP.NET技术内幕、C#高级编程等(这类书主要是讲解技术,介绍技术的知识点),软件设计这本书还是介绍的是一种软件设计及程序设计的一种思想,所以没有那么多术语技术点或者其他东西,看这本书主要还是了解其思想,了解为什么要这么设计,这么设计有什么好处。

同时书的语句读起来很流畅,因为是国人自己写的书,不会出现像翻译的书那样有些语句难以理解的问题,不过也是张逸大大的文笔很牛X,读起来相当舒服,不会有什么理解上的困难。

 

简单介绍下这本书的一些相关内容(都是我个人的理解可能有些不对,请见谅!),这本书分为5大章:设计之要、.NET框架与设计模式、媒体播放器的设计之旅、设计模式应用实践和.NET体系架构

第一章:详细介绍了软件设计方面的各方面知识点,这一章主要是对软件设计的各种理论介绍,虽然是理论但是却包含了许多作者对软件设计的见解,比那些课本书籍中的大段大段的理论好多了。如果你对软件设计的许多知识没有什么概念的话可以重点看下

第二章:介绍了在.NET框架中,哪些组件或模块使用了设计模式,并对这些设计模式进行讲解,通过介绍.NET框架中的设计模式让读者了解设计模式

第三章:通过编写一个播放器案例来讲解设计模式如何中运用,从开头的简单的功能单一的播放器不断通过使用设计模式来进行重构,将播放器修改成了一个可扩展的功能强大的播放器

第四章:这一章主要是根据一个个项目的实际需求如何使用设计模式进行介绍,同时在这一大章的的最后一小章将几种设计模式进行综合应用

第五章:通过对PetShop进行整体分析,从底层到表示层进行每一层进行讲解,同时还对一些相关知识点进行讲解,比如:ORM、ASP.NET缓存、MSMQ和MVC等,如果对三层架构和工厂模式理解模糊的朋友可以重点看下这一大章,这一大章将三层很好的进行了讲解。

 

在第二~第四大章的讲解各种设计模式的章节中,有一点很让我感觉这本书很有价值,就是在这本书的每个小章节都是主要介绍一个设计模式,在每小章的开头都会将我们在实际开发中编写的错误代码贴出来,指出这段代码的不足,然后再使用设计模式、各种用例图、类图、时序图等如何一步一步重构这段代码或者模块,这样的好处能更好理解设计模式如何运用。

还有两点我觉得比较好的就是

1、每章都控制在10-20页内,这样不会因为每章的内容太多看完后无法效果,这样每章10-20页基本上1小时内肯定能看完,看完后花点时间把这章消化掉,后面的可以继续看或者明天再看。

2、每章基本上都是独立的,不会因为前面的章节没看过导致后面的无法看,这样参考起来很方便。

 

这本书我觉得还可以做为一本有关软件设计方面的参考书:

1、如果对软件设计不了解的可以参考第一大章

2、想对各个设计模式有所了解,或者对某个设计模式不清楚的可以看第二~第四大章

3、对项目分层不了解,或者对项目开发框架不了解的可以看第五大章 

总的来说,这本书还是以循序渐进、由浅入深的方式进行讲解,所以不会因为难度太高而难以阅读。

 

三、书的性价比

这本书的定价为55元RMB,在几大图书购物网上基本可以在4X元买到,如果你肯淘书的话(淘书可以看看我的这篇文章:[书籍推荐]为了自己的钱包,为了自己的时间——分享一下自己的淘书经验)基本上在3X的情况下就能买到,相比国外的引进的书动辄三位数的价格这本书还是很吸引人的。

同时作为国内知名的架构师、微软最有价值专家和InfoQ.NET社区常务编辑……的张逸大大写书还是很有质量保证的,从书名中第二版中也可以看出,这本书的质量也是可以保证的(如果不好也不会出第2版了)

 

总的来说,我个人认为如果你想对设计模式进行深入理解、对项目结构进行理解、对软件设计有所深入都可以看看这本书,再引用下书中的原话:

本书适用于所有希望提高软件设计水平的程序员、软件工程师,同时,对于软件设计师与系统架构师也具有一定的参考价值。

PS:有关书籍的更详细信息可以点击此处:《软件设计精要与模式(第2版)》(包括目录,序言,推荐及网友评价等)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/406044.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

solor mysql_solr 同步 mysql

一、首先创建一个数据库和表这里创建了一个表,加上了测试数据,注意这里有一个字段来记录更新时间 update_date二、修改配置文件我们首先介绍全量同步,再介绍增量同步我的 solr 版本是 7.5 的,new_core是我创建的 core&#xff0c…

C++调用Python函数

From: http://www.flatws.cn/article/program/c/2010-08-24/9677.html Python代码在实现某些功能的时候非常方便,如果能够将Python代码与C程序结合起来,那么一定会使Problem Solving方便许多(比如,游戏脚本系统)~ 从学…

配置ubuntu使用console登录登录欢迎提示

使用ssh或console登陆成功后,ubuntu会顺序执行/etc/update-motd.d中的脚本 有些linux的登陆提示信息放在了/etc/ssh/sshd_config中的Banner配置项中 转载于:https://www.cnblogs.com/chen310/p/4431474.html

网络命令大全(9)--runas

Runas 允许用户用其他权限运行指定的工具和程序,而不是用户当前登录提供的权限。语法runas [{/profile/noprofile}] [/env] [/netonly] [/smartcard] [/showtrustlevels] [/trustlevel] /user:UserAccountName program 参数/profile 加载用户的配置文件。/profile 是…

java canvas 缩放图片_详解如何用HTML5 Canvas API控制图片的缩放变换

摘要:这篇HTML5栏目下的“详解如何用HTML5 Canvas API控制图片的缩放变换”,介绍的技术点是“html5_canvas、canvas、Html5、控制图片、api、图片”,希望对大家开发技术学习和问题解决有帮助。缩放变换scale(sx,sy)传入两个参数,分…

C语言中执行python代码或源程序文件(高级嵌入方式)

环境:Fedora12 Python2.6 C 1. 建立python源代码文件(del.py): #!/usr/bin/env pythondef calculate(expression):try:result eval(expression)except:print("Eval Error!")return Nonereturn resultif __name__ "__main__":f …

向周鸿祎的360安全浏览器学互联网产品运营和推广

做互联网产品运营就要像周鸿祎一样,老周一直是运营流的大力倡导者,而360安全浏览器则是老周给我们上的产品运营又一课,醍醐灌顶,如梦初醒。 下图是截止到今年6月中国网民的浏览器使用情况图: 根据CNZZ的数据&#xff0…

java中的locksupport_java中线程的停止以及LockSupport工具类

看jstack输出的时候,可以发现很多状态都是TIMED_WAITING(parking),如下所示:"http-bio-8080-exec-16" #70 daemon prio5 os_prio0 tid0x00007f6088027800 nid0x3a1f waiting on condition [0x00007f60fcd03000]java.lang.Thread.St…

React小结

1. setState setState更新状态的2种写法 (1). setState(stateChange, [callback])------对象式的setState 1.stateChange为状态改变对象(该对象可以体现出状态的更改) 2.callback是可选的回调函数, 它在状态更新完毕、界面也更新后(render调用后)才被调用 (2). setState(updat…

4-17学习

//设置自动行数与字符换行 [label setNumberOfLines:0]; label.lineBreakMode UILineBreakModeWordWrap; /** 去除多余分割线 */ self.tableView.tableFooterView [[UIView alloc]init];转载于:https://www.cnblogs.com/pocket-mood/p/4435711.html

PyRun_SimpleFile()崩溃问题

From: http://blog.csdn.net/jq0123/article/details/1504406 PyRun_SimpleFile()造成程序崩溃.例程如下:#include "python.h"int main(){ Py_Initialize(); FILE * fp fopen("test.py", "r"); if …

翻译:Asp.net中多彩下拉框的实现

开发背景: 有人曾经要我开发一个根据不同选择而显示不同颜色的管理工具。我开始考虑利用下拉框来实现条目背景及显示颜色根据条目名称不同而进行变化,根据这个思路我在网上搜了半天也没有找到任何相关的解决方案,最后我想到了一个比当初需…

深入react技术栈(8):事件系统

我是歌谣 放弃很容易 但是坚持一定很酷 微信公众号搜索前端小歌谣获取前端知识 1合成事件的绑定方式 2合成事件的实现机制 3在React中使用原生事件 4合成事件和原生事件混用 5对比react与原生事件 文章参考深入React技术栈

java mac jconsole_解决java maven项目找不到jconsole-1.8.0.jar和tools-1.8.0.jar包问题

今天遇到了这样一种情况,自己的maven项目中并没有引用的jar包出现在了Maven Dependencies的依赖包中。而我在pom.xml自己没有没有引入啊.图示怀疑是自己的alibaba 的druid所依赖的包:com.alibabadruid1.0.14然后查看了它的相关依赖,果然找到了…

PyRun_SimpleString的无穷怨念

From: http://blog.csdn.net/ccat/article/details/544491 好吧,我承认我是个菜鸟,所以今天我勇敢的站出来接受大家的鄙视…… 话说早上同事喊我帮他改段程序,很简单,就是用PyRun_SimpleString函数执行一段Python脚本。错误也很直…

劳心者、劳力者或CEO、CTO各得其所,足矣

昨天在手机上看到了“清华学生借鉴百度技术自主研发手机框计算”的新闻,又是“计算”,很容易就与“云计算”联系起来了,挺有兴趣了解一下中国百度的“框计算”。毕竟我之前只是知道这么一个名词,没想到这么快就有了研发、应用&…

hdu 1754 I Hate It(线段树)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid1754 I Hate It Time Limit: 9000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 45334 Accepted Submission(s): 17789 Problem Description很多学校流行一种比…