“模板”故事
-- Story about C++ template 201205
# 故事背景
(故事)
好像我得先稍微抱怨吐槽几句才过把瘾,然后好继续谈谈我的C++ template故事。
诶,抱怨的不是C++语法喔,而是关于同事们对我的template观念的偏见,或曰误解。
某某同事们(包括现在的Leader :-) )‘抱怨’说,
诶,抱怨的不是C++语法喔,而是关于同事们对我的template观念的偏见,或曰误解。
某某同事们(包括现在的Leader :-) )‘抱怨’说,
“不喜欢,阿杜写的那坨坨模板代码。”
跟新人们,告诫的语气(哈哈)说,“不要学习阿杜那样用C++模板写代码。”
“代码,着实看起来比较牛B,但后来者需付出代价较大,尤其对于新手。”
……
当然,也有略微听闻到同事的一点赞声。嘿嘿 :-) :-)
所以,为表示‘无辜’,我想在此整理整理,关于C++ template的想法。
# 故事历程
边讲故事边总结吧 ……
其实,我对于模板的东西还是比较谨慎的,真的比较需要时才考虑使用。
他们好像不太理解(误解)我。要不然,就让我回忆回忆,梳理一番吧。
在XL快两年的项目开发中,主要使用到C++模板场景可罗列如下:
1. 实现繁多同类的网络通信协议,其中富有共性;
2. 实现字符流类型,针对协议不同字段编解码的字符流;
3. 实现可扩展置换(源码级)的调度策略(部分)。
(去年故事)
去年某月某日,项目组里讨论决定开发写代码时慎用C++模板,包括(禁用)C++异常等。
项目组Leader对于C++ template相对比较规避,他不喜欢。他相信,C++面向对象足以完成其所需了,足矣!
还有,组里其他几位主程对于C++ template不感冒,涉及不多。所以,我们就达成一致,慎用C++模板。
其实其实,我是中立者,那时候我已经很客观了!对于C++ template的利弊已心中有数,可用可不用,除非要用就用得恰处。
……
(更久以前的故事)
以前,我确实迷恋过C++ template,那是2009前还在大学时候,学习《STL源码剖析》,《C++设计新思维》(Modern C++ Design)《C++ Templates》等模板书籍,还有研读STL,Loki(部分)Boost库源码时候。毕竟,当时学习过程中,真的热衷于template,恨不得所有C++代码都用上模板,追逐各种奇淫技巧。
“有一点你要相信,借着C++ template有着完整自动机那样的推导功能,在泛型编程的世界里你无所不能。”这点就是当时的C++ template编程的信念。
那时候,针对模板方面,学习、测试性C++代码还保存着一些在硬盘上面,后来索性放到了Github保存着,以做纪念。有想待有时日与闲情,不妨翻翻,“温故而知新,不亦乐乎?”。
……
# 我的观点
我想说的很简单,我喜欢模板但不滥用,慎用模板只为了提高代码质量。
PS.其实,我一直有个想法,找时间好好整理一番,关于C++ template方面知识的的个人理解与总结,博文一篇。祝我早日完成,多谢。
我想说的很简单,我喜欢模板但不滥用,慎用模板只为了提高代码质量。
PS.其实,我一直有个想法,找时间好好整理一番,关于C++ template方面知识的的个人理解与总结,博文一篇。祝我早日完成,多谢。
(后续)
……
# 链接
没有评论:
发表评论