[架构师一.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
[架构师一

可实现的是架构,空谈是概念 So dont tell me the concepts show me the code! ?“不懂编码的架构师不是好架构师” 好架构师都是超级代码控。?代码是最好的老师?从代码中学习设计的思想、方法是提升类库设计能力、印证你所了解的概念与理论这就是架构师看代码的观点。?基本准备一个类库可能有数千个类上万个方法,应该如何去看呢?在看代码前我们需要进行一些什么样的准备呢??设计模式?- 最标准的23种设计模式基本上要有一个了解,可能一下子不能理解他们的用法,但一定要记下他们的英文名字和基本的用途,如:Factory, Wrapper (Decorator), Command, ?Builder等?。语言规范?- 熟读语言本身的官方编码规范与命名规则,这是共同的标准,也是从官方得到写代码的第一指导。要看懂UML中对类的图形表示方法(类、接口、抽象类、继承关系、使用关系)?看代码的方法这里所提供的方法就先以C#作为语言基础,因为C#有极为规范的的语法规则。.net 的文档在类库方面的文档是最完整也是最易读的。以.net framework作为起点会是一个很好的练习入口。在开始前我还推荐一下大家需要有一个反编译工具我用的是.NET Reflector,?用反编译工具不是让你去抄代码(代码本身是没有多大价值的,价值的核心在于设计)而是可以更深入地了解到代码是怎样实现的。用反编译工具看微软的代码会看到很多的不同的,你会发现大最设计得非常有意思的内部类 (Internal) 。从中大至可以推断出微软的开发方法,“在外部接口完全一至的情况下,让程序员编写的自由度最大边界就是内部类与内部方法” 你可以马上动手先看看 System.Web.Mvc.dll 的实现?要点:多问为什么,带着问题看代码——为什么这样写(存在理由)?为什么这样设计(出发点)?由你来写又将如何实现??看命名?? ? 以面向对象的语言为例,大多会在名字内带有具体的用法信息,从名称推算可能使用的模式及实现?带有模式印记的类:TagBuilder - 以Builder模式实现的Html标记的构建器StringBuilder - 以Builder模式实现的字符串构造建器XXXXWriter - 以构建器模式实现的各种写入器ConnectionFactory - 数据库连接对象构造工厂?XXX+模式名是惯用的对模式类的一种命名规则?找到了模式实现如果你看不懂,那恭喜你这就是学习的机会到了,马上翻开设计模式与实现类进行对照印证,这个过程可以加速模式在你大脑中的印象与加深理解。(模式是架构师的大杀招,能不能上档次就看对模式的理解与认识了,一有机会就应该学)??带有家族印记的类:?XXX+Base - 抽象类基类名+XXX - 某抽象类的子类??是继承关系一种常见的命名规则。?注:每一种基础语言会有自身的命名规则,所以必须对官方提供的命名规则烂熟于胸,既可以学习别人怎么写代码也可以规范自己的代码写法。??做完这两个练习基本上你可以在不看 Classes References(类手册)的情况下一下子了解一大堆类的存在与用法。?看接口? ?接口在设计中有着极为重要的地位,结构再复杂的系统到了接口级别基本上都会很简单。而且也是判定这个类库设计是否成熟的一种标准。接口与接口间的定义就定义整个系统的基本框架。看接口的最基本意义就是深入理解类库设计者的设计思路与了解类库最核心的能力。?这里我们以IRepository为例来讲讲怎么去看接口 (如果想深入了解IRepostiory的朋友可以阅读我之前的文章:“Repository模式与UnitOfWorks模式的运用” )我以IRepository为例是因为它的共识度很大,而实现起来可以很庞大也可以很小,众所周知IRepository提供的就是对某个实体的CURD(增加、更新、读取、删除)的一个接口。那么当我们看到它的存在时,应该可以推断出另一个接口:IUnitOfWork因为它们往往会是孪生兄弟般的存在,再进一步推断是否会存在IRepositoryFactory和IUnitOfWorkBuilder呢?那么就可以带着这些问题在类库中找答案。 ????通过IRepository我会可能会发现一大堆的Repository类,如抽象类:EntityRepositoryBase, FiledRepositoryBase ,JSONRepositoryBase等具体类:BlogRepository, PostRepository, UserRepository等??注:作为练习大家可以去下载我在NuGet上发布的一个名为?DotNetAge Document Storage?类库,里面就有Repository的实现?一但掌握了从接口

文档评论(0)

1974wangpeng + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档