随笔分类 -  020 软件设计

2013 QConf上海软件开发大会总结
摘要:带着工作中的一些疑问,我参加了在上海举办的QConf 全球软件开发大会。会议以主题的形式按分会场召开,我主要选择知名网站案例分析、大数据处理技术、高效能团队建设和金融系统架构与设计四个主题内容。三天会议下来,通过和业界的前辈和同仁沟通交流,加深了我对一些问题的思考。下面结合我个人理解和会上的所见所闻,从四个主题方向分别进行介绍。 阅读全文
posted @ 2013-11-16 17:12 Maxwell Zhou 阅读(1061) 评论(0) 推荐(0) 编辑
如何编写优雅的代码:07. 设计模式应用案例(下)
摘要:前文用C#代码实现了Facade模式、Adapter模式、Strategy模式、Bridge模式和Abstract Factory模式解决实际业务需求。本文将继续以C#代码为例,实现我在前面介绍的11个模式中剩下的6个模式:Decorator模式、Observer模式、Template Method模式、Singleton模式、Factory Method模式和Prototype模式。按照实现方法的不同,该11个模式可分成三类:创建型模式(Abstract Factory, Singleton, Factory Method, Prototype)、结构型模式(Adapter, Bridge, Decorator)和行为型模式(Strategy, Observer, Template Method)。 阅读全文
posted @ 2013-10-08 22:49 Maxwell Zhou 阅读(1656) 评论(3) 推荐(4) 编辑
如何编写优雅的代码:06. 设计模式应用案例(上)
摘要:前文一共介绍了四人帮(Gang of Four)总结的的11个设计模式,对初学者而言,光看文字描述和UML类图略显抽象。本着Learning in Doing的原则,本文将举一些实际的业务需求场景,以C#代码为例,讲述在编程的过程中如何应用设计模式,实现模块间低耦合,高内聚,编写出优雅的代码。需说明的是,接下来的例子相对简单,省略了业务逻辑代码,目的是为了让大家专注于设计模式的应用,忽略业务逻辑本身的复杂性,毕竟本文的目的是加深对设计模式本身的理解。 阅读全文
posted @ 2013-10-07 12:27 Maxwell Zhou 阅读(2424) 评论(0) 推荐(0) 编辑
如何编写优雅的代码:05. 设计模式(下)
摘要:截至上一篇文章,已经介绍了8个常用的设计模式。四人帮(Gang of Four)总结的第一版设计模式中,一共有23个模式,后来又陆续总结了些,应该有三十多个。个人实际工作中常用到11个设计模式(前文介绍的8个以及本文将介绍的3个),我认为这也是最常用的模式。本文将再介绍3个常用的设计模式:Singleton(单体)模式、Factory Method(工厂方法)模式和Prototype(原型)模式。在下一篇将介绍部分设计模式的具体应用。 阅读全文
posted @ 2013-10-05 17:46 Maxwell Zhou 阅读(1162) 评论(2) 推荐(0) 编辑
如何编写优雅的代码:04. 设计模式(中)
摘要:前文详细介绍了Façade模式、Adapter模式、Strategy模式和Bridge模式,并进行了比较。本文将再介绍四个常用的设计模式:Abstract Factory(抽象工厂)模式、Decorator(装饰)模式、Observer(观察者)模式、Template Method(模板)模式。开始介绍之前,笔者想说一下自己经常纠结的一个问题,什么时候开始考虑应用模式?作为一个新手,刚接触设计模式时都会为之倾倒,自觉醍醐灌顶,非常的迫切将所学的设计模式应用于实践,所以在编程的初期就会考虑各种模式的应用。个人的经验告诉我,对业务的理解是一个渐进明细的过程,开发的初期往往很难看到整个业务需求的全貌和本质,此时强行应用设计模式往往会导致Over Engineering。笔者认为应用设计模式的最佳时机往往是在代码重构的时候,彼时你已掌握业务的本质,对模式的应用往往能够恰到好处,其实这也是JIT的思想。 阅读全文
posted @ 2013-10-02 22:57 Maxwell Zhou 阅读(1729) 评论(0) 推荐(2) 编辑
如何编写优雅的代码:03. 设计模式(上)
摘要:前文介绍了设计结构优良的代码应该遵循的设计原则和尽量避免的设计臭气。基于这些原则,四人帮(Gang of Four)抽象出一些常用的设计模式,用于解决在编程过程中反复遇到的设计问题。笔者认为“复用”是软件设计最具价值的理念之一,甚至有人提出软件即复用。通常我们认为复用是指代码层面的复用,然而笔者认为设计模式是设计思想的重用。本文将重点介绍常用的四个模式:Façade模式、Adapter模式、Strategy模式和Bridge模式。考虑到部分模式比较抽象难懂,笔者将在后面专门写一遍设计模式应用案例的文章。 阅读全文
posted @ 2013-09-21 13:09 Maxwell Zhou 阅读(1101) 评论(0) 推荐(0) 编辑
如何编写优雅的代码:02. 设计原则
摘要:前文介绍了优雅代码的三个标准:风格好、结构好和性能好的三好代码。对于风格好有很多的代码规范供参考,都是编程习惯的问题,养成就好。但对于结构好这种“内功”则需要一定时间的修炼,理论与实践的互相印证,不断的思辨优秀的设计思想,才能游刃有余地将一些优秀的设计原则应用到实际软件开发中。本文,笔者将重点介绍:设计的由来、糟糕的设计给软件带来的隐患以及优秀的设计应该遵循的五大原则。 阅读全文
posted @ 2013-09-15 12:17 Maxwell Zhou 阅读(885) 评论(0) 推荐(0) 编辑
如何编写优雅的代码:01. 概述
摘要:笔者认为所谓优雅的代码包含三部分涵义:风格好、结构好和性能好的三好代码。不仅仅是C#语言,所有的编程语言都适用,只不过每种语言的特性和语法不同,实践三好代码的方式和途径也不尽相同。需要注意的是,在有些时候这三种内涵之间是矛盾的。例如,结构好的代码,有时候却会导致性能的下降。遇到这种情况,也不必纠结,在各种利益之间做好权衡,保证全局利益的最大化才是王道。本文以C#语言为例,总结C#编程实践中,如何做到代码的优雅。 阅读全文
posted @ 2013-09-08 21:54 Maxwell Zhou 阅读(1137) 评论(0) 推荐(0) 编辑
思考系统架构师的职责
摘要:工作至今,已负责过两个企业级应用的整体架构,设计的过程中有些浅薄的体会,总结出来与大家分享,同时也梳理自己的思绪,深化认识。所谓企业级应用和公网应用不同,她服务的群体是企业内部员工及企业的客户,旨在提高企业内控管理和业务开展效率。信息时代,企业作为商业组织,要从易变的客户需求和激烈的市场竞争中脱颖而出,势必要求企业级系统不但要有强大的功能,保证业务数据的安全性,还要易于升级和维护。 阅读全文
posted @ 2013-08-03 16:20 Maxwell Zhou 阅读(1035) 评论(6) 推荐(1) 编辑
Don’t Be Afraid to Break Things
摘要:近期看了一本书《97 Things Every Programmer Should Know》. 其中一条“Don’t Be Afraid to Break Things”。我对这句话的理解是:在察觉需求和设计不合理的第一时间,要有勇气和耐心去解决; 阅读全文
posted @ 2013-02-23 21:59 Maxwell Zhou 阅读(575) 评论(3) 推荐(1) 编辑