- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PAGE 1
PAGE 1
揭密软件工程实践者的思想
对于一个程序员,或者以程序员自命的人来说,看清晰这一切的第一步,竟是一句“语言只是工具”! 1.语言只是工具 我曾经是特别执着的开发人员。我有连续几天几夜做Coding的经历,也曾经为了一个技术问题耗上三、四个星期而导致项目一再延迟,还曾经为了一个实现细节与项目相关的人员逐一争辩。 我也曾经像大多数开发人员一样热衷于争辩语言之间孰优孰劣。我在“Delphi大富翁论坛”上写过一个简介,其中个人特长是“擅长TPascal、Delphi、TASM系列语言,痛恨C/C++”。我至今保留这段文字,因为那的确是真实的经历。 如今我已经不再专注于语言,正如我在第一章中写到的一样:成天争论这门语言好,或者那门语言不好的人,是可悲的。 然而就在我写这段文字之前的一年,我还在写《Delphi源代码分析》,我还是无止尽地深入语言细节,深入操作系统细节,以及深入……开发的细节。 就在2004年3月间,我接受一个朋友的邀请,去北京做一个名为“DelphiDelphi.NET源码分析”的专题培训。我用了近两周的时间,做了50页的幻灯,全面叙述Delphi和Delphi.NET。然而在临行前的一晚,我辗转反侧,思索着一个问题:我毕竟做了些什么?或者说,我毕竟想告知学员些什么? 凌晨5点,我在幻灯的末页后插入了一张幻灯,标题是“语言只是工具”,而幻灯的内容是一张图,这是与培训完全无关的一张幻灯。然而,这是自1997年我接触到管理,以及从1998年我接触到工程以来,第一次正视“软件工程”这四个字。我第一次看清晰代码、方法、过程、工程与组织的关系! 对于一个程序员,或者以程序员自命的人来说,看清晰这一切的第一步,竟是一句“语言只是工具”! 猿之于为人,“学会制作和使用工具”是最重要的标志。因而我不知道“语言只是工具”这句话,毕竟是对语言的膜拜,还是漠视。 然而从那一刻开始,我才真正地知道工程。 2.程序 “程序=算法+结构”。这是编程的本源定义,也是原始的状态。与代码相关的任何工作,最终照旧会落足于这样的一条规则。编程的精义于此。从有开发行为开始,它就存在。挖山不止的愚公在数千年前就在用类似的行为做编程实践,而几十万年前的智人,也在循环与分支所构成的规律中打转。 3.方法 推动这种规律向前发展的是“方法”和“方法论”。长期编程实践,自然的推演与总结,必需沉淀为某种(软件开发)方法,于是“过程”出现了,“对象”出现了,相关的方法论也就出现了。 这是实践的成果。方法不是某个人或者某个组织创造的。瓜熟而蒂落,实践积累达到一定的程度,就算微软不提出某个方法,IBM也会提出这个方法。即便他们都不提出,可能你自己已经在使用这个方法了。 方法并不神奇,因为它就是你今日正在做的、从事的和实现的。正如“模式”是一种方法,而模式就是你昨天书写代码的那个行为。只不过,GoF归纳、抽取、提升了这些行为的内在规律。 你看不到你做事的行为,也就不能理解“模式”作为一种方法的价值。所以大师们众口一词:模式需要一定的编程经验才能理解。 同理,理解过程也需要编程经验,理解对象也需要编程经验,理解MDA与SOA还是需要编程经验。 这可能就发生在你回顾上一行精彩的代码,或者上一个失败的项目的一瞬息。经验来源于回顾、理解与分析,而不是你将要写的下一行代码。 有人在寺院扫了一辈子的落叶而得道,也有人因为一句话而得道。 GoF因为很多次的代码回顾而得道。 对于一个程序员,或者以程序员自命的人来说,看清晰这一切的第一步,竟是一句“语言只是工具”! 1.语言只是工具 我曾经是特别执着的开发人员。我有连续几天几夜做Coding的经历,也曾经为了一个技术问题耗上三、四个星期而导致项目一再延迟,还曾经为了一个实现细节与项目相关的人员逐一争辩。 我也曾经像大多数开发人员一样热衷于争辩语言之间孰优孰劣。我在“Delphi大富翁论坛”上写过一个简介,其中个人特长是“擅长TPascal、Delphi、TASM系列语言,痛恨C/C++”。我至今保留这段文字,因为那的确是真实的经历。 如今我已经不再专注于语言,正如我在第一章中写到的一样:成天争论这门语言好,或者那门语言不好的人,是可悲的。 然而就在我写这段文字之前的一年,我还在写《Delphi源代码分析》,我还是无止尽地深入语言细节,深入操作系统细节,以及深入……开发的细节。 就在2004年3月间,我接受一个朋友
原创力文档


文档评论(0)