面向对象编程似乎很有趣。他们不仅每两年就能享受到主要框架的修订,每五年就有新的、改进的语言,还可以处理与其编程风格相适应的设计实践。从测试驱动开发到设计模式,面向对象程序员有很多东西需要跟上。
相比之下,C编程世界显得更加平静。该语言的最后一个重大修订是在1999年,下一个版本可能会远不如此。许多人仍认为K&R第二版是一本不错的入门书籍,尽管它现在已经20年了。
如果我们作为C程序员,已经发展和改进了我们的技能和实践(我认为我们可能已经做到了),我们似乎并不擅长沟通这些。 我们没有出售这些书籍,没有在博客上发布它们的内容,也没有组织围绕它们的研讨会。这是其他软件开发领域看起来很常见的做法。
所以,让我们分享一下。
你喜欢使用哪些“现代”C编程实践?
你是否像C++程序员那样使用“模板”库,使用长而复杂的预处理器宏来挤出硬件的最后一寸性能?你是否使用像halloc这样的分配库来最大限度地减少管理内存所需的时间,或者你是否使用完整的自动垃圾收集器?
当然,如果你从1987年开始就一直在使用这些东西,也请随时发言。这个问题的重点是分享那些不同寻常但可能对他人有益的实践。
你喜欢使用哪些“现代”C软件设计实践?
当然,设计考虑因素至少同样重要。你是否借鉴面向对象世界的设计实践?你是否使用UML?或者您选择以语言中立的方式来整理规范(流程图、Z、最弱前置条件演算等)?