系统架构39问

架构视角面面观
服务器君一共花费了315.626 ms进行了6次数据库查询,努力地为您提供了这个页面。
试试阅读模式?希望听取您的建议

架构一个系统不是一件简单的事,需要考虑到的事情也特别的多。下面我列举一些常见的问题,以抛砖引玉。

  1. 是否在不断的学习新技术、新名词、生怕落伍?(WCF、WF、WPF、MVC、EF、WebApi、Spring、Castle、Unity、Autofac、NInject、AOP等)
  2. UI层代码平均是多少行?(WEBForm页面、Winform等页面)
  3. 业务层代码量平均是多少?
  4. 数据访问层代码量平均是多少?
  5. 存储过程、SQL、触发器的代码量是多少?
  6. 系统中有多少配置文件,配置文件的行数是多少?繁多的配置能否减少吗?是否都很必要呀?
  7. 代码量是否作为项目的考核指标?
  8. 项目中的代码是否有很多相似的代码或者冗余的代码?
  9. 项目的业务逻辑分布如何(UI层百分比是多少、业务层百分比是多少、数据访问层百分比是多少、存储过程触发器等百分比是多少)
  10. 开发人员大部分的开发时间是花在什么地方?前段界面、业务逻辑、数据访问层、存储过程、SQL语句、Bug修改。
  11. 开发时间、Bug修复时间的比例是多少?
  12. 开发人员是否经常做自动化单元测试(NUnit、MSUnit等)?
  13. 是否支持AOP扩展(事务处理、权限认证、监控日志等)?
  14. 数据校验怎么处理的?
  15. 是否支持国际化?
  16. 业务逻辑是否可以近乎零配置的方式,发布成WebService、Rest等类型的服务?支持各种终端吗?
  17. UI前端不用改任何代码,只需要简短几行配置把业务逻辑的进程内调用转化为分布式调用吗?
  18. 是否觉得MVC的控制器的代码都很相似,又无法进行很好的重构,如果能和业务逻辑统一起来该多好?
  19. 业务逻辑经过简短配置能否完成从嵌入式部署到分布式部署?并且业务逻辑与分布式部署完全松耦合?并且支持多种协议和数据格式?
  20. 业务逻辑该如何进行垂直分割和水平分割呢?
  21. 是否在为和其它系统的接口对接发愁呢?
  22. 如果页面都是静态化该多好?通过Ajax异步访问领域逻辑多好?
  23. WebPage能像MVC的ViewPage那样支持泛型节约不少代码量的?
  24. WebPage能支持DI注入那该多好?
  25. WebPage能像Mvc那样不用CodeBehind,禁用ViewState,不用任何服务器端控件、UI的响应不通过服务器控件的事件绑定, 可以自动路由到特定的方法,并且把表单参数和查询字符串的参数以及路由数据自动绑定到Action的方法列表,是不是很期待?
  26. 你的领域逻辑是否被UI前端绑架了?
  27. 你的领域逻辑是否被Asp.net的Session、Cookie、Cache等东东绑架?
  28. 你的领域逻辑是否被MVC或者WebApi的什么什么ActionResult.ControllerContext,ControllerBase,ApiController 等绑架?
  29. 你的领域逻辑是否被WCF的数据契约、服务契约、操作契约以及繁琐的ABC配置所绑架?
  30. 你的领域逻辑是否被WebService、Remoting等分布式架构所绑架?
  31. 你的领域逻辑是否被Ado.net 所绑架(强类型的SqlConnection等)?
  32. 你的领域逻辑是否被ORM所绑架(如EF、NHibernate等)?
  33. 你的领域逻辑是否被不支持多数据库所绑架?
  34. 你的领域逻辑是否很难支持多谢分离?
  35. 没有裸奔的领域逻辑是否该甩掉包袱开始裸奔呢?
  36. 你们的架构是否依赖核心人员?核心人员一旦离职等其它因素脱离该项目,其它人能否玩得转吗?
  37. 你们的架构能否可以做到项目的快速交付和实施吗?
  38. 你们的架构的稳定性、安全性、可扩展性、维护性、易用性如何?
  39. 你们的架构经过简短的培训能够让实习生很快上手吗?

上面的问题,不解决或者都解决对不同岗位的人有什么切身体会呢?

  • 初级软件工程师?
  • 中高级软件工程师?
  • 技术经理?
  • 项目经理?
  • 架构师?
  • 测试工程师?
  • 客户?
  • 领导?

我上面写了30多条个人日常工作中的点滴,但这也只是一个系统架构的一些方面而已。任何系统都是复杂的,我们需要考虑得更加周全,才能做出健壮的系统。

本文地址:http://www.nowamagic.net/librarys/veda/detail/1924,欢迎访问原出处。

不打个分吗?

转载随意,但请带上本文地址:

http://www.nowamagic.net/librarys/veda/detail/1924

如果你认为这篇文章值得更多人阅读,欢迎使用下面的分享功能。
小提示:您可以按快捷键 Ctrl + D,或点此 加入收藏

大家都在看

阅读一百本计算机著作吧,少年

很多人觉得自己技术进步很慢,学习效率低,我觉得一个重要原因是看的书少了。多少是多呢?起码得看3、4、5、6米吧。给个具体的数量,那就100本书吧。很多人知识结构不好而且不系统,因为在特定领域有一个足够量的知识量+足够良好的知识结构,系统化以后就足以应对大量未曾遇到过的问题。

奉劝自学者:构建特定领域的知识结构体系的路径中再也没有比学习该专业的专业课程更好的了。如果我的知识结构体系足以囊括面试官的大部分甚至吞并他的知识结构体系的话,读到他言语中的一个词我们就已经知道他要表达什么,我们可以让他坐“上位”毕竟他是面试官,但是在知识结构体系以及心理上我们就居高临下。

所以,阅读一百本计算机著作吧,少年!

《致加西亚的信》 阿尔伯特·哈伯德(Hubbard.E.) (作者), 赵立光 (译者), 艾柯 (译者)

《致加西亚的信(经典盒装版)》内容简介:美西战争爆发以后,美国必须立即与古巴起义军首领加西亚取得联系,并获得他的合作。但当时,加西亚身在古巴的深山里——没有人知道他的确切地点,所以没法与他取得联系。这时,有人向总统推荐一个名叫罗文的人,说他有办法找到加西亚,而且也只有他才能找得到。他们找来罗文,交给他一封写给加西亚的信。三周后,罗文徒步走过一个危机四伏的国家,最终把那封信交给了加西亚。 此后,罗文的事迹被传为佳话,“送信”成为了敬业、忠诚、勤奋的象征,罗文便成了每个领导都想找到的人和每个员工都应该学习和效仿的榜样。

更多计算机宝库...