设为首页收藏本站

悦读人生

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1869|回复: 5
打印 上一主题 下一主题

软件随想录 - 书评

[复制链接]

该用户从未签到

跳转到指定楼层
楼主
发表于 2013-6-3 22:16:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  《软件随想录:程序员部落酋长Joel谈软件》是一部关于软件技术、人才、创业和企业管理的随想文集,作者以诙谐幽默的笔触将自己在软件行业的亲身感悟娓娓道来,观点新颖独特,内容简洁实用。全书分为 36讲,每一讲 ...

此主题为自动生成的书评内容贴,书籍链接地址: http://www.dothinkings.com/forum.php?mod=viewthread&tid=18441

书评内容会自动聚合在本帖中
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖

该用户从未签到

沙发
发表于 2013-8-8 01:05:50 | 只看该作者
  最早在<Joel on software> 中看到Joel提到使用Evidence Based Scheduling (EBS) 中的单个的时间估算方式:蒙特卡罗时间估算方式,估算方法的细节要求如下:
  1.将任务细分的小时级的工作量。
  最大的任务不超过16个小时.这一步让你认真考虑将要完成的工作。细分之后的任务比如像分析一个文件通常是做过的任务。完成这些任务的时间因而比较容易估算
  2.记录完成工作的时间。
  注意,任务的实际完成时间是包含任务开始到结束的物理工作时间,包含了会议等没有实现计划的时间。因此,完成时间是真实的时间并且反映了意外事件的影响。
  
  3.对真实完成时间的模拟:
  你不要将估算值相加得到未来的完成日期。 这种做法看起来简单但是会给出很错误的结果。你应该用Monte Carlo法来模拟,即:对每一项任务,将其估算时间除以一个随机选择的历史工作速度值,达到的结果为蒙特卡罗法估算出的时间。
  
  pope对这个时间估算方式一直很有兴趣,也不知道准确性到底如何,对自己工作改进的帮助是不是会有不小进步,所以就自己动手写了以上3步骤的过程,用python完成的,默认写的是存储本地文件,历史选取默认使用了1000条,现在已经这个步骤本身的内容已经基本完工,代码可以在https://code.google.com/p/montecarlo-time-test/可以看到,有个小问题,code提交时放到http://montecarlo-time-test.googlecode.com/svn/wiki中了 checkout 注意一下路径吧,欢迎试用,由于是自己在写,没有系统测试过,有问题欢迎mail我。
  使用说明
  1.开发本地的python是2.6.5版本,3.0没有测试过,不太清楚是否支持。
  2.源码中两个版本,推荐使用UseDate.py,直接运行就可以,命令行提示:
  “'存储TT请输入1,退出为0,T_P未存储处理2,否则为估算蒙式时间:”
  其中非2,1,0的输入为默认估算,估算后,给出估算结果,例如:
  ——————————————————
  存储TT请输入1,退出为0,T_P未存储处理2,否则为估算蒙式时间:3
  你的估算时间:1000
  估算条目:313,取值内容:'1.51739619196'
  sTT=659.02366520922499
  id=1045
  -----------------------------------
  其中sTT为估算值,id为输入真实值使用的索引号,在记录自己的真实使用时间时要使用,注意记录啊![next:这个在想,next改进可能用别的更好的方式代替,但现在还没有想到,先忍忍吧]
  
  如果输入1,为记录真实的使用时间,给出此记录全部内容,例如:
  ------------------------------------
  存储TT请输入1,退出为0,T_P未存储处理2,否则为估算蒙式时间:1
  id为:1045
  TT为:1000
  
  1045        1000.0        659.023665209        2013-06-06 11:55:14        1000.0        2013-06-06 11:59:01
  
  1045        1000.0        659.023665209        2013-06-06 11:55:14        1000.0        2013-06-06 11:59:01        1.51739619196
  ------------------------------------
  其中TT和id都是你要输入的值,id是之前输入估算时间时给你的id,而TT就是这个内容你真实使用的时间。
  ##########################################分割线#############################
  当前应用选用python主要是近来一直看<Dive into python> 再尝试python和unittest所以顺手选择的。
  最后代码为GNU GPL 协议的遵守,如果你有修改,欢迎mail我
  thank you for reading
  

该用户从未签到

板凳
发表于 2013-8-9 11:25:08 | 只看该作者
  书中序言说本书是“公认为有史以来第一本‘网志书’(blook)”,这也是我读的第一本这种类型的书,可能是我对网志书的风格并不是很适应,读起来总感觉浮于表面,不够深入。不过书中对某个具体问题提出的一些具体办法,还是让我觉得颇有所得的,而且也了解到有这么一个出名的技术博客网站,也是一大收获了。

该用户从未签到

地板
发表于 2013-8-17 15:44:14 | 只看该作者
  Joker Lee同学推荐的一本书~周末在家读完了这本书,感觉非常好。作者通过一个个的故事,将自己多年软件开发总结出来的经验和教训传达给读者。文中有很多经常的章节,比如《火星人的耳机》,非常生动的将浏览器的发展历史、现在面临的问题讲述给读者。比如《循证式日程规划》建议软件开发者,用循证式的方法讲自己的开发时间统计出来,从而对以后的项目开发能做出准确的时间预测。另外《让错误的代码显而易见》用xss漏洞的例子,讲述了一些好的代码风格。
  总的来说,本说篇幅不长,没有条多的信条式的建议,大多数是一些作者自己的亲身经历过的故事。这些事情我们可能不会再遇到,但是读这本书获得的启发在我们未来的软件开发的路上肯定能给我们不少帮助。

该用户从未签到

5#
发表于 2013-8-18 01:03:58 | 只看该作者
  有这么几点触动到我的章节,记录于此:
  
  1.        P34. 三种管理方法:军事化管理法、经济利益驱动法、认同法。不用说肯定是认同发更会让员工发自肺腑的全力以赴工作,因为在工作中他们能够有存在感,有一种自我价值的体会。但是前两种是目前更多采用的方法,因为更直接,也更符合现实。三种掺杂,应该可以在可实现的范围内达到比较好的程度。毕竟我最热血的时候是经历第三种的时候。
  2.        P100. 别给用户太多选择。Joel讲了一个 windows vista 关机按钮的例子,我看完有感触就在读书笔记记了一笔。其实用户体验、交互设计方面的原则太多,很多又太虚,这个完全不容易像某个写代码方式一样很容易说服别人,因为这个是纯用数据拼出来的推测。无论怎么设计,好用就是牛逼,结果好就是牛逼。
  3.        P157。日程规划估计时间每一单项不要超过16小时。具体16小时这个数我不知道是怎么算出来的,但是体会到确实是如果预估计一个项目需要的耗时,想几分钟就说“一个月”这样肯定是不行的,实际结果出来后会和计划差很远,差很远的计划就相当于是没做计划。真的要拿到需求文档出了技术文档(或者已经想过了一遍每一个关键点的大致实现)才有可能估计出靠谱的时间。可能很多牛逼的程序员脱口而出一个数多数都是根据经验以前相似规模的项目出来的。
  4.        P171。“注意摩尔定律,当硬件飞速发展的时候,需要权衡软件优化的代价是否值得,还是更应该专注开发新产品,坐等硬件将现有软件支持的更加流畅。”看了fb.html5isready.com 了吧,sencha网页版实现的仿facebook native应用效果.iOS我没看,但是samsung galaxy 搭载 4.2.1 运行起来这个demo是完全没问题,真牛逼,体验上完全够用了。
  5.        P192。匈牙利命名。我忘了当时从尼玛哪里看到了说int 类型变量可以写成iXXX,字符串类型变量可以写成sXXX,干,真粗糙。
  6.        P252.如何挑选发布日期。1)确定个发布日期,可以根据客观情况也可以根据主观选定;2)列出要实现的功能,然后按照优先级排序;3)当进度落后于预定进程的时候砍掉最后面的功能。
  7.        P256.在2.0版本之前避免大规模宣传,1.0版本是试水。这样2.0版本会每个人留下一个美好印象。
  8.        P276.如何定价软件让我想起了大学上的微观经济学,当时上课应该再认真点。
  9.        P282.服务器出了问题应该问五个为什么,因为不可能规避所有导致问题的漏洞,但是可以有一个解决问题的流程,这样使得产品在一直变好。其中提到的用户可以查看公开网志来查看故障原因以及公司是怎么解决这些故障的真是个好点子,真诚。
  10.        P288.确定事情的优先级。如果你的办公桌过于整洁,可能你的工作效率不十分高。因为你把精力分散到那些重要的事情之外了(写代码才最重要啊亲!!)
  

该用户从未签到

6#
发表于 2013-8-19 04:18:42 | 只看该作者
  如果每个管理者都能借鉴作者的想法,那程序员就会幸福很多,如果每个程序员都能借鉴书中的想法,那么这行会少很多蹩脚的程序员。相信每个做it或着即将做it的人都会有从书中得到启示。他在书中不仅谈到了如何做好企业家,创业者,如何做好管理者,如何做好程序员甚至还谈到在学生时代我们就应该锻炼的技能。

网站地图|小黑屋|Archiver|DoThinkings 悦书籍,思人生   

GMT+8, 2024-12-27 20:44 , Processed in 0.047030 second(s), 22 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表