博客:blog.focus-linux.net linuxfocus.blog.chinaunix.net
11660阅读 9评论2012-01-15 GFree_Wind
分类:LINUX
多数情况下,领导认为能用的代码就是好代码。上行下效,搞得编写健壮代码变成了比建设XX社会还空洞的废话
<div class="quote"><span class="q"><b>fireaxe</b>: 多数情况下,领导认为能用的代码就是好代码。上行下效,搞得编写健壮代码变成了比建设XX社会还空洞的废话.....</span></div>确实是这样。我一直希望可以有一个非常好的氛围,大家都努力的写好代码,而不是让它work而已。<br /> <br /> 暂时还没有碰到,不过我经历的公司太少。连实习的加起来不过3家。以后看看真正的世界性的大公司是什么样子
好的代码有很多方面。单就健壮而言,个人认为要注意避免“没有考虑全,没有说清楚”,要把接口理解成严谨的契约,要搞清楚“限制和约束”的输入:如有限的内存,不完整,不及时的数据输入,延迟的网络等等。要把限制和约束输出到下一级(明确的说出来):最大客户端流量。吧这些考虑到了,才能在编码是选择处理和不处理(有时候不处理比处理要好),如果处理怎么处理。
<div class="quote"><span class="q"><b>cuichaox</b>: 好的代码有很多方面。单就健壮而言,个人认为要注意避免“没有考虑全,没有说清楚”,要把接口理解成严谨的契约,要搞清楚“限制和约束”的输入:如有限的内存,.....</span></div>是啊。所以写好代码不容易。
首先人的思维有盲点,健壮需要共同的努力:与同事协作,互相审查。很可惜我的公司没有这种氛围,很无奈!<br /> <br /> 代码可读性高:首先意味着你思路清晰,我相信思路越清晰,才越不容易留下阴暗面;其次意味着你精雕细琢,追求完美,意味着多次审视,反思自己的代码,找出隐患的几率自然提高;最后,别人帮你审查代码也能更容易读懂你的思想,帮你找出问题<br /> <br /> 不盲目自信,请让测试说话:人的思维是有盲点的,同样我们的认知也有盲点,我欣赏测试驱动开发的方法,无论如何,请让测试先行,重视测试!<br /> <br /> 看了博主的精彩博文,有感而发,随意的写了写,呵呵比较粗浅,还请见谅!
<div class="quote"><span class="q"><b>asuka2001</b>: 首先人的思维有盲点,健壮需要共同的努力:与同事协作,互相审查。很可惜我的公司没有这种氛围,很无奈!<br /> <br /> 代码可读性高:首先意味着你思路清晰,我相信思路越清.....</span></div>挨个回复吧。<br /> 1. 互相审查确实非常好。因为即使是大师,其仍然是人类哈,难免会有考虑不周和思维死角或盲点。通过审查,可以在代码编写阶段就消除一定的bug。另外审查的过程中,大家还能互相学习。关于公司没有氛围一说,不知道是否没有审查的流程。<br /> <br /> 2. 很赞同你的观点。这也是为啥要看重设计的原因。<br /> <br /> 3.我还没试过测试驱动开发的方法。感觉其不适合我的工作。另外,如果连设计都做好,代码也没有写好,写出的测试用例究竟有多大作用呢?我对测试驱动不熟悉,望指教。
<div class="quote"><span class="q"><b>GFree_Wind</b>: 挨个回复吧。<br /> 1. 互相审查确实非常好。因为即使是大师,其仍然是人类哈,难免会有考虑不周和思维死角或盲点。通过审查,可以在代码编写阶段就消除一定的bug。另.....</span></div>测试先行的好处在于首先,你需要明白你的需求,你的模块边界,你希望设计出的正交性的接口,这其实不叫没有设计,如果完全的一团糟,那么思路都还没有理清,你怎么可能知道测试些什么?<br /> <br /> 当理清思路,有了比较清晰的想法,知道模块边界和接口所在了,针对模块功能,写出测试代码,这个就限定了你的模块和功能,以及你的预期结果。你看,实际还未编写功能模块,你已经非常清晰的把握了整个模块的大体脉络。<br /> <br /> 最后编写实现代码,让所有的测试都通过。这个时候你的预期功能已经实现,当你的实现自己觉得不满意的时候,你改动代码,有测试代码为你提供自信,不用担心引入bug。<br /> <br /> 我说的都比较浅显,毕竟自己也才刚使用TDD方法不久,但是感觉
<div class="quote"><span class="q"><b>asuka2001</b>: 测试先行的好处在于首先,你需要明白你的需求,你的模块边界,你希望设计出的正交性的接口,这其实不叫没有设计,如果完全的一团糟,那么思路都还没有理清,你怎.....</span></div>TDD对我这种能力一般的初级程序员还是很有用的,测试用例织起一道安全网,让你对自己的代码有一定的信心。我2010年培训过TDD,觉得不错,后来自己写一些小功能,自己都会测试下。当然,自己不是很严格,测试用例没那么周全。<br /> <br /> 著名程序员陈皓对 TDD有一些有意思的看法,当然,他对TDD颇有微词,但是也说的也挺有道理,只是我目前层次比较低,还理解不到陈皓的那种层面。
指针是一个具有机器字长类型的整型变量,其值是另一个变量的地址^.<br /> 学习了!