免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: KBTiller
打印 上一主题 下一主题

拙著《狂人C》出版,特邀CU网友垂注,并欢迎品头论足、批评指正 [复制链接]

论坛徽章:
0
301 [报告]
发表于 2010-12-09 04:45 |只看该作者
只关注指针部分。。

论坛徽章:
0
302 [报告]
发表于 2010-12-09 10:11 |只看该作者
本帖最后由 donotblock 于 2010-12-09 11:01 编辑
您提到的“拼音的问题是歧义太多,汉语同音词太严重”的问题是存在的
    您主张不为工程“花费 ...
KBTiller 发表于 2010-12-08 22:31



    这么说吧,你如果直接用汉语比如“经过的时间”等,或者用全拼jing_guo_de_shijian,我也觉得ok。

问题是你引导了一种不健康的编码风格,变量名不能尽量见名知意。 如果你根本不认同变量名应该尽量见名知意这个准则, 而认为应该全部依赖注释,那可以当我没说。 举个简单的例子,假如你的一个函数有40行,第30行用到了第2行定义的一个变量,如果按照你那种风格,我读到30行很可能已经忘了这个变量是啥意思,还得回头看注释。 本来很简单能够自我解释的代码,非得这样才能看明白,你觉得好么? 程序员的精力确实不应该花费在这种额外而毫无意义的消耗上。

还有,我觉得你错误理解了注释的意义,注释并不是用来标注每一个变量是什么意思的。。。 因为变量名对编译器来说本来就没有意义,编译完了它应该是被内部标识符替换掉或者直接是地址表啥的(我不熟悉编译原理,细节不清楚),之所以要给一个变量一个名字,就在于让它更可读。 那你再把每个变量名弄个缩写,再加注释。。。我觉得发明变量名的人要哭了。

论坛徽章:
2
技术图书徽章
日期:2013-09-04 15:21:51酉鸡
日期:2013-11-01 21:20:20
303 [报告]
发表于 2010-12-09 10:53 |只看该作者
我的看法不是这样。我认为对于复杂的问题,使用这样复杂的数据类型是十分可能的。实际上第十一章确实 ...
KBTiller 发表于 2010-12-08 20:13



入门级的程序员很难在短时间内熟练使用这些复杂的指针/数据类型。

论坛徽章:
2
技术图书徽章
日期:2013-09-04 15:21:51酉鸡
日期:2013-11-01 21:20:20
304 [报告]
发表于 2010-12-09 10:55 |只看该作者
偏偏C里面的address constant和其它课程里面讲的address有很大的不同。
先有了address的概念,再学C, ...
幻の上帝 发表于 2010-12-08 16:46


你的意思是学了计算机原理之类的基础课程,学习C更难了?

论坛徽章:
2
技术图书徽章
日期:2013-09-04 15:21:51酉鸡
日期:2013-11-01 21:20:20
305 [报告]
发表于 2010-12-09 11:16 |只看该作者
关于拼音缩写用于命名的问题,同287L。
匈牙利命名法能一度被广泛接受,一个重要的原因是前缀缩写在特定场 ...
幻の上帝 发表于 2010-12-08 17:03


论坛徽章:
0
306 [报告]
发表于 2010-12-09 13:00 |只看该作者
有幸读到此书,可看到作者的深厚功底,C语言对我们来说很熟悉,但,读起来,还是收益匪浅。对我们用C语言开 ...
底层开发 发表于 2010-12-08 18:48



    过奖

论坛徽章:
0
307 [报告]
发表于 2010-12-09 13:08 |只看该作者
    这么说吧,你如果直接用汉语比如“经过的时间”等,或者用全拼jing_guo_de_shijian,我也觉得ok。

问题是你引导了一种不健康的编码风格,变量名不能尽量见名知意。 如果你根本不认同变量名应该尽量见名知意这个准则, 而认为应该全部依赖注释,那可以当我没说。 举个简单的例子,假如你的一个函数有40行,第30行用到了第2行定义的一个变量,如果按照你那种风格,我读到30行很可能已经忘了这个变量是啥意思,还得回头看注释。 本来很简单能够自我解释的代码,非得这样才能看明白,你觉得好么? 程序员的精力确实不应该花费在这种额外而毫无意义的消耗上。

还有,我觉得你错误理解了注释的意义,注释并不是用来标注每一个变量是什么意思的。。。 因为变量名对编译器来说本来就没有意义,编译完了它应该是被内部标识符替换掉或者直接是地址表啥的(我不熟悉编译原理,细节不清楚),之所以要给一个变量一个名字,就在于让它更可读。 那你再把每个变量名弄个缩写,再加注释。。。我觉得发明变量名的人要哭了。donotblock 发表于 2010-12-09 10:11



    “不认同变量名应该尽量见名知意这个准则”这个指责我是绝对不会承认的,事实也并非如此。
    但是在这个方面是否我做的可能还不够好,我会认真反省。
    您的“用全拼jing_guo_de_shijian”的建议我觉得非常值得认真考虑
    此外我觉得函数有40行是否太长?我对初学者的建议是20行,在这种情况下我觉得多半不会发生忘记变量名含义的事情

论坛徽章:
0
308 [报告]
发表于 2010-12-09 19:46 |只看该作者
只关注指针部分。。
Esakyo 发表于 2010-12-09 04:45


欢迎指教

论坛徽章:
0
309 [报告]
发表于 2010-12-09 19:48 |只看该作者
入门级的程序员很难在短时间内熟练使用这些复杂的指针/数据类型。
mirnshi 发表于 2010-12-09 10:53


说来说去,是我们对“入门”的定义不同
我认为精通这些复杂的数据类型才算入门

论坛徽章:
0
310 [报告]
发表于 2010-12-10 21:09 |只看该作者
不,我是指 Annex D (normative) Universal character names for identifiers
KBTiller 发表于 2010-12-08 20:16

是我弄错了。。。我引用的那个算是扩展情况。

关于可读性……其实用拼音缩写还不如用拼音全写,用拼音全写还不如用中文……不过UCN标识符不见得被编译器广泛支持,而且会产生潜在的兼容性问题。
所以要么用英文要么把拼音写全,其它的方案看起来都有很大问题——除非能保证看过简写的代码阅读者能够记全这些标识符的意义。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP