我与项目的化学反应 ——读《程序员修炼之道》有感

正如书中所说,我曾经产生过自己的项目会失败的感觉,因为自己很迷茫不知道自己该如何去完成自己的团队项目,那种迷茫感在一开始的时候一直围绕着我,直到组长开始逐步把项目分块,一步步细分后,并且要求每个人需要做什么的时候,我心中的那块阴霾瞬间消失了,今天在书中巧合的遇到了自己的情况,于是自己十分好奇的想看看自己到底发生了什么?

“完美,不是在没有什么需要添加,而是在没有什么需要去掉时达到的”,这句话说得很直白,意思让我很是赞同,但也惹人深思,一样东西排放在你的面前时,你可以说出这样就可以不需要什么的时候,它自然是不完美的,因为在潜意识里对于已有的并不太满意,但如果你很满意,一切都是那么的贴切,不多不少,不需要把删掉的时候,你潜意识里已经将已有东西视作了完美的东西,自然世上没有完美的东西,都是用户的心理感觉,因为用户的满意便是我们最大的完美。一个项目开始,就需要进行“需求”的搜集,意思就是需求就在那里,我们需要去找到它们,但是需求很少存在表面上,通常,它们深深地埋藏在层层假定、误解和政治手段的下面,这就好比你询问你身边的人你现在需要什么的时候,大多数人会回答他在做事情的需求,而真正有用的却无法看到。所以需要我们的挖掘,作者总结了什么是需求,就是对需要完成的某件事情的陈述,例如只有指定人员才能查看员工档案,这个究竟是不是需求,比如是“只有员工的上级和人事部门才可以查看员工的档案”才是需求,还是“只有得到授权的用户可以访问员工档案”是需求,这两种有一丝不同的陈述带来的是巨大不同的影响,这决定了一个开发者的设计与实现。所以我们需要找出用户为何要做特定事情的原因,而不是他们目前做这种事情的方式。这个我就想到了支付宝,他们找到了掏钱的原因,而不是掏钱的动作,掏钱的原因自然是消费,所以支付宝实现了消费的时候可以直接用手机支付,如果他们找到的是用户掏钱的动作,那么支付宝可能就不会存在,现在恐怕人们上街的时候还要带着大量的现金。同样理解用户就需要与用户一同工作,像用户一样思考。作为职业人员,需要建立需求文档,把需求写下来,并发布每个人都可以用作讨论基础的文档,由于听众的范围相当广泛,所以要注重什么样程度才是合适的,不能太过具体,需要保持抽象,在涉及需求的地方,最简单的能够准确地反映商业需要的陈述是最好的。有一句话作者总结的很精辟:需求不是架构,需求不是设计,也不是用户界面,需求是需要。

很多项目的失败都归咎于项目范围的增大,也称为特性膨胀。我身边就有这个事情,软工的第一次方向确定的时候有一组同学不仅想做出上学期有的组的的软件,并且优化合并,即综合于一体,开始的时候感觉这个项目很有前途,但是冷静一想,时间与人手方面并不充裕,实现一个这么范围大的项目,最后会不会变成一个四不像。这个问题同样出现在了我们的身上,在游戏的制作中突然想到我们要不要加上一个即时聊天的模块,想法是很好,但是今天看到了这个问题,自己一想确实,我们的目标是做游戏,首要的工作是把游戏做出来,像聊天系统到最后有时间在开始,成为锦上添花,而不是成为影响进度的绊脚石。

一开始的时候便会有一些特定含义的术语,所以在系统中应该注意不能够随意使用,也就是我们需要创建并维护项目词汇表,避免到时候两个人用了不同的词却表达一个意思,然后出现分歧的错误,用同一名称指称不同事物,这样的项目很难取得成功。

“解不开的结”一个从小便听过的故事,出现的时候难免会有一丝怀念,当时的自己是多么憧憬成为亚历山大一般的人,如今我同样需要他的教导,学会在项目工程设计中解决那些看起来非常困难的“谜题”。原本自己以为“当局者迷,旁观者清”,但作者却说需要盒子外和内一起,才能解开谜题,其关键在于确定加给的各种约束,并确定自己确实拥有的自由度,因为在其中将找到解决方案,这也是有些谜题为何有效的原因,最终需要的是我们找到“盒子”,即确定约束。这个让我想到了第一次的个人作业,起初的时候是完全不知道如何下手,但在细细的读老师的要求,脑海中慢慢的产生了哈希表的方法,有一个约束的条件是真的可以提高思考的效率。

每个人都害怕空白的纸页,我也是如此。作为一个开发者,在整个职业生涯中都在做同样的事情,一直在实验各种东西,看哪些是可行,哪些不可行,期间一直在积累经验与智慧,所以面对空白时,一个有效的方法是开始构建原型,如果出错了,可以及时掉头,如果对了就可以继续进行,这样可以避免开头时的的不知所措,也能为团队节省可观的时间。在真正的工作的时候要避免成为形式方法的奴隶,而是作为形式开发方法的一种工具,这个由于自己对于开发经验的欠缺,对此没有一些很明确的体会,不过我记住了,作为一个注重实效的程序员要批判地看待方法学,并从各种方法学中提取精华,融合成每个月都在变得更好的一套工作习惯。

不仅在个人项目还是团队工作的日子里,我学到了很多,结合了书里理论部分,我逐渐明白了软件开发中身处于一个团队里或者自身需要注意每一个要点,自己仿佛看到了注重实效在向我招手,但也看到了我们之间的距离与路上的坎坷。

原文地址:https://www.cnblogs.com/Whydd/p/8722020.html

时间: 2024-08-30 03:20:52

我与项目的化学反应 ——读《程序员修炼之道》有感的相关文章

程序员修炼之道第一章读后感

首先我读了序言,明白了这本书可能现在还是读不懂,但是书中的有些知识可能会帮助我以后开发软件少走点弯路, 所以,可能我现在还不太懂,但是我一定会好好阅读,尽量多理解书中的一些经验和内容,这是我对自己读这本书的要求. 求. 接着我读了第一章的内容,虽然第一章篇幅不多,但整体读下来还是收获很多的.在第一章的一开始,就教会了我做一 个做一个程序员的原则,那就是诚实和负责任.如果你做错了某些事,承认它,并给出补救的选择,不要把责任推卸给别人. 更不要找各种各样的借口.不要说事情做不到,而要说能够做什么来挽

程序员修炼之道:从小工到专家

下载地址:网盘下载 内容简介  · · · · · · <程序员修炼之道:从小工到专家>内容简介:<程序员修炼之道>由一系列独立的部分组成,涵盖的主题从个人责任.职业发展,知道用于使代码保持灵活.并且易于改编和复用的各种架构技术,利用许多富有娱乐性的奇闻轶事.有思想性的例子及有趣的类比,全面阐释了软件开发的许多不同方面的最佳实践和重大陷阱.无论你是初学者,是有经验的程序员,还是软件项目经理,<程序员修炼之道:从小工到专家>都适合你阅读. 作者简介  · · · · · 

读《程序员修炼之道(节选)》有感

同学推荐了本书--<程序员修炼之道>,在整个寒假闲来无事时,我就会翻一翻这本书,看了这么长时间,我也想写点自己的感想. 这本书很有一些特色,比如,本书一共分为64个小节,且每个小节各不相关,所以我决定随机挑选小节来读,这张随笔我想谈谈我对GUI和shell的(个人)感想. 在学习软件工程前,我一度以为全天下的操作系统都是Windows这样的(笑),是的,当时我还不知道这叫做GUI(Graphical User Interface)界面,即图形用户界面.上了大学后,我才渐渐知道,除了GUI界面,

《程序员修炼之道》笔记(一)

这几天开始看<程序员修炼之道>,也许不少人看了书的标题,第一时间会觉得这是鸡汤一类的书.但至少以我自己的感受来看,这是很棒的书,现代人文主义不是提倡自我意识嘛,自己感觉好的就是好的.况且人家也是经过了时间和口碑的双重考验的,真心值得好好阅读. 作者在再版的序中写道: 写完<程序员修炼之道>至今已有十年.在这十年中,软件产业发生了翻天覆地的变化.--从表面上看,软件世界似乎陷入了疯狂的状态.但如果你深入繁杂表象的背后,会发现变化其实并不大.1999年的那些通用开发原则,在2009年同

程序员修炼之道_从小工到专家_读书分享

最近央视给我们连续分享了<大国工匠>,很是羡慕,嫉妒,恨.要知道我们程序员也是一名工匠,哈哈.最近用两天多的时间读了一本和工匠有关的书籍<程序员修炼之道-从小工到专家>这本书,现在分享给大家,因本人能力有限,拙劣之处请包涵. 从这本书的名字说起,这本书现在的名字体现不出来书中的主题内容,书的原名为<The Pragmatic Programmer>翻译为<注重实效的程序员>,看到这个题目想必大家对书的主题有个大概印象.这本书在编码问题,软件架构和设计,项目管

Java程序员修炼之道 之 Logging(1/3) - Logback 配置

写在前面的话: 作为<Java程序员修炼之道>博文的第一个主题Logging,我计划中按照如下三篇来写: Logback的简单介绍和配置 在Java代码中如何使用SLF4J来写日志以及写日志的要点 作为一个程序员,在日常工作中如何分析和挖掘Log. PS:默认生成的目录不对,仔细检查过了,我的h1,h2,h3,h4用的都没错. 1. 缘起 写代码中的日志是一个除了用代码实现功能之外最基础最基础的一个技能了,是一个必须掌握的技能.但是目前为止,关于如何日志的文章和书籍还是不多. 1.1 写日志的

程序员修炼之道阅读笔记02

在<程序员修炼之道>这本书里,我也了解到了不一样的知识.对于前面一部分的阅读让我受益匪浅,也加深了我继续阅读下去的渴望.然而在对注重实效的途径这部分内容阅读的时候,我也发现很多东西令我把握不了,它出现了非常多的术语,这对于我这样的菜鸟来说,无意识非常致命的.所以我只能对这部分的内容加以了解,而不能完全理解与消化.下面就是我对所读部分的内容(注重实效的途径)做出的简单总结. 1.不要重复你自己. don't repeat yourself; 系统中的每一项知识都必须具有单一.无歧义.权威的表示:

Java程序员修炼之道 之 Logging(1/3) - Logback 配置(转)

转自紫风乱写:http://www.blogjava.net/justfly/archive/2014/08/10/416768.html,建议大家去原处学习 写在前面的话: 作为<Java程序员修炼之道>博文的第一个主题Logging,我计划中按照如下三篇来写: Logback的简单介绍和配置 在Java代码中如何使用SLF4J来写日志以及写日志的要点 作为一个程序员,在日常工作中如何分析和挖掘Log. 1. 缘起 写代码中的日志是一个除了用代码实现功能之外最基础最基础的一个技能了,是一个必

《程序员修炼之道》读书笔记②

概述 花了几天时间看完了程序员修炼之道,有很多感悟,记录于此,供自己开发时参考,相信对其他人也有用. 值得一提的是,这本书写的非常好,很多大牛在走了很多弯路之后再读这本书都很感慨没有早些读. <程序员修炼之道>读书笔记① 弯曲,或折断 解耦与得墨忒耳法则 1.函数的得墨忒耳法则规定,某个对象的任何方法都应该只调用属于以下情形的方法:它自身:传入该方法的任何参数:它创建的任何对象:任何直接持有的组件对象. 2.委托服从得墨忒耳法则,从而减少了耦合. 元程序设计 1.元数据是关于数据的数据:要用元

《程序员修炼之道》读书笔记①

概述 花了几天时间看完了程序员修炼之道,有很多感悟,记录于此,供自己开发时参考,相信对其他人也有用. 值得一提的是,这本书写的非常好,很多大牛在走了很多弯路之后再读这本书都很感慨没有早些读. 注重实效的哲学 我的源码让猫给吃了 1.为你的行为负责是注重实效的哲学的一块基石. 2.除了尽你所能之外,你必须分析风险是否超出了你的控制.对于不可能做到的事情或是风险太大的事情,你有权不去为之负责. 3.要提供各种选择,而不是找借口:不要说事情做不到,要说明能够做什么来挽回局面. 软件的熵 1.熵指的是某