面向对象的程序员似乎拥有所有的乐趣。他们不仅每两年接受一次主要的框架修订,每五年接受一次新的和改进的语言,而且还可以处理根据他们的编程风格量身定做的设计实践。从测试驱动的开发到设计模式,面向对象的程序员有很多东西要跟上。
相比之下,C编程界似乎要平静得多。对这门语言的最后一次重大修改是在1999年,而下一次可能就不会那么令人印象深刻了。《K&R》第二版至今已有二十年的历史,但仍被许多人视为一本很好的入门书。
如果我们,作为C程序员,已经开发并改进了我们的技能和实践(我想我们可能已经),我们似乎不太擅长与他们沟通。我们不卖关于它们的书,不在博客上发表关于它们的文章,也不围绕它们组织研讨会。不像其他软件开发世界看起来的那样。
所以,让我们分享。
您最喜欢的“现代”C编程实践是什么?
使用长的、涉及的预处理器宏的“模板”libraries以与C++程序员相同的方式来压缩硬件中的最后一英寸性能吗?您是使用像halloc这样的分配库来减少管理内存的时间,还是使用全自动garbage collector?
当然,如果你从1987年就开始使用这些工具,也可以随意加入;这个问题的重点是分享一些不寻常但可能有益于他人的做法。
你最喜欢的“现代”C软件设计实践是什么?
当然,设计方面的考虑至少也同样重要。你适应面向对象世界的设计实践吗?你用UML吗?或者你选择用一种语言中立的风格(流程图,z,最弱的先决条件演算,等等)来处理规范?
最佳答案
如果可能的话,我尽量使用现成的库来实现基本功能。当涉及到一般的数据结构等时,我发现glib(aa>的一部分)非常出色。不要再自己写了。
我还认为gtk+工具包中的面向对象的思想非常棒,而且我的代码结构通常都是一样的。没有什么能阻止你在C中采用范式,它有足够的灵活性来表达许多在其他语言中只是“一流”的东西,即使这样经常涉及到某个…当然啰嗦了。