摘要:
从 2000 年毕业,我做这行已经超过十二年了。最初接触计算机程序,还是 DOS 下的 QBASIC ,那已经离现在有接近二十年了。最初,我只是会照猫画虎,按照老师的程序抄个素数数列,或者打印个三角形什么的。初步理解程序的结构和意义,要等到读大学以后了。那个时候在老师的鼓励下,自己买书学习 Delphi ,才开始慢慢了解一些程序语言的知识。能够自己设计和开发出有点用途的程序,则要等到工作以后,在实战中一边做一边学。 回头看看,这条路竟然是意外的漫长。用了至少有七八年,而其中有好几年,完全就是在很低阶的知识层面上独自摸索。 当然,对于很多天资聪明,又肯用功的同行,这个过程要短的多。... 阅读全文
摘要:
紧张的世界如果所有的质量特征都是很容易彼此调和的,那么软件工程师可能(几乎)就是多余的了。管理互相冲突的需求和约束是工程学中需要研究的问题,在软件质量问题中,冲突和约束也非常之多。图1-3中,使用弹簧弹力模型描述了各种质量特征之间最显著的冲突。每条连线都表示其端点的两个特征之间无法融洽共存:对其中任何一个进行改进,往往都会破坏另一个。值得注意的是,6个主要特征中的每一个都与其他5个主要特征有冲突。以可用性为例,存在极少数的情况,程序实在写得太糟糕,只要简单地删除一些代码元素就可以改善程序的可用性。而在大多数情况下,改善可用性需要增加代码:这里加点儿自动化功能,那里加点儿时髦的GUI元素,在其他 阅读全文
摘要:
Jolt大奖精选丛书代码质量(权威精选植根于开发实践的最佳读物)(希)斯宾耐立思(Spinellis,D.)著左飞,吴跃,李洁译ISBN 978-7-121-17421-6 2012年7月出版定价:89.00元16开512页宣传语:一项技术产品只有在获得了Jolt奖之后才能真正成为行业的主流,一本技术图书只有在获得了Jolt奖之后才能真正奠定经典的地位。内 容 简 介Jolt大奖素有“软件业之奥斯卡”的美称,本丛书精选自Jolt历届获奖图书,以植根于开发实践中的独到工程思想与杰出方法论为主要甄选方向。Diomidis Spinellis首部著作《代码阅读》(Code Reading)旨在阐明程 阅读全文
摘要:
--Jolt大奖精选丛书面向对象分析与设计(第3版)权威精选植根于开发实践的最佳读物(美) 布奇(Booch,G.) 等著王海鹏,潘加宇译ISBN978-7-121-17389-92012年7月出版定价:99.00元16开608页宣传语:一项技术产品只有在获得了Jolt奖之后才能真正成为行业的主流,一本技术图书只有在获得了Jolt奖之后才能真正奠定经典的地位。内 容 简 介本书是UML创始人Grady Booch的代表作之一。全书分为理论和应用两部分。理论部分深刻剖析了面向对象分析与设计(OOAD)的概念和方法。应用部分连续列出了5个不同类型、不同领域的应用,描述如何从初始阶段到交付阶段,将O 阅读全文
摘要:
建模与设计我们经常说:“使用用例对业务过程进行重组”,其可能意味着:“在重组前,通过用例对其原过程文档化。”“通过用例创建符合设计要求的外部行为需求。”“重新设计后,使用用例对新过程文档化。”事实上,所有这些含义都应该是对的,并且都值得关注。读者可以按自己的意愿去理解其中的一个。但是通常在谈论用例时,我总是说业务过程建模或文档化,而不是业务过程重组或设计。因为用例仅仅是对过程文档化,不能代表过程重组或设计。在创造性设计时,设计者需要经历一个思维跳跃的过程,但用例不能告诉他们怎样去做。通常,每个层次文档所描述的是下一个层次设计必须满足的行为需求(实际上,我们却说“这次设计满足这些行为需求”)。引 阅读全文
摘要:
温昱谈程序员向架构师转型的规律 本次讲座将紧紧围绕“程序员向架构师转型”这一主题,从态度、知识、技能等方面提炼出简明清晰的规律性法则,结合大家身边的例子,深入浅出地为程序员、初中级开发人员(以及负责指导他们的相关角色)提供有意义的参考。讲座主题:温昱谈程序员向架构师转型的规律时 间:2012年8月25日15:00地 点:中关村图书大厦五层多功能厅主 讲 人:温昱 ●资深咨询顾问●实战型架构培训专家,创立ADMEMS架构实践体系●实战型重构培训专家,近千小时代码重构咨询经验,提出ARCT设计重构方法论 他有十五年系统规划、架构设计和研发管理经验,在金融、航空、多媒体、电信、中间件平台等领域负.. 阅读全文
摘要:
自动化单元测试人们在使用“单元测试”这个术语时比较随意。这可能会导致困惑,特别是当人们开始声称他们的单元测试“花了很长的时间执行”时。为开发者测试定义一个常用词汇表有助于将测试进行有效的分类,从而创建一个有效的CI系统,能够执行快速的构建。“单元测试”验证软件系统中所有小元素的行为,这些小元素通常都是一个类。但是有时候,单元测试和被测试的类之间的这种一对一的关系会被放大,因为一些被测试的类耦合程度较高。代码清单6-1展示了利用TestNG框架编写的单元测试。TestNG是基于annotation的,因此@testng.test这样Javadoc一样的注释出现在了startPatternTest 阅读全文
摘要:
Exadata中最有用的功能-存储索引前所未闻的存储索引是Exadata中最有用的功能,它不是像Oracle的B树索引或者位图索引那样传统的存储在数据库中的索引,事实上,它在传统意义上甚至根本不能算是索引。我们无法通过存储索引来定位拥有给定列上特定值的一系列记录,相反的,存储索引是存储服务器上的软件,它的设计目的是为了消除磁盘I/O。因为通过存储索引可以定位的是不存在所需记录的位置而非存在的位置,所以有时候我们称其为“反向索引”。它保存每个磁盘存储单元(默认是1MB大小)中存储的字段的最小值和最大值,当使用智能扫描时,SQL谓词是会传递到存储服务器中的,因此存储软件就能在真正请求I/O之前比对 阅读全文
摘要:
Exadata的独门武器--卸载(Offloading)卸载(Offloading)是Exadata的独门武器,正是它让Exadata不同于其他任何一种运行Oracle的平台。卸载指的是将处理能力从数据库服务器转移到存储层,它也正是Exadata平台提供的主要卖点,它不仅仅转移了CPU的使用,更主要的好处是减少了那些必须要返回给数据库服务器的数据量,而这正是大多数大型数据库的主要瓶颈所在。卸载这个词在某些方面可以跟智能扫描(Smart Scan)互通,我们认为卸载是更好的描述方式,因为它指出了一部分传统上由数据库处理的SQL流程现在可以从数据库层面“卸载(offloaded)”到存储层面。这是 阅读全文
摘要:
Exadata是什么?Exadata是什么?在我们看来,它是一个把硬件和软件根据合理的配置整合在一起的 Oracle数据库(在本文编写时是11gR2版本)平台。Exadata数据库机器包含了存储子系统,在存储层上运行着研发的新软件,这使得研发人员可以做一些在其他平台上无法完成的事情。实际上,Exadata一开始是以一个存储系统形式诞生的,如果你跟参与研发此产品的人交谈,你经常会听到他们称存储组件为Exadata或者是SAGE (StorageAppliance for Grid Environments,网格环境存储设备),这是该产品研发项目的代码名称。Exadata原本设计用来解决超大型数据 阅读全文