现代软件工程系列 学生读后感 梦断代码

from:
http://ttcs.spaces.live.com/blog/cns!C3759CC6FCEEBDD7!121.entry?sa=147831050
November 10

梦断代码读后介绍

一,这本书讲了什么?
  软件是人们自以为最有把握,实则最难掌握的技术。作者罗森伯格对OSAF主持的Chandler项目进行长期调查,跟踪今年,
试图借由Chandler的开发过程揭示软件开发中的一些根本性大问题。
二,什么是"Chandler"?
  Chandler,一个开放源代码且跨平台的任务管理程序,最早的构思来自于2002年的Outlook-killer。
它是一个免费的组织工具,无论是什么格式或系统的电子邮件和日历任务,他都能进行处理并形成一个平稳的工作流程。
Chandler的别称为“Note-to-self Organizer”(自提示管理工具)。Chandler有很多的奇思妙想,而且为实现这些功能做了很大的努力。
chandler 1.0 下载链接: http://www.onlinedown.net/soft/69898.htm
chandler 1.0图片:Screenshot-Chandler
三,Chandler可以做什么?
 理想的Chandler是让任何一台电脑的使用者都能看到他所有的工作数据,如邮件,约会和个人清单 - 类似于一个大的任务管理容器。
换句话来说,它是专门为让工作完美完成而做的系统。而且用户不需要花费很长的时间来学习它。
四,Chandler开发过程:
 在最开始时,OSAF(开发组织的名称)预计在2003年底或者2004年初推出Chandler 1.0。而事实上,他们直到2005年11月份才准备发布Chandler 0.6版(本书只介绍到0.6版)。 
    a,项目构思于2001年和2002年之间,开始于2002年。
b,2003年2月20日,OSAF发布了Chandler第一个里程碑版本。其实“版本”一词并不确切:这只是个“内部版本”,供OSAF开发者所用,并不是为公众所用。
c,2003年4月21日,Chandler 0.1版,公开发布。24小时内,被下载了15000次。在经过漫长的杀bug后,同年6月,OSAF预计同年9月发布Chandler 0.2版。但是,由于资料库的问题,开发组陷入困境中,整个团队弥漫着沮丧的的氛围。开发组采用了时钟驱动的方法来管理。

    d,Chandler 0.2于2003年9月25日发布,距OSAF首次公开Chandler计划已经近一年。它的发布伴随着质疑。下载和使用了这个版本的少量用户惊奇地发现,它的功能比Chandler 0.1还要少。它就像是在一个垮塌后又部分重建的架子上遮了个盖子。
               小对话:1,开发者迈克尔.托伊在blog中竟然写到:“Chandler 0.2即将推出,不过我恳请你们别下载”。
                   2,舍伍德问道,“我们要开个0.2版庆祝派对吗?”
                     “也许开个守灵会吧?”托伊回答说。
                     “不如默哀片刻”卡普尔建议说。

 画外音:如果OSAF还坚持原来的每三个月发布一次新版本的时钟驱动进度计划、尽力在2003年12月底发布Chandler 0.3版,则0.3版绝不会比0.2版更让人满意。
    
e,2004年2月26日,OSAF发布了Chandler 0.3版。新版本包括了新的组件和更成熟的资料库,但基本上还是没法用。但OSAF内部的氛围却与发布0.2版时全然不同。程序觉得自己有了动力。
 画外音:好的程序架构有其内在的吸引力,能够使得开发者愿意继续工作。

      f,Chandler 0.4版于2004年10月26日发布,但一周内只有一千人下载。新版本在启动时看起来有点更像是真正的软件应用,如果你愿意深入挖掘的话,还能发现一些内建的新功能。下载量的下降不足为奇。世界,至少到目前为止,一直在进步。许多以前为Chandler发布高唱赞歌的外部人员抛弃了它,有些正式参与者认为它迷失了道路。但是OSAF内部第一次充满了宁静的感觉。
      一个现象:开发者卡普尔从项目开始就坚持要做诚实、现实的计划和进度安排。但项目在满足进度方面却拥有不佳的记录:平均6个月能发布一个版本,但计划却总假设应在3、4个月内完成一个版本。

       g,Chandler 0.5版于2005年3月30日发布。Chandler现在拥有150万行的代码。在同年4月的中旬,博苏特发现,每位开发者差不多还得花40个工作日才能修正完0.5版留下的缺陷。

       h,开发者准备于2005年9月发布Chandler 0.6版。但此时,他们已经迎来了几十位新同事,也送走了几乎同样数量的老伙伴。他们编写了数以万计的代码行,也面对了自初次构思以来快速变化的软件市场。
五,有趣的点子:
   a,《大教堂和菜市场》---开发软件的两种方式。
      1,大教堂方式:重要的的软件需要像建教堂一般,由独立的巫师或一对相互隔离的魔法师潜心打造,在面世之前绝不发布beta版本。
      2,菜市场方式:早发布、多发布、权委托、尽开放。看似一个乱哄哄的大集市,铺陈了各种日程和手法,要从中得到前后一致和稳定的系统,简直只能指望奇迹出现。可事实上,这种集市风格看来行之有效。
b,《奇客》---我们将要成为 * ?
       大约十年前,人们用“奇客”用来描述那些与计算机沟通易于与人类沟通的人。“奇客”的词源可以追溯到几个世纪之前。原义是“傻瓜”或“笨蛋”。20世纪90年代,当个人计算机踏上美国商业和文化的舞台的中心,那些需要联网或安装打印机但又不懂技术的人,只能寻求身边“计算机奇客”的帮助。早期版本将计算机奇客定义为“以(计算机)程序缺陷为食---不善社交、身有恶臭、面色苍白的偏执狂,具有奶酪刨丝器一般的人格特点。”稍新的版本则带有更多自尊的意味:“奇客,专注于己事的人;追求技术和梦想、不融入主流社会的人。”
 
    c,《软件工程》,用词的谬误!
        正在修建的跨海大桥或者摩天大楼,或许最能体现人们对工程这个词的认识。的却,这也代表了人类对建筑学和物理学的认识和掌握。但当我们谈起“软件工程”时,其实根本就不是那么回事。我们不可能像普通工程那样给一个软件的开发制定出详尽日程,更不可能精准地控制软件开发的进度。很多时候,大型软件的开发更像是一群人在做一件艺术品,而工程和这一点关系都没有。 
d,《软件工程师的抱怨》,一则有趣的笑话:
      软件工程师、硬件工程师、部门经理乘车去瑞士开会。行驶到一处陡峭山路时,刹车突然失灵。汽车不受控制,一路侧滑下去,飞越过路障,奇迹般地蹭着山石停了下来。乘客们有惊无险,不过面临一个问题:他们抛锚在半山上,汽车制动无效。该怎么办?
     “我知道该怎么办”部门经理说,“先开个会,提出愿景,形成任务书,定义一些目标,持续改进并找到严重问题的解决方案,这样就能上路了。”
     “不行,不行”硬件工程师说,“太花时间了...我带了把瑞士军刀,转眼间就可以拆下汽车的制动系统、分离故障并修好它,这样就能上路了。”
     “嗯”软件工程师说,“动手开干之前,我想应该把车推到山上,看看事故是否会重现。”
  
     如果问程序员报告缺陷,他的第一反应是问你,“重现问题了吗?”---意思是说,你能确定让问题再现一次吗?如果答案是肯定的,事情就成了一半。如果答案是否定的,程序员就会耸耸肩膀,将负责推给硬件故障或者宇宙射线。^_^
 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/500672.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

现代软件工程系列 学生读后感 梦断代码 DTSlob (1)

1As you see, I’ve marked this post Number 1. Let’s leave the last post on “Dreaming in code” Number 0 :) This time, I will focus on the issue of PEOPLE, partly based on Chapter 0 and 1 in that book.Why focus on PEOPLE? Think about our group, think abo…

mysql 索引 简书_MySQL 索引

索引用于快速查找具有特定列值的行。如果没有索引,MySQL必须从第一行开始,然后读取整个表以查找相关行。表越大,成本越高。如果表中有相关​​列的索引,MySQL可以快速确定要在数据文件中间寻找的位置,而无需查看所有数…

现代软件工程系列 学生读后感 梦断代码 DTSlob (2)

http://dtslob.spaces.live.com/?_c11_BlogPart_BlogPartblogview&_cBlogPart&partqsamonth%3d12%26ayear%3d2008Dreaming in code Blog Post 3 Dreaming in Code这书,读着读着就到了尾声,然后惊讶的发现关于后面章节的内容和我的想法&#xff…

java 管理系统登陆完毕后关闭窗口_【求助】登录窗口登录成功后隐藏窗口

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼代码如下:import java.awt.*;import java.awt.event.*;import java.sql.ResultSet;import java.sql.SQLException;import java.util.ArrayList;import javax.swing.*;import jdbc.Connect;public class login extends J…

python高级功能_python高级篇

1.切片功能:类似于java中的split方法。对list或者triple中几个值进行取出的过程。L [a,b,c,d] L[0:3] [a,b,c] #下标从0开始,取到第n-1个元素 L[-2:] [c,d] #倒序取值2.迭代(循环)功能:python中的可遍历对象只要是可迭代对象,例如list…

现代软件工程系列 学生读后感 梦断代码 SpringGreen

“拿来的代码所不能做到的部分,恰是项目与众不同的创新之处”。 《梦断代码》 终于看完了《梦段代码》。其实整本书就是讲图灵机的不可判定性————软件开发过程中,很多过程都不知道什么时候能不能结束,甚至说能不能做出来,这导…

qt 无法打开shell32_在Qt中用默认程序打开文件

用法: QProcess::execute("explorer 文件名");例: QProcess::execute("explorer c:\\123.txt");----------------------------------------------------------------------应该早有大虾发现了这个方法,只是我没搜到,于是有…

现代软件工程系列 学生读后感 梦断代码 布鲁克斯法则

《梦断代码》读后感(第1~6章) 书名:"Dreaming in Code",作者:Scott Rosenberg(中译本:《梦断代码》,翻译:韩磊,电子工业出版社出版)。第…

现代软件工程系列 学生的精彩文章 (6) 项目总结

http://lunarthu.spaces.live.com/?_c11_BlogPart_pagedirNext&_c11_BlogPart_handlecns!48EA3793D3DA17C8!211&_c11_BlogPart_BlogPartblogview&_cBlogPartJanuary 10学做一个PM By Cheng Lu 对于我们的SmartMe,我是真正倾注了感情的。看到今天SmartM…

sqlite查询空日期类型_SQLite比较日期

我有这个sql语句:SELECT Geburtsdatum FROM KundeWHERE Geburtsdatum BETWEEN 1993-01-01 AND 2000-01-01但我得到一些奇怪的结果,如:2.02.1990“Geburtsdatum”是DATE任何建议或解决方案?我的表格结构:CREATE TABLE Kunde (Kunde…

现代软件工程系列 学生读后感 梦断代码 软件难做

http://cid-064ec84e17924332.spaces.live.com/blog/cns!64EC84E17924332!173.entryDecember 06读《梦断代码》 读《梦断代码》的感想 《梦断代码》详细叙述了OSAF的Chandler项目从2001年开创以来直至2005年间的进展状况,真实展示了Chandler项目的艰难的开发过程&am…

现代软件工程系列 结对编程 (II) 电梯调度程序

[很多同学完成了上一个结对编程项目后, 很想知道下一个项目是什么, 我们这次要练习如何设计 接口, 测试框架, 和算法] 现代软件工程系列 结对编程 (II) 电梯调度程序 ------- Pair Project II Elevator Scheduler Design and implement an Elevator Scheduler to aim for …

java 中violate_Java中的Volatile关键字

Java的volatile关键字用于标记一个Java变量为“在主存中存储”。更确切的说,对volatile变量的读取会从计算机的主存中读取,而不是从CPU缓存中读取,对volatile变量的写入会写入到主存中,而不只是写入到CPU缓存。实际上,…

现代软件工程系列 创新靠学分

如何在学校里讲创新, 这是一个老问题。 但是天朝的教育体制总有办法,请看: http://news.163.com/10/1125/03/6MABIS4H00014AED.html 武汉一高校设"创新学分" 不搞创新不能毕业 去年秋季,武汉科技大学中南分校出台《学籍管理规定》,…

java 如何发提示_消息提醒-如何实现收到待办给QQ发送提醒?

一、前期准备一台windows服务器(用于运行QQ机器人)下载QQ机器人框架二、QQ机器人配置1、解压前面下载的机器人框架和httpapi2、打开解压后的 小栗子框架.exe3、在用户列表右击选择添加单个4、添加后右击点添加后的账号选择登录选中QQ5、点击应用中心>点击导入插件>选中前…

顶级程序员的心得 - Coders at Work

这篇博客经历了 CSDN 的历次改版后,格式已经坏了, 我重新写了一篇,重排了格式: 顶级程序员的心得 –– Coders at Work_SoftwareTeacher的专栏-CSDN博客顶级程序员的心得 –– Coders at Work我2009年读了 “Coders at Work”, …

jdbc mysql myeclipse_关于JDBC连接MySQL的问题,我一直解决不了(Myeclipse 环境下)

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼package org.mlj.jdbc;import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;import java.sql.Statement;import java.net.UnknownHostException;import java.net.InetAddress.*; public class…

现代软件工程课件 需求分析 如何提出靠谱的项目建议 NABCD

《构建之法 - 现代软件工程》课件 互联网时代对于创新者来说, 既是一个伟大的时代, 又是一个糟糕的时代。 你有很多机会做出影响世界的产品, 但是, 似乎任何想法都被别人想到过了, 做出来了, 上市了, 移植到各种平台上去了… 那么我们后来人除了羡慕别人生得早, 还有什么机…

java禁止数据库写入事务_Java -- JDBC 事务处理, 事务的隔离级别 脏读 不可重复读 等......

1. 事务指逻辑上的一组操作,组成这组操作的各个单元,要不全部成功,要不全部不成功。数据库开启事务命令•start transaction开启事务•Rollback回滚事务•Commit提交事务JDBC控制事务语句•Connection.setAutoCommit(false); //start transa…

现代软件工程 教学计划 适应两种难度和重点

现代软件工程 教学计划 经过 2007 - 2018 年,30个不同学校的实践后, 《构建之法》在大学的两种教法已经出现了, 这两种教学计划适应于两种难度和重点。 下面我们具体介绍这两种计划。 1. 软件工程导论(适合大一下的学生,在学过…