11 2008 档案
摘要:面向对象的软件设计中有一些基本原则可以遵守,包括单一职责、开闭原则等,我们运用这些原则,去设计我们的软件,最后达到的效果是高内聚、低耦合,也就是说各个模块内部联系紧密,但是模块之间的联系不紧密,只是通过一些公共的API来进行通信。 我们追求高内聚、低耦合的目的是为了使得程序更加易于维护、易于对应客户的需求变更。如果项目本身规模很小并且需求非常固定,那么就没有必要追求高内聚、低耦合的设计,高耦合完全...
阅读全文
摘要:终于到了周末,可以休息两天了。 过去的一周应该算是繁忙的一周,也是比较郁闷的一周,原因是学习日语,部门前段时间通知,由于客户要求,我们需要进行日语的培训,我这个级别到明年年底至少要通过3级,不然去客户那边onsite会有沟通上的障碍... 结果我的生活就变的以日语为中心了,早上、中午、晚上都献给了日语,PDC2008的视频整整一周没有看了,原来的读书计划也快荒废了,太牵扯精力了。 今天下午对之前学...
阅读全文
摘要:《美国往事》包含了一个男人在这个世界上所能遇到的一切。友情、爱情、思想、责任、冲突。它更像是一场让人不愿醒来的梦,当Noodles躺在床上,在温暖的灯光和的迷离的电话铃声中回到那些逝去了的岁月,这场梦便开始了,直到最后的Noodles终于露出笑容,我们才回到自己的人生,去继续那些不尽的故事。什么帮派,什么仇杀,原来都不重要,印象中只有一个毛躁的少年,偷看一个美丽女孩子跳舞;只有一个负罪的兄弟,每天...
阅读全文
摘要:第二十三章 编程领域大观——不同的编程分支不存在一个比其他语言都要好的编程语言,有许多不同的问题类别要在许多不同的环境下得到解决,解决方法的区别不仅仅是技术上的,它们在技巧上也会有所区别。熟悉你的领域并懂得它所独有的问题,这非常重要。编程有各种各样的类型,分别处于不同的问题域汇总,没有类型都有其独特的问题,并需要特定的技能和经验。应用程序有两个主要市场:塑装软件和定制应用程序。塑装软件是为大规模市...
阅读全文
摘要:第二十二章 程序秘方——代码开发的方法和过程同一个系统可以采用许多不同的方式来构建,这些方式不一定要有优劣之分。优秀的程序员知道他们是如何编程的——构成他们工作的方法和实践。编码的风格描述了软件问题是如何安排解决的,以及它的解决方案是如何分解并使用目标语言来构建模型的,编码风格确定了我们如何将一个项目分割成许多可管理的小块,它适用于表达代码意图的设计泛型。编码风格主要分为两类:命令式和声明声明式。...
阅读全文
摘要:第二十一章 软件时间范围估计的魔术虽然很多人对进行软件估计不赞成,但是毫无疑问,它是非常重要的。估计的质量主要取决于你对所要估计的任务理解的有多好,也就是说,你真正理解的有多好,而不是你认为自己理解的有多好。软件时间范围估计需要进行有根据的推测,每次估计都应该伴有你对结果的强烈信心。良好的估计是推理出的,有根据的,而糟糕的估计则无异于在黑暗中进行探索。之所以很多人认为进行估计很难,是因为:有大量的...
阅读全文
摘要:第二十章 代码审查——执行代码审查评审与自杀相比有一个优势:自杀是你拿自己出气,评审是你拿别人出气。“代码审查”是我们大多数人提高自己的最佳方式。代码审查所带来的责任,会使你的编码质量提高。审查将会把源代码放在显微镜下,这并不是为了取笑或者惹恼作者,而是为了提高团队制作的软件的质量。我们可以采取以下方式来避免代码审查:配对编程。这样你的代码在编写的过程中就得到了有效的审查。开发源码。这样允许任何人...
阅读全文
摘要:第十九章 注意细节——编写软件规范编写和处理规范是程序员应该具备的一项非常重要的技能。用自然语言沟通,与用代码沟通一样重要。规范使一些正式文档,它们构成了开发过程的一部分,用于提供内部的软件文档。规范有助于你更加聪明的工作,并编写出更好的软件,不过,糟糕的规范会起到完全相反的作用。对于软件开发过程而言,重要的不仅仅是软件规范是否存在,而且还有软件规范的质量。规范是团队内部和团队之间进行沟通的一种形...
阅读全文
摘要:第十七章 团结就是力量——团队合作与个人程序员在大多数行业中,优秀的产品都是优秀团队的杰作,软件开发也不例外。在现实中,任何规模较大的软件开发公司都会具有很多团队合作的层次,可以从公司、业务单位、项目、团队到个人。虽然公司是一个有效率的大型团队,但是你却常常发现各个部门和各种集体之间,人们会在心里称呼对方和自己为“他们和我们”,从而使公司内部出现断层。这并不是一个高效产品开发的理想环境。开发团队的...
阅读全文
摘要:第十八章 安全措施——源代码控制和自我控制代码非常宝贵,要以尊重和谨慎的态度来对待它。作为尽责的软件匠人,我们必须对我们的工作承担责任,我们不仅需要编写高质量的代码,还必须确保我们的工作:1. 安全可靠;2. 可访问;3. 可复制;4. 可维护。对于软件开发来说,源代码控制是一种必不可少的工具。它对团队的安全合作至关重要。糟糕的源代码管理可能会与源代码控制结合在一起,产生令人头疼的开发问题。源代码...
阅读全文
摘要:第十六章 代码猴子——培养正确的编程态度和方法面对同一件事情,不同的程序员会以不同的方式工作,他们会各有各的解决方法,总是会有“不止一种方法来做这件事情”的想法,不同程序员的态度也会导致他们作出截然不同的决策。软件工厂中居住着许多奇怪的不能适应社会的人,我们把他们叫做代码猴子,任何重要软件系统都是由这些人来构建的,他们具有不同的技术水平和态度,并且都为同一个目标而努力。我们在一起工作的方式以及我们...
阅读全文
摘要:第十五章 改良与革命——代码是如何成长的软件是一种有生命的实体。我们确实有机会来反复提高代码的质量,这在某种程度上模拟了进化的过程。优秀的代码也会遇到糟糕的事情。永远都不要低估代码在其生命周期内出现缺陷和瑕疵的能力。软件开发的维护阶段通常是软件成长的最长阶段。不管你做什么,最初的代码都会被更改,腐烂就是从这里开始的,这是一种你“做也不是,不做也不是”的情况,不管你做什么,代码都会腐烂。即使你的确在...
阅读全文
摘要:第十四章 软件体系结构——奠定软件设计的基础我们已经建造出很多的建筑物,其历史要远远超过我们编写软件的时间,我们现在仍然要学习掌握制作优秀的软件体系结构的要素。体系结构视图的缺失对于软件造成的影响是很大的。这样的系统很难处理,也很难理解,其功能随机的散步在各个模块之间,它的状态糟糕到你唯一能做的事就是把它扔掉。软件体系结构是一种顶级定义,是一种对系统的全面概览,其中刻意避免了过多的细节,它是宏观层...
阅读全文
摘要:第十三章 崇尚设计——如何创作出优秀的软件设计成熟程序员的判断标准就是他或她的代码的设计质量。一种错误的想法: 设计是一个需要在开始编写代码之前完成的阶段,这个阶段的成果就是某种形式的设计规范。其实编程本身就是一种设计活动。编程的过程将检验初始的设计决策,并完成剩余的设计工作。编程是一种设计活动,它是一项富含创造性和艺术性的工作,而不是机械呆板的代码生成过程。在编写代码之前先进行思考,创建一种条理...
阅读全文
摘要:1.一个企业,80%的价值是由20%的人创造的,其他80%的人只创造了20%的价值,而他们最大的作用就是刺激这20%的人创造出 80%的价值,而能获得企业肯定和好处,也仅仅是这20%的人,所以,想要站的稳,爬的高,就只有成为这20%中的一员,这是千古不变的真理,所谓的团 队,说粗俗点就是拉帮结派,兄弟,现实一点,人的社会就是这样,看看历史如此,现在如此,将来还是如此,不管职场,管场,都是如此,呵呵...
阅读全文
摘要:第十二章 不安全感综合症——编写安全的程序大多数的软件系统都是需要一定的安全水平,无论软件系统处理的是否是敏感数据。要了解你拥有哪些重要的资源,你是否拥有攻击者可能会希望得到的非常敏感的信息或特定的能力。为什么会有人攻击你的系统呢?因为你拥有他们想要的东西,包括:你的处理能力。你发送数据的能力。你存储的私人信息。你的权限。你对更令他们感兴趣的远程系统的连接。只要存在一个不安全的程序,就会让整个计算...
阅读全文
摘要:《The Future of C#》Anders Hejlsberg,讲的非常不错,信手拈来的Demo,尽显大师风范。
阅读全文
摘要:第十一章 追求速度优化是一个悬浮在软件开发上的幽灵,很多编程错误都是以效率的名义犯下的。“优化”指改善某个事物以使它更好,对于更好,从不同方面看,有不同的理解:1. 使程序运行速度更快;2. 减少可执行文件的大小;3. 提高代码的质量;4. 提高计算结果的准确性;5. 将启动时间减到最小;6. 增加数据的吞吐量;7. 减少存储开销。对于优化,建议如下:不要做优化。一种错误的想法:只有在开发结束使你...
阅读全文