Lost in CatB :http://www.ituring.com.cn/article/9363

  看了Lost in CatB.深有所感。软件的数量在上升,软件的质量在下降。对于软件包的依赖性在增多但软件的复用性在降低。

  首先我们可以看看我们身边发生的例子。我们组要做爬虫,我们的首先任务是下载现有的爬虫。不下不知道,一下吓一跳。现有的爬虫过于复杂,光引用的包就达到十几个。而对面宿舍他们组是在一个已完成的项目上改编代码。他们得到了那个项目的源码。但是他们跟我们说他们的代码要从头开始重新做。原因是原先的代码限制性太多,可扩展性太差,而要扩展需要在重新构建的底层的数据结构。也就是说从改编变成了重做。光我身边的例子就大致如此了,跟不要说集市上的程序了。

  那么为什么会产生上述原因呢?我将以我仅有不多的经验来浅谈一下产生的原因和引发的思索。

  一、包为什么那么多?不同人有不同的需求,如果现有的某一个包无法达到需求,还要引用其他的包。而且很多包的功能过于单一,一个包远远不能满足当今复杂的需求与更复杂的编码。

  再加上包的作者各不相同,实现的方式和理念也大相径庭,所以又会发现包与包不能互通,没准还要引入一个第三方包,把上述两个包通过第三包统一接口,所以导致包的引用错综复杂。那么该怎么办呢?这时候我觉得集市式的开发无法满足这一点,只有教堂式的开发才能弥补。比如apache公司的包质量很高,虽然包也很多,但是井然有序,由于是一个公司开发的,也不存在接口问题,可谓典范。

  二 、为什么复用性这么差?对于收费的软件来说,即使给你一定的代码,也是经过加密的,想要复制粘贴绝没那么容易。对于开源的软件来说,一是开发者不够专业,过于专注敏捷开发,而忽略文档和架构的重要性(这也是我们的通病),往往架构逻辑上会出现一定问题,开发文档也很难提供给其他开发人员。二是开发者投入的时间如果不够充足,很难考虑拓展性的问题和版本维护的问题,自然复用性差。

 

  至于关于彼得定律影响软件开发的说法我并不能完全苟同。彼得定律在一个等级制度中,每个职工趋向于上升到他所不能胜任的地位”。彼得指出,每一个职工由于在原有职位上工作成绩表现好(胜任),就将被提升到更高一级职位;其后,如果继续胜任则将进一步被提升,直至到达他所不能胜任的职位。由此导出的彼得推论是,“每一个职位最终都将被一个不能胜任其工作的职工所占据。

  可以说每个人都有一个向往的却不能胜任的地位。即使他最后上升到了他所不能胜任的这个地位。起码它能够胜任比这个地位低一个层次的地位。也就是他作为一个曾经的成功者来挑战一个他还未能战胜的敌人。这种挑战早晚一天肯定会失败(因为总有一个他不能胜任的地位),从而导致公司或相关机构利益受损。这种失败似乎无法避免,但是对于软件开发来说,这不能称之为失败。地位大于能力的失败终会催生一个与此地位相符的人,从而使不能胜任的地位的层次被逐次推高,也就是技术的发展不断前进。

转载于:https://www.cnblogs.com/dongl/archive/2012/11/13/2767341.html

阅读作业二-----读Lost in CatB有感 by 李栋相关推荐

  1. 阅读作业二:团队项目与测试工作

    跟其他小组的情况一样,我们的团队项目爬虫到目前为止已经有了一个初步的开发,下周一应该可以有一个小的展示了. 我在团队项目中被安排做测试部分.上周和这周的课老师讲的是测试部分需要做哪些工作,有哪些需要注 ...

  2. 阅读作业二之The Cathedral and the Bazaar和A Generation Lost in the Bazaar——洪虹

    . <The Cathedral and the Bazaar>一书,是作者埃里克·斯蒂芬·雷蒙(Eric Steven Raymond)所撰写的软件工程方法论.以Linux的核心开发过程 ...

  3. 阅读作业二之waterfall——洪虹

    所谓瀑布模型是将软件生存周期的各项活动规定为按固定顺序而连接的若干阶段工作,形如瀑布流水,最终得到软件产品. 1970年温斯顿·罗伊斯(Winston Royce)提出了著名的"瀑布模型&q ...

  4. 【渝粤题库】陕西师范大学201661英语阅读(二)作业(高起专)

    陕西师范大学 内 部 题 库 教育 (yuyueshool) 编制 <阅读(二)>作业 I.Words DIRECTIONS: Read the sentence given with e ...

  5. 动物电子耳标阅读器|识读器|读卡器L8600系列Modbus RTU通讯协议与二次开发说明

    动物电子耳标阅读器|识读器|读卡器L8600系列Modbus RTU通讯协议与二次开发说明适用于L8600-S-02.L8600-R-02,更多MODBUS TCP协议资料欢迎交流! 出厂默认配置: ...

  6. 计算机体系结构在线读,18春北交《计算机体系结构》在线作业二-3

    18春北交<计算机体系结构>在线作业二-3 (7页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 4.90 积分 18 春北交<计算机体系 ...

  7. [转载]高一语文必修一寒假作业二

    [转载]高一语文必修一寒假作业二 2012年01月15日 高一语文必修一寒假作业二 一.(每小题3分,共15分) 1.下列加黑字读音全部正确的一项是() A.岑(cén)寂 勾(gōu)当 蕴藉(jí ...

  8. [Week17] 个人阅读作业

    个人阅读作业Week17 reading buaa software 解决的问题 这是提出问题的博客链接:http://www.cnblogs.com/SivilTaram/p/4830893.htm ...

  9. [2019BUAA软件工程]第1次阅读作业

    [2019BUAA软件工程]第1次阅读作业 Tips Link 作业连接 [2019BUAA软件工程]第1次阅读作业 读<构建之法>的疑惑 个人开发流程(Personal Software ...

最新文章

  1. win7只能管理计算机软件吗,win7可以管理多少内存,win7内存优化软件
  2. 死磕Java并发:Java内存模型之happens-before
  3. 空间刚架matlab_Matlab绘制空间几何图
  4. vba quit此文件正由另一个应用程序或用户使用_VBA|如何添加外部对象库(或控件)引用来扩展VBA功能...
  5. Reading Digits(2016southeastern Europe. D题)题解
  6. 如何撰写专利说明书摘要?
  7. 计算机四级-数据库工程师(数据库原理部分)
  8. 超声波测距 c语言程序流程图,超声波模块测距51程序_单片机超声波测距c语言
  9. magento 为用户注册增加一个字段
  10. 懒懒的Rain的寒假小结
  11. 小白求答疑,在vs连接数据库的一段配置代码有问题
  12. PAT乙级-1051复数乘法(保留两位数-四舍五入)
  13. Flink DataStream Split 实现分流
  14. 如何优雅地使用Sublime Text
  15. 通过CMA、CNAS双认证的第三方软件测试机构安利
  16. ACM—最短路—8月14日
  17. heic格式怎么转换?其实转换很简单
  18. Android自定义View-模仿QQ的拖拽气泡
  19. Python爬虫实验 2023.5.16
  20. 全球与中国PMP微波回传系统市场深度研究分析报告

热门文章

  1. mybatis oracle生成注释,MyBatis Generator生成Oracle数据库对应实体类时无法获取注释问题...
  2. 原生js循环展示dom_为什么说JS的DOM操作很耗性能
  3. html 正方形代码,SVG rect
  4. 反编译Android将状态栏高度,反编译SystemUI.apk 实现状态栏时间居中
  5. android 读取俄文csv乱码,android导出CSV,中文乱码问题
  6. python3 安装opencv_树莓派安装Python3的OpenCV
  7. Ubuntu下 Tomcat + JSF + Ant + eclipse 开发环境搭建
  8. android 应用创建桌面快捷方式
  9. Ext.form.DateField简单用法及日期范围控制
  10. 线程库 c语言实现,130行C语言实现个用户态线程库——后续(一)