[TL]分享一下我的偏执

12 views
Skip to first unread message

jun lin

unread,
Dec 11, 2009, 12:25:18 AM12/11/09
to pon...@googlegroups.com
dear all forks:
我有种偏执,在程序开发的时候,总会想办法把所有事情抽象化,
本来界面编程拖拉控件就可以的,我偏要自己先整理出界面上需要完成的功能,
然后用个函数自动生成界面,或者直接手写代码。
本来一个功能可以放在一个文件里面的,我却会根据功能,UI,数据库操作,常用的方法给分离成许许多多的文件,
甚至还有一个makefile来执行测试,生成安装文件。
本来可以用MFC直接做开发的,我却因为生成的代码太恶心不够模块化,而转而选择不容易把握性能的python+qt。
本来我可以直接调用MFC的串口通讯函数的,我却因为偷懒转而使用速度慢的pyserial。
本来代码可以开发完毕的,我还要一遍遍地回头修改,不好看的地方要么包到函数里面,要么加上大堆的注释,直到没有什么一眼看上去不对劲或者不能理解的程度。

大家有什么偏执,一起分享吧。

Jeff Chen

unread,
Dec 11, 2009, 12:32:11 AM12/11/09
to pon...@googlegroups.com
我经常会想出很多变态的情况,来测试自己的solution.
 
想得越多,越觉得不够,生怕什么特殊情况没有考虑到 :(

2009/12/11 jun lin <linjun...@gmail.com>



--
My Blog:http://jeffchen.cn

sagasw

unread,
Dec 11, 2009, 12:31:51 AM12/11/09
to pon...@googlegroups.com
参考TBBT的主角,这是一种强迫症的表现。

------------------------------------
C++, Lua, living in Dalian
http://sunxiunan.com/
http://twitter.com/sagasw
------------------------------------


2009/12/11 jun lin <linjun...@gmail.com>

Poople

unread,
Dec 11, 2009, 1:04:18 AM12/11/09
to TopLanguage
不分享偏执了,先泼泼冷水 :)


一个问题的各种设计都会有某方面的好坏(可能是扩展性和易于实现性或者其他方面的指标),
而好的设计就是能在设计之初就看到这些不同点,从而找到最佳的平衡点;(可能是从扩展性和易于实现或者性能的方面的一个平衡)

如果一味的寻求所谓的最好的设计(其实我认为是不可能存在的),那只能说是过度设计了,忘记了程序设计的根本目标!


On 12月11日, 下午1时32分, Jeff Chen <sheismyl...@gmail.com> wrote:
> 我经常会想出很多变态的情况,来测试自己的solution.
>
> 想得越多,越觉得不够,生怕什么特殊情况没有考虑到 :(
>

> 2009/12/11 jun lin <linjunhal...@gmail.com>

jinhu wang

unread,
Dec 11, 2009, 1:10:29 AM12/11/09
to pon...@googlegroups.com
我觉得编程中的“偏执”是一种习惯。写程序很大程度上是一个严谨的东西,你不小心留下的任何一个陷阱都可能会成为将来的一个灾难,所以偏执一点没坏处。
我记得高中的时候做题,计算完结果,我总会再用另一种方式验证一遍,这就是迭代吧。

2009/12/11 Poople <poopl...@gmail.com>

Poople

unread,
Dec 11, 2009, 1:19:38 AM12/11/09
to TopLanguage

我觉得编程中的“偏执”是一种习惯。写程序很大程度上是一个严谨的东西,你不小心留下的任何一个陷阱都可能会成为将来的一个灾难,所以偏执一点没坏
处。
我记得高中的时候做题,计算完结果,我总会再用另一种方式验证一遍,这就是迭代吧。

非常同意这个观点!应该来说写程序是一个绝对严谨的东西,但要分偏执的是哪个方面,对逻辑的偏执是绝对要支持的;
但看1楼和2楼的很多偏执,看起来和你说的偏执是不同类型的偏执!


On 12月11日, 下午2时10分, jinhu wang <wangjinhu...@gmail.com> wrote:
> 我觉得编程中的“偏执”是一种习惯。写程序很大程度上是一个严谨的东西,你不小心留下的任何一个陷阱都可能会成为将来的一个灾难,所以偏执一点没坏处。
> 我记得高中的时候做题,计算完结果,我总会再用另一种方式验证一遍,这就是迭代吧。
>

> 2009/12/11 Poople <pooples...@gmail.com>


>
>
>
> > 不分享偏执了,先泼泼冷水 :)
>
> > 一个问题的各种设计都会有某方面的好坏(可能是扩展性和易于实现性或者其他方面的指标),
> > 而好的设计就是能在设计之初就看到这些不同点,从而找到最佳的平衡点;(可能是从扩展性和易于实现或者性能的方面的一个平衡)
>
> > 如果一味的寻求所谓的最好的设计(其实我认为是不可能存在的),那只能说是过度设计了,忘记了程序设计的根本目标!
>
> > On 12月11日, 下午1时32分, Jeff Chen <sheismyl...@gmail.com> wrote:
> > > 我经常会想出很多变态的情况,来测试自己的solution.
>
> > > 想得越多,越觉得不够,生怕什么特殊情况没有考虑到 :(
>
> > > 2009/12/11 jun lin <linjunhal...@gmail.com>
>
> > > > dear all forks:
> > > > 我有种偏执,在程序开发的时候,总会想办法把所有事情抽象化,
> > > > 本来界面编程拖拉控件就可以的,我偏要自己先整理出界面上需要完成的功能,
> > > > 然后用个函数自动生成界面,或者直接手写代码。
> > > > 本来一个功能可以放在一个文件里面的,我却会根据功能,UI,数据库操作,常用的方法给分离成许许多多的文件,
> > > > 甚至还有一个makefile来执行测试,生成安装文件。
> > > > 本来可以用MFC直接做开发的,我却因为生成的代码太恶心不够模块化,而转而选择不容易把握性能的python+qt。
> > > > 本来我可以直接调用MFC的串口通讯函数的,我却因为偷懒转而使用速度慢的pyserial。
>
> > 本来代码可以开发完毕的,我还要一遍遍地回头修改,不好看的地方要么包到函数里面,要么加上大堆的注释,直到没有什么一眼看上去不对劲或者不能理解的程度。
>
> > > > 大家有什么偏执,一起分享吧。
>
> > > --

> > > My Blog:http://jeffchen.cn- 隐藏被引用文字 -
>
> - 显示引用的文字 -

Nan Hu

unread,
Dec 11, 2009, 12:56:10 AM12/11/09
to pon...@googlegroups.com
我对程序当中的空格非常非常的偏执......
比如 a = 1,我就浑身不舒服,非要改成a=1.
每次用别人的代码,都要花几个小时把空格去掉.>_<

2009/12/11 sagasw <sag...@gmail.com>

http://groups.google.com/group/zeeslo/

unread,
Dec 11, 2009, 1:34:47 AM12/11/09
to TopLanguage
个人认为偏执与否应该取决于最终的结果。我是做软件测试的工程师,对于你的这种偏执,我非常之欣赏,不知道是否有兴趣继续沟通和交流一下。呵呵

hu

unread,
Dec 11, 2009, 3:11:41 AM12/11/09
to TopLanguage
应该算是强迫症吧
可以考虑心理咨询一下。

郑培祥

unread,
Dec 11, 2009, 6:34:38 AM12/11/09
to pon...@googlegroups.com
我觉得这个帖子还是有存在的必要的,如果偏执,有好有坏,但是很多的情况下,个人还是认为是好的,一个人犯错没什么大不了的,如果犯了错一点也没觉差,那隐患更大。我希望大家可以分享以下,然后评论以下,引以为戒。

我的:

linux偏执:非常喜欢linux,非常喜欢命令行,明明在windows下能完成的更好(看pdf时记笔记,播放mkv格式影片,使用网络银行,方便的ide 等等)我非要弄到linux下来,结果是,费劲力气,才发现,很多东西, 尤其是娱乐方面的东西,linux-----无解,虽然很痛苦的承认,但是还是偏执linux,windows,几乎不上。
emacs偏执:我想使用emacs完成所有的功能(前一一段时间我甚至想用muse作mindmap), 个人认为在上面浪费了不少的时间(我甚至为了配置学了elisp)
c++偏执:这个坛子里有人说了,我被玩了
以前的设计偏执:过度设计,以前听说什么样的模式,什么理念,我所以在很多运行不了几次的脚本,程序上,花了很多时间设计,忽视了问题本身的情况。

希望大家不要犯同样的问题



2009/12/11 Poople <poopl...@gmail.com>



--
     此致
敬礼!
                                                             郑培祥
--
Zheng PeiXiang
C++, JAVA, PYTHON, NLP, Semantic Role Labeling

woo

unread,
Dec 11, 2009, 6:37:43 AM12/11/09
to pon...@googlegroups.com
laf,时间,项目风险,协同工作,你都不带考虑的吗?
如果碰到一个同样偏执的项目经理,
偏执的要求你在两周之类给出可用的产品
偏执的要求你用保守的方式进行开发
偏执的要求你的工作能够简单的被同事(不会写makefile)接管,让你去做其他的项目
你怎么搞

再说了,看你写了这么多,我有一个疑问,你的文档跟你的代码差距有多大?

ZhiGang Qi

unread,
Dec 11, 2009, 1:38:26 PM12/11/09
to pon...@googlegroups.com
第一,你不用手动的把空格去掉。。。 设置一下你自己的editor,然后reformat一下就可以了。

第二, 我很讨厌的一种代码风格就是a=1...  in sin.

                   a = 1 or a == 1 多好啊。。。。

2009/12/10 Nan Hu <huna...@gmail.com>



--
Zhigang Qi
345 park ave, W12-302
San Jose , CA 95110, USA
Cell: (812)272-1809
work: 408-536-247

Fuzhou Chen

unread,
Dec 11, 2009, 1:51:23 PM12/11/09
to pon...@googlegroups.com
在我们公司写a=1在review的时候会被一群人指摘你为啥不写 a = 1,
这也是另一种偏执吧。:)

我的偏执似乎和流行的正相反:我就见不得没用的code留在项目里。要
是什么函数或类已经不需要了我就要求把它们清除出代码,代码里没有
被立即用上的接口也最好去掉。为这毛病在公司内外还得罪了不少人,
可就是改不掉。

2009/12/11 ZhiGang Qi <zhiga...@gmail.com>:

--
《采莲》·江南

为卿采莲兮涉水,为卿夺旗兮长战。为卿遥望兮辞宫阙,为卿白发兮缓缓歌。

另抄自蒜头的评论:http://www.douban.com/review/1573456/

  且祭一束紫琳秋,为一段落花流水的传说
  且饮一杯青花酒,为一场几多擦肩的错过
  且焚一卷旖旎念,为一腔抛付虚无的惜怜
  且歌一曲罢箜篌,为一刻良辰春宵的寂寞

jun lin

unread,
Dec 11, 2009, 5:53:26 PM12/11/09
to pon...@googlegroups.com
+1
2周之内:我会裁剪需求。
保守:我会开发2份代码。
接管:makefile和VC之类同时使用
文档:经常被强迫review,已经非常熟练于写文档。

2009/12/11 woo <woos...@gmail.com>

limodou

unread,
Dec 11, 2009, 8:30:52 PM12/11/09
to pon...@googlegroups.com
2009/12/11 Nan Hu <huna...@gmail.com>:

> 我对程序当中的空格非常非常的偏执......
> 比如 a = 1,我就浑身不舒服,非要改成a=1.
> 每次用别人的代码,都要花几个小时把空格去掉.>_<

我晕,我和你正好相反。在我所写的python代码中,我都要在操作符前后加上空格,看上去更清晰。只不过如果别人的代码不是我也未必会改,没你这么“厉害”。

--
I like python!
UliPad <<The Python Editor>>: http://code.google.com/p/ulipad/
UliWeb <<simple web framework>>: http://uliwebproject.appspot.com
My Blog: http://hi.baidu.com/limodou

limodou

unread,
Dec 11, 2009, 8:32:22 PM12/11/09
to pon...@googlegroups.com
2009/12/12 Fuzhou Chen <cppo...@gmail.com>:

> 在我们公司写a=1在review的时候会被一群人指摘你为啥不写 a = 1,
> 这也是另一种偏执吧。:)
>
> 我的偏执似乎和流行的正相反:我就见不得没用的code留在项目里。要
> 是什么函数或类已经不需要了我就要求把它们清除出代码,代码里没有
> 被立即用上的接口也最好去掉。为这毛病在公司内外还得罪了不少人,
> 可就是改不掉。
>

干净有干净的好处,但是留下痕迹也有助于别人理解代码变化的过程。各有利弊。只要不是“过尤不及”就好。

madongfly

unread,
Dec 11, 2009, 8:42:02 PM12/11/09
to TopLanguage
呵呵,正好和你相反……

On 12月11日, 下午1时56分, Nan Hu <hunan1...@gmail.com> wrote:
> 我对程序当中的空格非常非常的偏执......
> 比如 a = 1,我就浑身不舒服,非要改成a=1.
> 每次用别人的代码,都要花几个小时把空格去掉.>_<
>
> 2009/12/11 sagasw <sag...@gmail.com>
>
> > 参考TBBT的主角,这是一种强迫症的表现。
>
> > ------------------------------------
> > C++, Lua, living in Dalian
> >http://sunxiunan.com/
> >http://twitter.com/sagasw
> > ------------------------------------
>

> > 2009/12/11 jun lin <linjunhal...@gmail.com>

Fuzhou Chen

unread,
Dec 11, 2009, 8:49:16 PM12/11/09
to pon...@googlegroups.com
呵呵其实我很早以前也这么想。但后来工作了一段时间之后想法有所改变。

我现在的看法是记录痕迹的任务我们早就已经交给版本管理工具了,为什么
非得要在代码里再留一份?而且如果某个函数因为版本变化而不再使用,那
么就说明其必定在某些地方有问题。要是将来开发人员换个新人,在不了解
历史的情况下看见这个函数就用,搞不好就要出错。所以不如趁早删掉干净。

退一步讲,就算是将来后悔了,从老版本里把函数重新拷贝回来,其实也不
费多少事情。所以也就一直没觉得自己错。

2009/12/11 limodou <lim...@gmail.com>:

--

Fei Yan

unread,
Dec 11, 2009, 8:51:00 PM12/11/09
to pon...@googlegroups.com
看来还是支持 a = 1 的居多,我还以为就我的偏执习惯和楼主相反呢

清楚垃圾代码对于一个老项目而言作用是非常显著的;这种偏执应该得到鼓励。。。
一年多以前我开始接受我们的代码的时候,看到几个函数的作用感觉稀里糊涂,加上很多函数指针的传递,一时半会儿倒也拿捏不准那段代码有没有人用
最后请教阿三师傅,对方花了一个多小时苦力后才告知我此段代码属于3年以前的实验性杰作,写好之后就没用过而是采用了另外的实现方法
还好那位老兄立刻就提交了SR,将他知道的无用代码给清理掉

还有一个例子是某次偏执的我将代码的-Wextra打开,将我能控制的代码里边的warning全修改掉,不过大家也都容忍了我

2009/12/12 Fuzhou Chen <cppo...@gmail.com>

raymond

unread,
Dec 11, 2009, 10:14:54 PM12/11/09
to TopLanguage
我很感兴趣,一个solution是如何被测试的?我觉得功能这些是可以测试的,solution是只能拿来讨论的。

On Dec 11, 1:32 pm, Jeff Chen <sheismyl...@gmail.com> wrote:
> 我经常会想出很多变态的情况,来测试自己的solution.
>
> 想得越多,越觉得不够,生怕什么特殊情况没有考虑到 :(
>

> 2009/12/11 jun lin <linjunhal...@gmail.com>

居振梁

unread,
Dec 12, 2009, 12:02:33 AM12/12/09
to pon...@googlegroups.com
我也这德性。
1.为了能够自动化,我宁愿自己写参数文件(不是传统的配置文件)然后解析,也不用GUI工具来生成这些文件(比如Qt的ui和translation)。
2.为了让自己的代码看起来舒服,一切向着完美的修改都会不断进行,直到“没有”瑕疵。比如:一个局部变量的命名。
3.变量个数和代码行数(在不影响质量的前提下,我会向着尽量少的方向修改,哪怕将影响可读性的地方写到注释里去,如果你一定要看的话。空行不算)。可读性和代码量在我这绝对是一个难以权衡的问题。特别不喜欢看那些一上来就声明一砣变量,每个一行然后有些变量只作为中间变量只被用一次。

不过以上只适用于“私人代码”,如果我所在团队有规范,那就按那个规范来,“适应”是一种必备技能。

2009/12/11 jun lin <linjun...@gmail.com>



--
战斗暴龙:理论由自己理论,由这理论演绎实践;实践由自己实践,由这实践归纳理论。事事都理论+实践太累了。
http://wargrey.yo2.cn [黑客精神;团队精神;清心寡欲;像孩子一样思考]
http://wargrey.blogspot.com [BY-BLOG;自然语言试练场]
http://juzhenliang.blogspot.com [中文译出]

woo

unread,
Dec 12, 2009, 1:02:04 AM12/12/09
to pon...@googlegroups.com
呵呵,对于编程很有激情啊....admire
这样的代价太大了。限于各种现实原因,比如开发应用,lincense啊,真正投入应用的只有一种了,你的工作被老板认可的也只有一种,当然,这话可能说的现实了点,其他的工作量,别人可能知道,也可能不以为然,因为大多数人只对自己看得到的东西感兴趣。
与其有这个时间,可以把真正用到的解决方案做好做完美
也可以去玩玩别的东西,比如pyQT什么的

ps:不知道你对于pypy有没有了解,这个据说性能已经非常好了

jun lin

unread,
Dec 12, 2009, 4:10:43 AM12/12/09
to pon...@googlegroups.com
现在在用pyqt做开发,很好很强大。

2009/12/12 woo <woos...@gmail.com>

SevenCat

unread,
Dec 12, 2009, 5:32:29 AM12/12/09
to TopLanguage
有个工具叫sourcestyler的不知道能不能帮你自动转换。

On 12月12日, 上午2时51分, Fuzhou Chen <cppof...@gmail.com> wrote:
> 在我们公司写a=1在review的时候会被一群人指摘你为啥不写 a = 1,
> 这也是另一种偏执吧。:)
>
> 我的偏执似乎和流行的正相反:我就见不得没用的code留在项目里。要
> 是什么函数或类已经不需要了我就要求把它们清除出代码,代码里没有
> 被立即用上的接口也最好去掉。为这毛病在公司内外还得罪了不少人,
> 可就是改不掉。
>

> 2009/12/11 ZhiGang Qi <zhigang...@gmail.com>:


>
>
>
>
>
> > 第一,你不用手动的把空格去掉。。。 设置一下你自己的editor,然后reformat一下就可以了。
>
> > 第二, 我很讨厌的一种代码风格就是a=1... in sin.
>
> > a = 1 or a == 1 多好啊。。。。
>

> > 2009/12/10 Nan Hu <hunan1...@gmail.com>


>
> >> 我对程序当中的空格非常非常的偏执......
> >> 比如 a = 1,我就浑身不舒服,非要改成a=1.
> >> 每次用别人的代码,都要花几个小时把空格去掉.>_<
> >> 2009/12/11 sagasw <sag...@gmail.com>
>
> >>> 参考TBBT的主角,这是一种强迫症的表现。
>
> >>> ------------------------------------
> >>> C++, Lua, living in Dalian
> >>>http://sunxiunan.com/
> >>>http://twitter.com/sagasw
> >>> ------------------------------------
>

> >>> 2009/12/11 jun lin <linjunhal...@gmail.com>

jinhu wang

unread,
Dec 12, 2009, 6:27:36 AM12/12/09
to pon...@googlegroups.com
你这个习惯估计是跟大多数人或大多数公司的编程习惯或者规范相背的。

 
2009/12/11 Nan Hu <huna...@gmail.com>

SevenCat

unread,
Dec 12, 2009, 8:15:14 AM12/12/09
to TopLanguage
其实这个有点属于轻度的强迫性神经症,不过没啥要紧的。

On 12月12日, 下午7时27分, jinhu wang <wangjinhu...@gmail.com> wrote:
> 你这个习惯估计是跟大多数人或大多数公司的编程习惯或者规范相背的。
>
> 2009/12/11 Nan Hu <hunan1...@gmail.com>


>
>
>
> > 我对程序当中的空格非常非常的偏执......
> > 比如 a = 1,我就浑身不舒服,非要改成a=1.
> > 每次用别人的代码,都要花几个小时把空格去掉.>_<
>
> > 2009/12/11 sagasw <sag...@gmail.com>
>
> > 参考TBBT的主角,这是一种强迫症的表现。
>
> >> ------------------------------------
> >> C++, Lua, living in Dalian
> >>http://sunxiunan.com/
> >>http://twitter.com/sagasw
> >> ------------------------------------
>

> >> 2009/12/11 jun lin <linjunhal...@gmail.com>

kid

unread,
Dec 12, 2009, 10:46:41 AM12/12/09
to pon...@googlegroups.com
一直在做python的工作,现在下意识的都a = 1了,如果写成a=1,就被鄙视了......

jinhu wang

unread,
Dec 12, 2009, 10:54:26 AM12/12/09
to pon...@googlegroups.com
偏执一把:)
 判等的那句你怎么可以把a放在前面呢?给我反过来写成1 == a

2009/12/12 ZhiGang Qi <zhiga...@gmail.com>

est

unread,
Dec 12, 2009, 11:01:16 AM12/12/09
to pon...@googlegroups.com
我也是a = 1的强迫症。。。有的时候还用tab对齐。。。

myvar           = 1
longlonglongvar = 2

2009/12/12 kid <kid...@gmail.com>

27149

unread,
Dec 11, 2009, 8:14:20 PM12/11/09
to TopLanguage
哈哈 我正好和你相反 我每次都要花时间加空格上去

On 12月11日, 下午1时56分, Nan Hu <hunan1...@gmail.com> wrote:

> 我对程序当中的空格非常非常的偏执......
> 比如 a = 1,我就浑身不舒服,非要改成a=1.
> 每次用别人的代码,都要花几个小时把空格去掉.>_<
>
> 2009/12/11 sagasw <sag...@gmail.com>
>
>
>
> > 参考TBBT的主角,这是一种强迫症的表现。
>
> > ------------------------------------
> > C++, Lua, living in Dalian
> >http://sunxiunan.com/
> >http://twitter.com/sagasw
> > ------------------------------------
>

> > 2009/12/11 jun lin <linjunhal...@gmail.com>

wang carl

unread,
Dec 11, 2009, 9:47:50 PM12/11/09
to pon...@googlegroups.com
忍是必须的。程序世界也不完美。一个大的C++项目里面,全然没有引用,全是指针,关键是各种暴露给外面……现阶段只能忍着,回头重写罢了,到时再偏执……

2009/12/12 Fei Yan <skyscr...@gmail.com>

Nan Hu

unread,
Dec 11, 2009, 11:12:56 PM12/11/09
to pon...@googlegroups.com
大家说的我知道,而且我也知道操作符加空格是正确的代码风格.
不过类似这样的代码:
int GetLength() { return SHA_DIGEST_LENGTH; };
我就非要改成:
int GetLength(){return SHA_DIGEST_LENGTH;};
才舒服.....

2009/12/12 raymond <shiq...@gmail.com>

Fuzhou Chen

unread,
Dec 12, 2009, 2:01:36 PM12/12/09
to pon...@googlegroups.com
其实也谈不上什么正确不正确,个人习惯而已。我们公司那票人
也就是大家都接受了这个习惯以后直接写进了编程规范,彼此适
应一下就好了。

2009/12/11 Nan Hu <huna...@gmail.com>:

--

Fei Yan

unread,
Dec 12, 2009, 8:19:41 PM12/12/09
to pon...@googlegroups.com
vim 有个Align插件,可以通过visual mode选择多行,然后Align一下就能得到类似表格的对齐效果,我一般用这个来应付一些模板文件

不过我比较讨厌一大堆的变量赋值放在一块,C却是鼓励这个的,可能因为早期K&R只支持变量在函数开头处声明的缘故

2009/12/13 est <electr...@gmail.com>

stefan

unread,
Dec 12, 2009, 9:05:47 PM12/12/09
to TopLanguage
你能够自己做这么多的选择真是不可思议,从MFC一下到pthton+Qt,我想做很多项目里可不是想怎么样就怎么样吧,这个可不是偏执的问题

jun lin

unread,
Dec 12, 2009, 9:31:09 PM12/12/09
to pon...@googlegroups.com
就我一个人写PC代码,当然是想怎么样就怎么样。。。。
如果是多人项目,估计还是要回到C++上面来。

2009/12/13 stefan <pengl...@gmail.com>

Roof

unread,
Dec 13, 2009, 2:19:08 AM12/13/09
to TopLanguage
我疑惑为什么你用了“分享”这个词^_^

张慧聪

unread,
Dec 14, 2009, 5:41:26 AM12/14/09
to pon...@googlegroups.com
2009/12/13 Roof <roofa...@gmail.com>
我疑惑为什么你用了“分享”这个词^_^

我觉得要看实际效果,比如我在洗菜的时候总是想一片叶子也不丢,哪怕是很小的一片小叶子,吃饭的时候我总是一粒米也不剩,切蒜苔的时候我总是想切得一样长……
其实有的时候是很浪费时间的,我就默念"There's no perfect"来提醒自己。
空不空格最终还是要好看清楚,其实逻辑清晰的代码,只要缩进好了就都可以看,我是看K&R的书学的,所以最习惯那样的代码风格,但要是有把{写在行首的其实习惯一下就好了。
花太多时间在这种小地方上不值得
--
----文艺型程序员+围棋偶饭+SC剩菜饭+前科幻迷+数学习饭

黄冠

unread,
Dec 13, 2009, 7:57:52 AM12/13/09
to pongba
完美主义者,尝试用TDD开发,找到现实与完美的平衡点,避免产能低下。

2009/12/11 jun lin <linjun...@gmail.com>

HUA

unread,
Dec 14, 2009, 8:45:16 AM12/14/09
to pon...@googlegroups.com
我就有点受不了在函数下面才开始第一个'{'。。。然后会改自己项目队友写的变量和函数名字。。。

2009/12/14 张慧聪 <zhcfr...@gmail.com>



--
成大事者,在孤独中享受寂寞,从寂寞中厮杀黎明!
好好学习,天天向上!
Jonathan Swift  - "May you live every day of your life."

jinhu wang

unread,
Dec 15, 2009, 2:37:20 AM12/15/09
to pon...@googlegroups.com
受不了这个格式么?
int f()
{
    ...
}

2009/12/14 HUA <desper...@gmail.com>

Zhiming G

unread,
Dec 15, 2009, 11:17:23 AM12/15/09
to pon...@googlegroups.com
程序员的执着都差不多呀, 呵呵.

我的执着:
gcc的默认参数会改成-std=c99 -Wall -Wextra -Werror -pedantic, 自己的项目必须是warning clean, lint clean, 自己能编译的代码也要在力所能及的范围内xx clean. 如果需要gnu扩展, 可能会吧-std=c99改成gnu99.
用vs就/W4 /Wx /Werror. 能gcc的地方决不用vs, 必须用vs也是cl+link, 之前学directX的时候也是用mingw gcc来写的.

代码版式和留白已经越来越不纠结了, 定期用indent等代码没花工具处理一下, 当然定制indent规则时候也挺纠结的.

小项目的makefile手写, 需要跨平台/编译器的就cmake. 总之是anti-ide控吧, 呵呵, 每天90%的工作是在众多的终端和vim窗口下完成的~

Zhiming G

unread,
Dec 15, 2009, 11:29:30 AM12/15/09
to pon...@googlegroups.com
int
foo(void)
{
    if (1) {
        return;
    }
    return;
}

int
foo(void)
{
    if (1)
      {
        return;
      }
    return;
}

如果是c, 把{放在下一行第一个字符, 而不是像有的if语句, 跟在一行结尾, 是因为函数在c中的唯一的特殊地位造成的. 比如vim会根据第一行的{和}来找函数的开始和结束. 在c++中, 函数已经没有这个地位了, 但是这个传统在很多地方仍然保留着. 左括号(和前面的token也有类似的现象, 有些传统是跟着函数的(前面没有空格, 跟着关键字的(前面有空格.

其实这些东西只要在项目内统一就行, 争论这个不会增加生产力, 呵呵

2009/12/15 jinhu wang <wangji...@gmail.com>

Fuzhou Chen

unread,
Dec 15, 2009, 2:26:30 PM12/15/09
to pon...@googlegroups.com
warning clean和lint clean重要得很,特别是涉及多平台时,那些字节对其之类的问题
常常就可能靠这个发现。所以这样的偏执需要大力提倡,呵呵。

2009/12/15 Zhiming G <gao...@gmail.com>:

--

sagasw

unread,
Dec 15, 2009, 7:25:41 PM12/15/09
to pon...@googlegroups.com
这个不算是偏执,只是必须做的罢了。

我们以前的项目(不是我接手过的),如果警告开到4,能发现一大堆问题,
主要是参数未使用或者定义了变量不使用之类,偶尔也能发现一些不常见的错误。

不过像是new []但是没有delete []的问题就只能眼睛看,至少vc编译器是不行的。

btw,如果vc编译器能检查出类似“嵌套层次过多”“函数过长”之类的问题就更帅了。


------------------------------------
C++, Lua, living in Dalian
http://sunxiunan.com/
http://twitter.com/sagasw
------------------------------------


2009/12/16 Fuzhou Chen <cppo...@gmail.com>

HUA

unread,
Dec 15, 2009, 4:26:10 AM12/15/09
to pon...@googlegroups.com
对 ,我几乎肯定要想写成
int f(){
}
....:(

2009/12/15 jinhu wang <wangji...@gmail.com>
Charles de Gaulle  - "The better I get to know men, the more I find myself loving dogs."

jun lin

unread,
Dec 16, 2009, 6:21:06 AM12/16/09
to pon...@googlegroups.com
int f(){
}
+1

2009/12/15 HUA <desper...@gmail.com>

OxFAN

unread,
Dec 16, 2009, 6:25:25 AM12/16/09
to pon...@googlegroups.com
都习惯了...  没有感觉哪种更好,只有合适的没有最好的...
个人觉得能看各种风格的代码也是程序员的基本素质之一

2009/12/16 jun lin <linjun...@gmail.com>

居振梁

unread,
Dec 16, 2009, 7:03:30 AM12/16/09
to pon...@googlegroups.com
有人有this癖吗?
就是说只要一个变量有“命名作用域”就一定要把它写完整了。
比如不辞辛苦的一遍又一遍的在membervar前写"this.",
这样的好处是
1.让编译器一看就知道要引用那个变量;
2.方便批量重命名而不会与局部变量冲突;
3.在我这this是彩色高亮的,看起来比较舒服。

缺点是:
1.大大扩展了一个复杂表达式的长度使得整体看起来不舒服;
2.将一段正常代码复制到另一个闭包函数里会引起混乱;
3.好像是有点罗嗦,呵呵。


--
战斗暴龙:理论由自己理论,由这理论演绎实践;实践由自己实践,由这实践归纳理论。事事都理论+实践太累了。
http://wargrey.yo2.cn [黑客精神;团队精神;清心寡欲;像孩子一样思考]
http://wargrey.blogspot.com [BY-BLOG;自然语言试练场]
http://juzhenliang.blogspot.com [中文译出]

jun lin

unread,
Dec 16, 2009, 8:05:18 AM12/16/09
to pon...@googlegroups.com
我写delphi有self癖,为的是代码补全。。。

2009/12/16 居振梁 <juzhe...@gmail.com>

up duan

unread,
Dec 16, 2009, 8:36:03 PM12/16/09
to pon...@googlegroups.com


2009/12/16 居振梁 <juzhe...@gmail.com>

有人有this癖吗?
就是说只要一个变量有“命名作用域”就一定要把它写完整了。
比如不辞辛苦的一遍又一遍的在membervar前写"this.",
这样的好处是
1.让编译器一看就知道要引用那个变量;
2.方便批量重命名而不会与局部变量冲突;
3.在我这this是彩色高亮的,看起来比较舒服。

缺点是:
1.大大扩展了一个复杂表达式的长度使得整体看起来不舒服;
2.将一段正常代码复制到另一个闭包函数里会引起混乱;
3.好像是有点罗嗦,呵呵。

所有的命名作用域都有一个最大的缺点,可维护性差。
可维护性差主要体现在如果你调整了类所处的包,或者改变了使用的类,用了另一个包中同样功能的类,结果导致你处处改动。而实际上,如果不用作用域复合指定类的话,这个改动本不该引起这么多麻烦的。
另一个缺点就是它有西方语言的倾向:不考虑上下文也是可以理解的。之所以这个被认为是一个缺点,是因为我们习惯于在一定的Context下表述问题,而不是时时刻刻的处在无场景中表述问题,那样会导致理解上的复杂。

SpitFire

unread,
Dec 16, 2009, 8:50:58 PM12/16/09
to pon...@googlegroups.com
this我在模板类的时候使用,免得编译器犯傻.

2009/12/16 居振梁 <juzhe...@gmail.com>



--
SpitFire

Zane Zheng

unread,
Dec 16, 2009, 9:31:55 PM12/16/09
to pon...@googlegroups.com
原来现在流行亮二骚 啊
Zane

2009/12/17 SpitFire <spit...@gmail.com>:

陆军军

unread,
Dec 17, 2009, 12:06:42 AM12/17/09
to pon...@googlegroups.com
int f()
{
    for (int i = 0; i < 10; ++i) {
        // xxx
    }
}

习惯在定义时用
xxx
{
}

在循环等用
xxx {
}

2009/12/17 Zane Zheng <fat...@gmail.com>

居振梁

unread,
Dec 17, 2009, 12:08:48 AM12/17/09
to pon...@googlegroups.com
这个问题确实被我忽略了,看来这不是个好癖。哈哈,
类似的问题还有一个,以前在用c/c++时一直坚持“能用指针的地方一律只用指针”,其实栈对象和堆对象各有优劣。
向着类“似情况而定”的癖最好还是不要理智一点比较好。

2009/12/17 up duan <fix...@gmail.com>

所有的命名作用域都有一个最大的缺点,可维护性差。
可维护性差主要体现在如果你调整了类所处的包,或者改变了使用的类,用了另一个包中同样功能的类,结果导致你处处改动。而实际上,如果不用作用域复合指定类的话,这个改动本不该引起这么多麻烦的。
另一个缺点就是它有西方语言的倾向:不考虑上下文也是可以理解的。之所以这个被认为是一个缺点,是因为我们习惯于在一定的Context下表述问题,而不是时时刻刻的处在无场景中表述问题,那样会导致理解上的复杂。

居振梁

unread,
Dec 17, 2009, 12:19:36 AM12/17/09
to pon...@googlegroups.com
2009/12/17 居振梁 <juzhe...@gmail.com>
向着类“似情况而定”的癖最好还是不要理智一点比较好。
汗,“最好还是理智一点比较好”。

两外对于可维护性差的那个缺点不是很理解,对于一个给定的变量,其类型已经确定了吧,即使包换了,也只是在申明该变量时有可能需要更改?

声明时坚持指定作用域复合的"层次"或者选择不同的“root起点”来如何呢?类似简单类名和全限定类名的区别。
Reply all
Reply to author
Forward
0 new messages