浅析.NET设计架构十条箴言

箴言一——凡事无绝对数据库

凡事无绝对。做为架构师,你永远不会对任何事情有百分百的把握,你永远没法面面俱到。不过在这个位置上,你就必须评估全部的可选方案,并做出有足够预见性的正确决策。你须要为本身争取一些时间,以便慢慢思考,所以首先说“凡事无绝对”,而后解释为何是这样,变数有哪些。若你还不肯定有些变数,那么能够选用这个通用的回答——“这取决于上下文”。编程

箴言2——需求是超越一切存在的安全

架构仅仅是软件项目中一个天然的连接部分。客户将说出他们须要什么,如果客户吧清楚本身的需求,那么会有人引导直至获得明确的答案,这是分析师的职责。项目经理将为这个已经正式肯定的项目安排基础设施。架构师会获得全部的需求,并为开发者提供设计。开发者将按照架构的意图开发。数据库管理员也会尽力让数据库能良好支持应用程序。你会认识到,客户位于这个链条的顶端,且客户的需求才是最重要的部分,客户所须要的东西叫作需求。固然,没有几个客户知道他本身真正须要的是什么,所以需求会不停地变化。架构

箴言3——根据接口编程app

虽然咱们是依靠最终实现代码来完成需求的,不过仍应该尽量地使用接口。请牢记“没有接口的话就不要开始实现”这句话。仔细分析,你总会找到能够提取的接口。工具

箴言4——保持简单,但不过与简单性能

你应该据说过KISS(Keep It Simple,Stupid)原则,但这只是咱们修改后的观点。简洁明了一般就意味着优秀。以简单为目标,不过要留有本身的底线。如果低于这个底线,那么你的解决方案将变得过于简单,这并非一件好事。测试

箴言5——继承是为了多态,不是重用优化

面向对象编程(OOP)让咱们仅编写一个类,而后不停地重用并根据须要扩展,这是依靠继承实现的。不过这就是类重用的所有吗?“重用”这个概念要比你第一眼看上去更加微妙。多态是面向对象编程的核心功能,意味着你能够互换地使用两个继承类。同时,有些人给出了总结:“虫咬是继承的一个附带功能。”不太重用不该该成为你的根本目标,换句话说,不要仅为了重用而使用继承。最好是编写一个新的类来知足需iqu,而不是继承某个本来不是完成此工做的现有类。设计

箴言6——不要再非数据访问层中使用SQL

牢记这一条:分离关注点。将数据访问代码和细节(例如,链接字符串、命令和数据表名)先放在一边。或早或晚你总会开始处理,不过不是在设计业务逻辑层和表现层时。若是可能请将持久化工做交给对象/关系映射(Object/Relational Mapper)等专门的工具处理。

箴言7——首先考虑可维护性

若你仅能为软件选择一个特性,那么应该如何选择呢?选择可伸缩性、安全性、性能,可测试性仍是可用性?在咱们看来,上述这些都不是最重要的,最重要的是可维护性。有了可维护性,上述全部特性均可以在往后实现。

箴言8——全部的用户输入都是罪恶的

你应该早已听过这种说法。“纸包不知火”,如果有某种途径让用户能够入侵,那么早晚会被用户发现。这彷佛是墨菲法则,确实如此。

箴言9——过后优化

Donald Knuth曾说过,过早地优化时全部软件罪恶的根源。咱们讲该说法更进一步——不要优化系统,而是让其设计尽量地面对改进和扩展,仅在系统完成以后,再关注纯粹的优化。

箴言10——在设计时考虑安全性和可测试性

若你很在意某个系统特性,那么在设计开始前就应该考虑到它。安全性和可测试性也是如此。甚至一个国际标准化组织(ISO)的规范也明确地阐述了这一点。

相关文章
相关标签/搜索