09 2012 档案
软开心法十五||软件内功
摘要:什么是内功?内功和招式有什么区别?我觉得这个区别我不用多说了,估计没有人不知道武功的内功和具体招式之间的差距,哪个是需要终极修炼的一目了然。软件的内功又是什么东西呢?那么招式又是什么东西呢?一句话:具体的实现技术是招式,心中的实现思想是内功。最明显的招式属于各种语言,内功属于使用语言实现的想法和步骤。那么在软件开发行业,到底都有些什么内功呢?经过这么多年前辈的总结和发展,并没有固定的方法,但是有一条宗旨就是“高质量”,高质量表现为健壮性好,扩展性好。而软件工程中所有的东西都是为这两个服务的,包括什么设计原则,什么设计模型等等。业界已经被广泛认可的有软件思想(面向对象,面向过程等),软件设计.. 阅读全文
posted @ 2012-09-25 13:47 Martin Stallman 阅读(580) 评论(0) 推荐(0)
软开心法十四||软件改进
摘要:之所以存在软件噩梦,是因为软件需要改进和维护,这是软件生命周期的一部分,正如人类的生老病死一样,即使你不喜欢,但是他依然会来临,它不会因为你不喜欢或者抗拒而不来。你所能做的,正如当下流行的一种说法,如果你无法反抗,就学会享受。 这正如我在团队中所倡导的一样,很多问题,之所以不能解决或者是不能很好的解决,是因为从一开始我们就没有承认这个问题。那么解决问题的第一步就是先承认问题的存在,存在即合理虽然大家都会说,但是很少有人会仔细的去思考,尤其是在工程项目之中。我常常听到的一句话就是“这不可能”。还有往往也有那样的抱怨“用户老变”,“这是人的问题”等等这些抱怨,这些抱怨的背后都存在一个问题,即... 阅读全文
posted @ 2012-09-25 09:10 Martin Stallman 阅读(433) 评论(0) 推荐(0)
软开心法十一||无法复用
摘要:从程序一开始,程序员们就一直在努力的使得程序可以复用。也许如坊间流传的一样,这个世界是由懒人来推动发展的。复用使得程序完成的更快,程序员工作的更少,当然随之而来的是错误出现的概率会少,修改也会方便很多。 在那个只有面向过程语言的年代里,程序员们对于程序复用的渴求是那样的强烈和无处宣泄,因为不能轻松的复用,程序员们就要干一些本来已经干了的事情,修改一些重复要修改的问题。最终他们爆发了——面向对象语言被设计出来了——面向对象语言的特色就是封装和复用。面向对象通过继承,依赖,组合,聚合等来实现完美的代码复用。这种对于复用前所未有的支持,使得在面向过程语言下不能实现完美复用的程序员犹如在沙漠... 阅读全文
posted @ 2012-09-24 08:47 Martin Stallman 阅读(390) 评论(0) 推荐(0)
代码膨胀
摘要:每一个开发人员在初学写程序的时候,都希望程序写的越长越好。这样他们看着那些常常的代码心里有很大的成就感。几乎每个人都是这样,包括我更是这样。刚开始写程序最大的成就就是看着那个黑框弹出来,上面显示需要的结果。除过这个之后就是那长长的代码行数。因为当初刚开始学习,也不可能写比较大的程序,所以为了使得代码行数更多,非常喜欢换行,写程序的时候能换行就换行,能用大括号就用大括号,因为大括号一般都单列一行。这么多年过去了,现在已近完全没有了这种想法,看着代码的行数增多,就非常的头疼。现在能用一行搞定的,坚决不用两行写。因为项目中最后代码都是非常的庞大,而工程项目中修改又是时时存在。庞大的代码导致修改... 阅读全文
posted @ 2012-09-21 17:09 Martin Stallman 阅读(2738) 评论(1) 推荐(0)
修改难度大
摘要:这又得提我强调的一句话了“软件是用来改的,而不是用来跑的”。软件工程项目不同于学生大作业的地方在于,学生的大作业写完之后,跑起来给老师看一把就完了。可是软件工程项目不同,让软件系统跑起来那才是噩梦的开始,而不是结束。为什么这么说呢?因为在软件跑起来的那一刻,注定了软件的运行已经不是重点了,而功能的扩容和实际运行中的bug才是接下来的重点。而在已经运行的庞大软件系统面前,这种任何一点点小的变动就足以让开发人员崩溃。这就是软件噩梦的第二个方面——修改难度大。所有的东西都是小而简的时候难度不大,复杂往往伴随着庞大而产生。软件的修改和变更是存在于整个软件生命周期的。在软件项目的开发初期,修改是存... 阅读全文
posted @ 2012-09-21 12:36 Martin Stallman 阅读(451) 评论(0) 推荐(0)
代码不可读
摘要:这是每一个一个软件维护人员遇到的第一个问题,也是最严重,最痛苦的问题。维护系统,你需要首先弄明白系统中代码的意思,可是当你看到有些代码的时候,你会由衷的对着苍天感叹一句“这代码是写给人看的吗?”,等各种感叹或者诅咒的话语。正因如此,才有一种说法是:评价代码写的好不好,就要看维护代码的人员所说的脏话多不多。为了方便修改,全文的权威地址请猛击http://blog.sina.com.cn/s/blog_4a2100f801013mko.html 阅读全文
posted @ 2012-09-21 08:44 Martin Stallman 阅读(520) 评论(1) 推荐(0)
用户分类
摘要:从软件技术的角度来分析,作为一个软件技术人员,那么实现的时候目的一直就是实现一个需求,而这个需求的它肯定有一个用户。在详细分析模式之前一定要先分析一下用户,因为用户在一定程度上表明了你做事的目的,需要做事的原因。在以后的模式分析和软件工程讨论中会多次使用一个称谓——“用户”,这个称谓是一个宽泛的称谓,在不同的场合有不同的指代。 为了方便修改,全文的权威地址请猛击http://blog.sina.com.cn/s/blog_4a2100f801013mko.html 阅读全文
posted @ 2012-09-20 12:23 Martin Stallman 阅读(377) 评论(0) 推荐(0)
软开心法五||工程师和技术员
摘要:软件工程是一个看似很无用,却是非常有用又让人很难理解其用处的领域。对于技术人员来说,虽然大多数都被称为工程师,其实他们离工程师还有很远的距离要走。我也常常被称为工程师,这种称呼让我很是惶恐。因为我总觉得我对不住工程师这个称号,只能算作一个技术人员而已。这让我想起了小时候爸爸单位的工程人员称呼,工程师和技术员。 我的原文系列唯一地址 http://blog.sina.com.cn/s/blog_4a2100f801013lo2.html 阅读全文
posted @ 2012-09-19 12:37 Martin Stallman 阅读(290) 评论(0) 推荐(0)
软件模式
摘要:模式一词最早由Christopher Alexander引入建筑学,后来才引入计算机科学领域。通过“GOF”的《设计模式》,使得我们在计算机行业对于模式一词有了了解。但是软件中的模式不仅仅只有设计模式,可以说,在所有的分支内都存在模式,正如业内给模式的定义一样,模式是对已有方法和过程的一种总结,它不是一种新的技术,而是已经存在的技术和方法。 完整文件的唯一地址http://blog.sina.com.cn/s/blog_4a2100f801013ky3.html 阅读全文
posted @ 2012-09-18 17:12 Martin Stallman 阅读(212) 评论(0) 推荐(0)
提高软件开发内功的推荐阅读列表
摘要:“我的任何表达都不会离开自己的技术背景,而文献列表在很大的程度上能表现出来写作的技术背景。所以我在声明之后首先将参考文献列示出来,因为有些表达或者思想我也不能明确来自哪本文献的哪个部分,但是坦白的说,这些文献确实影响了我,有些甚至深入了骨髓,以至于一些时候我所写的都不过是对文献原文转述或者类似表达而已。”查看原文请猛击http://blog.sina.com.cn/s/blog_4a2100f801013k2p.html 阅读全文
posted @ 2012-09-17 17:45 Martin Stallman 阅读(1015) 评论(0) 推荐(0)