描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787111577010
你是否还在为了“三层”而“三层”?甚至不知道为什么分层。
你是否还在为项目中难以维护的SQL语句而头疼不已?
你是否还不知道MongoDB这样的非关系型数据库也可以使用ORM框架?
你是否对前端或测试这些领域也一无所知?
你是否面对高并发时手足无措?
……
本书将以轻松幽默的风格解决你所面临的这些问题。
本书以一个真实的项目案例——“晋商卡”从无到有的整个开发过程为主线,用大话的语言风格,风趣幽默地讲解了代码架构的相关知识。本书通过5个人物角色,模拟实际的项目开发过程,以对话形式抛出问题,然后解决问题,让你在身临其境中轻松愉快地掌握代码架构的知识。
本书涵盖的主要内容有敏捷开发的方法论、项目开发流程、传统的三层架构、源代码管理、几种常见的实体关系模型、使用IoC和接口、使用缓存和静态页面减少服务器压力、在项目中使用消息队列、尝试使用前端框架、微信公众号开发及小程序开发。
本书适合对代码架构感兴趣的初学者和爱好者阅读。另外,高校学生和参加软件开发的培训学员也可将本书作为兴趣读物。对于初入职场还比较迷茫的程序员,本书可以作为一本提高读物来阅读。建议阅读本书的读者具有一定的C#语言基础。
一分钟了解本书精华内容
引言
故事从一个电商开始
为什么是三层
ORM实体关系映射
换个数据库试试
越俎代庖搞稿测试
神奇的缓存
程序员眼中的前端
人生中的*次高并发
微信公众号
序言
前言
引言 1
一个架构师的例子 1
背景及人物介绍 3
我们的目标 3
第1篇 需求与三层架构
第1章 故事从一个电商网站开始 6
1.1 需求?需求! 6
1.2 敏捷开发简介 8
1.3 UI——用户界面 9
1.3.1 从UE说起 9
1.3.2 HTML 5 & CSS 3 9
1.3.3 微信 10
1.4 数据库 10
1.4.1 PowerDesigner设计工具 11
1.4.2 关于SQL语句 12
第2章 为什么是三层 14
2.1 MOL带兄弟们去吃饭 14
2.2 动手写一个三层结构 16
2.2.1 DAL层的实现 17
2.2.2 BLL层的实现 18
2.2.3 UI层的实现 19
2.3 简说MVC 20
2.3.1 纠正一下老师的说法 20
2.3.2 MVC的个程序 21
2.3.3 为什么要用MVC之我见 25
2.4 向三层代码中加入面向对象 25
2.4.1 实例化数据库表 26
2.4.2 增加数据库操作类 29
2.4.3 加强版的数据库操作类 30
2.5 小说代码管理 33
2.5.1 什么是代码管理软件 34
2.5.2 TFS管理软件 36
2.5.3 SVN管理软件 40
2.5.4 Git管理软件 41
2.6 小结 51
第3章 ORM实体关系映射 52
3.1 说说OCP开放封闭原则 52
3.2 解耦步——接口要上位 53
3.2.1 代码结构的前提 53
3.2.2 创建接口层 56
3.3 解耦第二步——工厂模式解决new的问题 58
3.4 Spring.NET横空出世 61
3.4.1 酒文化发展史 61
3.4.2 神奇的IOC 62
3.4.3 引出Spring.NET 64
3.5 我不想写SQL语句 67
3.5.1 什么是ORM 68
3.5.2 ORM之iBATIS.NET 70
3.5.3 ORM之NHibernate 75
3.5.4 ORM之EF 86
3.5.5 懒人无敌 93
3.5.6 完成查询操作 106
3.5.7 数据库先行、模型先行、代码先行 109
3.6 小结 110
第2篇 NoSQL和测试
第4章 换个数据库试试 112
4.1 客户总有一些非分的想法 112
4.2 MongoDB简介 113
4.2.1 安装&配置 114
4.2.2 可视化工具 116
4.2.3 MongoDB的基本操作 119
4.3 .NET操作MongoDB 121
4.4 让NoSQL面向对象 123
4.4.1 实体抽象 124
4.4.2 操作抽象 132
4.5 NoSQL题外话 135
4.6 关于日志 136
4.6.1 为啥要写日志 136
4.6.2 如何写日志 138
4.6.3 注意事项 144
4.7 小结 145
第5章 越俎代庖搞搞测试 146
5.1 简单说测试 146
5.2 冒烟测试 147
5.3 黑盒测试 148
5.4 单元测试 149
5.4.1 单元测试是什么 150
5.4.2 如何进行单元测试 150
5.4.3 测试驱动开发 161
5.5 白盒测试 162
5.6 压力测试 163
5.7 其他测试 163
5.8 小结 163
第3篇 高精尖技术
第6章 神奇的缓存 166
6.1 网站崩溃了 166
6.2 缓存是什么 168
6.3 微软提供了缓存 170
6.4 自己做缓存 173
6.5 第三方缓存 176
6.5.1 MemCache缓存 178
6.5.2 Redis缓存 189
6.5.3 把缓存抽象出来 197
6.5.4 读写分离 198
6.6 利用模板引擎生成静态页面 198
6.6.1 初识NVelocity 200
6.6.2 使用NVelocity生成静态页面 207
6.6.3 静态页面带来的问题 211
6.7 CDN的加入会大大减少服务器的压力 212
6.8 小结 213
第7章 程序员眼中的前端 215
7.1 常见的前端框架 216
7.2 尝试EasyUI 220
7.2.1 基础框架 220
7.2.2 常用的控件 232
7.2.3 小说权限分配 247
7.3 其他的前端框架 264
7.3.1 Bootstrap框架 264
7.3.2 jQuery UI框架 265
7.4 小说HTML 5 265
7.5 小结 266
第8章 人生中的次高并发 267
8.1 网站又崩溃了! 267
8.2 从相亲说起 268
8.3 简述消息队列 270
8.3.1 串行设计 270
8.3.2 多线程设计 271
8.3.3 消息队列设计 274
8.4 常见的消息队列 275
8.4.1 MSMQ消息队列 275
8.4.2 RabbitMQ消息队列 282
8.5 小结 288
第9章 微信公众号 289
9.1 李老板出场,请热烈鼓掌 289
9.2 初探微信公众号 290
9.2.1 申请订阅号 291
9.2.2 小机器人 294
9.2.3 把晋商卡挂到微信公众平台上 298
9.3 微信小程序 299
9.3.1 微信小程序是什么 299
9.3.2 写一个简单的Demo 300
9.4 微服务 310
9.5 MongoDB数据库 312
9.6 大数据 314
9.7 小结 316
架构(Architecture)是什么?可能每个人给出的答案都不同。业界流行一句笑话:
Architecture is
like teenage sex, everybody talks about it,nobody really knows what it is.
当然,MOL也不可能给出一个关于架构的准确定义。MOL更愿意把架构归为哲学的范畴。架构本身其实和软件开发并无太大关系。一个国家有自己的管理体系;一个公司有自己的组织架构;一个家庭也有独特的男权或女权的特色,小到一个人;也是可以分为自我、本我和超我的。每个事物都是由一个个更小的事物组合而成的,而这些其实都与架构相关。
在宏观世界里,所有的国家公民构成了一个国家主体,国家主体对每个公民进行管理和约束,这是架构。
在微观世界里,电子绕着原子核高速转动,始终不会脱离原子核的管辖范围。而原子核和电子又组成一个原子。原子对电子、质子、中子的管理就是架构。
本书的读者一定是软件行业的高手或菜鸟,那我们就回到软件编程的世界里。
每个软件项目都是由代码和服务器构成的,如何统筹安排代码和服务器,就是架构的范畴了。
一个项目可能要使用多台服务器,如Web服务器、数据库服务器、文件服务器、CDN……如何针对不同的要求对服务器进行选型,这是架构;如何统一管理这些服务器,这是架构;如何让这些服务器平稳运行,这也是架构。
开发项目使用什么语言,是Java还是Node.js?选用什么数据库,是Oracle还是MongoDB?这是架构。
具体到开发过程中,某个模块应该如何安排,是交给DBA(数据库管理员)用存储过程来实现,还是让C#程序员访问数据库实现?这是架构。
在写C#代码的时候,采用三层架构,还是MVC?这是架构。
如何写日志,是使用I/O读写文件?还是采用log4net?或者是AOP切片写日志?这是架构。
甚至具体到某种技术的时候,也有架构。比如MOL规定项目要使用MVC架构,那么使用微软的MVC,还是Spring的MVC?这都是架构。
可见,架构涉及的范围非常之广。弱水三千,MOL只给一瓢。本书将从代码架构的角度来让大家一窥架构的真面目。
C#是一门非常优雅的编程语言(当然MOL并无编程语言的偏见),所以本书中所有的代码都以C#语言来描述。
本书特色
1.风趣幽默
MOL一直比较反对平铺直叙的讲解方式,所以本书的语言风格是比较幽默的。在本书的内容中将出现3个与MOL并肩作战的兄弟(公司老大邓总不在此列),以对话形式抛出问题并解决问题。
2.案例分析
本书中只有一个项目“晋商卡”,但MOL会带着大家见证“晋商卡”从无到有的过程,大家可以在这个过程中获得很多意想不到的收获。
3.向循规蹈矩说NO
正如MOL在结语中所说,2017年是一个强调“工匠精神”的一年。几乎所有的人都在精益求精地做自己的事情。但MOL要分享给大家的是一种懒人精神,我们不愿意日复一日地重复昨天的自己,我们要站在更高的层面,做更少的事情,却有更多的收获。
本书内容及体系结构
第1篇 需求与三层架构(第1~3章)
本篇详细介绍了项目开发的前置节点——需求,并对常见的三层架构给出了分析。在第1篇中提出了面向对象的重点概念,并让大家初步认识抽象的过程。
相信很多人一定被书中大段的SQL代码搞得云里雾里,不用担心,在第3章中MOL将带领大家完成懒人的步——如何不写SQL代码。
第2篇 NoSQL和测试(第4、5章)
NoSQL是现在比较流行的一个话题和技术。在第4章中将通过讲解MongoDB来介绍NoSQL如何使用,并且纠正大家的一个错误观念:NoSQL和ORM不能搭配使用。
第5章分享了测试的工作,并讲解了单元测试、黑盒测试、白盒测试……让大家在收获的同时,也能理解测试工程师在工作中所要面临的一些痛苦。
第3篇 高精尖技术(第6~9章)
任何一个网站项目,似乎都绕不开“缓存”这个神奇的空间。缓存用得好,可以加快系统的反应速度。如果缓存用得不好,不仅用户体验差,还可能造成服务器宕机。第6章就分享了如何使用缓存。
每个程序员都有一个全栈的梦想,而前端又是全栈中必不可少的一部分,第7章讲解了如何使用EasyUI来搭建前端。
现在越来越多的电商网站都会做一些抢购或促销活动,当然这就使得网站不可避免地面临高并发。如何处理高并发呢?第8章将通过讲解消息队列,来说明如何应对高并发。
微信已经成了人们生活中必不可少的一部分。在2017年3月27日这一天,微信小程序也对个人用户开放了。我们如何把“晋商卡”挂到微信公众平台上,又如何开发微信小程序呢?这些问题都将在第9章中解决。
本书读者对象
l 对代码架构感兴趣的初学者;
l 对代码架构感兴趣的爱好者;
l 高校学生和相关培训学校的学员;
l 初入职场需要提高开发水平的开发人员。
因为书中所有的代码都以C#语言来描述,所以本书读者如果有一定的C#语言基础更佳。
本书配套资源
为了方便读者高效地学习,本书特意提供了以下配套资源:
l 本书源代码文件;
l 本书涉及的一些开发工具的安装包。
本书作者
本书主要由田伟(就是笔者MOL)和郎小娇主笔编写。其他参与编写的人员还有李小妹、周晨、桂凤林等。
读者阅读本书时若有疑问,可以发邮件到[email protected]以获得帮助。
只是因为在书丛中多看了你一眼,就再也没能忘记你的内容和风格。难得有计算机类的书籍能让人如此轻松愉悦地读完。阅读这本书,不仅能让你感受到作者字里行间的欢乐,还能让你有很丰厚的技术收获。相比大多数软件开发类图书,《大话代码架构》这本书分享的不仅仅是技术层面的东西,还有对开发思想的领悟,值得一读。
——牛昭
中体彩科技发展有限公司技术经理
一本好书,就像一个好朋友一样,隔三差五地想见他一面。MOL与郎小娇的大作《大话代码架构》就是这样的一本书。书中以情景对话的方式,用通俗易懂的语言介绍了与代码架构相关的很多开发知识,不仅有原理性讲述,还有大量的原创实践,值得推荐给广大读者阅读!
——王化军 优板科技、京融界、京钱客、京融客联合创始人
作为MOL的同事,很高兴向大家推荐《大话代码架构》这本书。书如其人,风趣幽默,又不失内涵。很多晦涩难懂的专业技术,经过作者的大话式解读之后,马上变得通俗易懂,活灵活现,让人很容易理解。如果你还不知道代码架构为何物,或者你在程序架构的道路上走得比较迷茫,那么本书*是你的不二之选!
——徐鸿飞 中体彩科技发展有限公司技术经理、信息显示游戏项目负责人
评论
还没有评论。