初读《代码大全》
对于《代码大全》这本书我还没有仔细的读,更别说是看完了,我就重点看了一下第三、四章,主要讲软件工程的前期准备,其次就是我大致浏览了一下后面的内容。第一感觉就是作者写得相当好,插入了不少段子,比喻形象,生动诙谐。但是没有深入的研读难以给出有意义的问题,想问题快把我想得头都要爆炸了,最终还挤出了几个问题。虽然本书主要讲的是软件构建过程,下面的问题主要集中在软件架构相关的领域。
1字符集总是让人捉摸不透,那么常用的编程语言都分别支持哪些字符集,如何用这种语言编写制定字符集的程序?字符串类型和字符集类型有何联系?程序中的中文和英文甚至俄文都是使用什么字符串类型?
2如何开发出漂亮的用户界面,比如360安全卫士那样的软件?有没有类似的模板可以直接使用?这是我非常关心的问题,因为常年编写控制台的应用程序对于界面编程完全不懂。
3常用的软件架构有哪些?有没有固定的套路可以直接拿来使用?
4对于大部分的软件开发人员来说,架构师都是一个令人向往的角色。毫无疑问要成为一个软件架构师需要阅历无数的软件工程,那么一个合格的软件架构师是如何成长起来的?大概需要多少年?
5一个实际的项目是怎么进行前期准备的,大概需要多长时间?真的有必要像书上所述的那样准备吗?就算是我们平时写的一个小项目也很难做到书上的各种要求,很多类都是在实现的过程中才不断明确下来的。
《代码大全》 摘记——三思而后行:准备工作之架构部分
1如果对某个类在系统中的角色没有一个清晰的构思,那么编写这个类就是一件令人灰心丧气的工作。
2在开始编码、测试、调试之前进行需求分析和架构设计才能保证关键的方面都做正确。
3程序员是软件食物链的最后一环。架构师吃掉需求,设计师吃掉架构,而程序员则消化设计。
4在构建活动开始之前清除一个错误,那么返回的成本仅仅是在开发过程的最后阶段(在系统的测试期间或发布之后)做同样事情的十分之一到百分之一。
5调试连同相应的返工在典型的软件开发周期中会占据大约50%的时间。
6架构应该详细定义web页面格式、GUI、命令行接口等主要元素。
7命令行界面便于单元级别和子系统级别的软件测试。
8程序中有高达90%的代码是用来处理异常情况、进行错误处理、或做笔记工作。