摘要: 这个话题比较有意思,起源是前两天和一个身在外企的程序员的闲聊。当时聊到最近在忙的工作,我随口说最近响应部门的要求,天天在办公室除了做需求分析之外,其余的主要工作就是修改代码中存在的静态检查问题,而且被折磨了好几天。这兄弟一听这个就激动了,他讲修改静态检查这件事情是反人类的,为了这个事情还和领导吵了一架。反不反人类嘛,我不清楚,也没有和项目组的兄弟讨论过;但是和领导吵架,我确实比较羡慕,我所在的公司和部门可没有这样放松的氛围,和领导因为这么点事情吵架,实在是犯不上,我现在可是上有老、下有小的时候,在办公室里讲话可得注意点,小心为上。 先说明一下什么是静态检查问题,免得不了解的兄弟不明所以。所.. 阅读全文
posted @ 2013-05-08 17:08 杜昊东 阅读(303) 评论(0) 推荐(0) 编辑
摘要: 1. 拷贝型拷贝型选手就是传说中的“代码拷贝员”了,他们对实现功能几乎没有思路,所作的事情就是从网上或是之前其他团队成员写的代码中拷贝出片段,然后放到项目中,如果运行项目出现了期望结果,则表示任务完成。这类人只会改代码,却不会写代码。他们大多对编程毫无兴趣,只是希望以此糊口而已。2. 新手型当产品有功能需求时,由于经验有限,程序员并不完全知道要如何实现这个功能,需要通过学习、寻找资料等方式来解决问题。这种情况下的编码过程,程序员的主要目标是“完成功能”,那么很难有多余的心思去考虑边界条件、性能、可读性、可扩展性、编码规范等问题,因此代码bug可能较多,稳定性不高,常常会发生开发花费1个月,改b 阅读全文
posted @ 2013-05-08 17:01 杜昊东 阅读(469) 评论(0) 推荐(0) 编辑
摘要: 在软件这个行业里有些规则是很有杀伤力的,比如很有名的摩尔定律。总结出这些规则的意义在于可以大致的照明方向,免得努力来努力去却走到了阴沟里。现实中种种利益纷争、观点之争看似纷繁,但在大时间尺度下来看却都是规则的实现手段。这就好比下围棋,每一手都要为谋得利益而计算,但结局却只有三种:赢、输或和,这就是规则的力量。民以食为天,所以第一定律从收入开始。程序员第一定律可以表述为:程序员的收入是技能复杂度和技能实现可能程度的函数。如果程序员的工资是S,社会平均水平的工资为A,程序员掌握的技能复杂度为C,实现程度为P。那么S=AxCxP。这里面的实现程度P不太好理解,额外做点说明。好比说有人在东北种了很多白 阅读全文
posted @ 2013-05-08 16:58 杜昊东 阅读(494) 评论(0) 推荐(0) 编辑
摘要: 1、程序员喜欢被称作码农,她们认为这样的称呼更接地气,但自我介绍一般都会说自己是工程师。2、码农要写代码、改BUG,即没时间出轨也没时间陪老婆。3、码农都有良好的职业素养,只要你苦恼地撑着头说:这个我不会,可不可以拜托你实现呢……旁边的码农就会千方百计的完成它。4、码农的智商优越感不可侵犯,觉得桌游都弱爆了,恨不得自己设计一个0BUG的专属游戏。5、码农一定舍得花1000元给自己买一个高档机械键盘,但码农的价值观是“要好好编程,比代码不比吃穿”,所以未必舍得花50元给自己买一件干净的衬衫。6、码农一定舍得花2000元给电脑配一个教牛逼的CPU,但码农的价值观是“怎么能让自己吃亏呢?!”,所以会 阅读全文
posted @ 2013-05-08 16:08 杜昊东 阅读(1652) 评论(26) 推荐(9) 编辑
摘要: 在设计ExtJS应用程序时最常做的事情就是注册事件处理程序,因为在ExtJS的世界里,几乎完全由时间组成。因此,ExtJS的设计者使注册事件变得非常容易(同时还提供了非常不容易的方式任你选择)——on/un,也就是上与下两种方式,或是addListener与removeListener,Element的所有子类都可以使用。例如有一个<div/>希望在用户按下时能够给予简单的反馈: <divid="happyDiv"class="happyStyle"/>如何替这个<div/>注册鼠标单击事件呢?首先必须取得这个div的 阅读全文
posted @ 2013-05-07 10:27 杜昊东 阅读(369) 评论(0) 推荐(0) 编辑
摘要: 1)简要说明 with 语句可以方便地用来引用某个特定对象中已有的属性,但是不能用来给对象添加属性。要给对象创建新的属性,必须明确地引用该对象。2)语法格式with(object instance) { //代码块 }有时候,我在一个程序代码中,多次需要使用某对象的属性或方法,照以前的写法,都是通过:对象.属性或者对象.方法这样的方式来分别获得该对象的属性和方法,着实有点麻烦,学习了with语句后,可以通过类似如下的方式来实现:with(objInstance) { var str = 属性1; ..... }去除了多次写对象名的麻烦。3)举例<script language=" 阅读全文
posted @ 2013-05-07 09:38 杜昊东 阅读(531) 评论(3) 推荐(2) 编辑
摘要: 在项目开发中,遇到了问题,当使用了UpdatePanel控件后,直接在后台输出js脚本报错了。大家都知道向客户端输出内容的方式很多,而大多数初学者会使用Respone.Write(string)。比如:以下是代码片段: Respone.Write(“hello word!”); 或输出JS Respone.Write(""); 但是,当你查看客户端源码时,你会发现,输出的内容呈现在源码的最前端,显然它破坏了HTML的格式,在某些情况下这是会影响到页面布局等效果的。 正确的输出方式应该是:this.ClientScript.RegisterStartupScript或this 阅读全文
posted @ 2013-04-19 15:48 杜昊东 阅读(483) 评论(0) 推荐(0) 编辑
摘要: 项目刚刚开始的时期,项目经理做的主要事情是搜集客户需求,这是一个项目经理非常头疼的阶段,合作的磨合刚刚开始,需求问题上的失误又会导致无穷的后患。三种客户类型:1 的确很专业。能提供基本可用的文档,能给出要求规范,能向你提出有价值的疑问和担心。能快速回答你的问题2 以为自己很专业。 给的文档基本没法用。没法提供规范和标准,喜欢指指点点和挑毛病。只会向你提傻逼问题。基本回答不了你的问题。3 啥都不懂。 不给文档。能给你几个参考范例(打开数个网站,告诉你我要做成和它们一样的。)只能等着你来问100个问题。。。四种合作方式:1 创始人直接和你接洽:交流结果的协商余地很大,需求不易反复,细节不会被过分追 阅读全文
posted @ 2013-04-19 12:46 杜昊东 阅读(225) 评论(0) 推荐(0) 编辑
摘要: 软件版本号总结:V(Version):即版本,通常用数字表示版本号。(如:EVEREST Ultimate v4.20.1188 Beta ) Build: 用数字或日期标示版本号的一种方式。(如:VeryCD eMule v0.48a Build 071112) SP: Service Pack,升级包。(如:Windows XP SP2 / Vista SP1)授权和功能划分: Trial:试用版,通常都有时间限制,有些试用版软件还在功能上做了一定的限制。可注册或购买成为正式版 Unregistered:未注册版,通常没有时间限制,在功能上相对于正式版做了一定的限制。可注册或购买成为正式版 阅读全文
posted @ 2013-04-19 11:13 杜昊东 阅读(614) 评论(0) 推荐(0) 编辑
摘要: 一.项目经理的处境经过数年的打拼,怀着美好的向往,我们终于成了他——项目经理。然而,梦做到最真的时候,往往也是梦醒的时候。项目经理其实也是悲情人物。从“程序猿”到项目经理,可以说是刚出虎穴,又入狼窝。要知道,做一个合格的项目经理,比成为一个优秀的程序员,还要难得多。本来以为当上了项目经理,王子和公主从此就可以幸福的生活在一起了,没想到,跋涉的路才刚刚开始。我实在不想打碎这美好的梦想,这有些残忍,但清醒的痛着,总好过麻木的睡着。更何况人生本来就是一个接一个的杯具,每个角色都有他的难处,我们只能接受这个现实。人生就像登山,当你到达一个山头时,发现还有更高峰,一山还比一山高。王子和公主,一直在路上。 阅读全文
posted @ 2013-04-19 11:12 杜昊东 阅读(291) 评论(0) 推荐(0) 编辑