大道至简-轻松使用 c++ 设计软件

    c++ 设计软件,其实简单,和c一样简单。不过现实中c++看起来很难,特别是stl boost的源码,将c++的表面难度看起来提升了几个数量级。这是要作死的节奏。

   轻松使用c++应该是这样的:抛开语言,划分模块,c是如何去划分,那就如何划分模块。再使用c++的类代替c的模块/结构体. 简单描述为 用c 去思考设计,用c++去编码实现(记忆中在某文章也看到这个观点,抱歉记不住引用的出处)。

    不要被所谓的c++设计的思想迷惑双眼。用的最好的c++就是带类的 c。一切最自然的方式才是最好的方式。(不过模块划分是前提,不分语言,问问自己是否真能做好软件的模块划分?)  

    什么stl,只是简单的数据结构支撑库,所以不用觉得源码太难。boost 更不推荐了,奇技淫巧太多。能有可以替代的功能库,就不用boost。上次没办法用到boost的 InterProcess 进程操作通信模块,再次晕菜在其中。居然一个参数不好好使用枚举类型,而使用一个临时类变量。也许说可以避免一点点使用错误,带来是巨大性能损失。这过程中大致调试发现,boost 各处充斥着无数类临时对象做参数传递。这么搞下去,c++不死都不可能了。 c++/c的难不是这点小错误的避免,最大的麻烦还是内存无gc。(一个典型场景是,socket异步模型中,为了删除链接,经常会使用到延迟删除)。 什么 shared_ptr 之类,让c++入门提升再次难上一个台阶, 当然熟练的人使用还是可以。有必要这么把c++往死里面搞呢?简单的解决就是引入gc,程序员控制自动回收还是 手动删除。

   大道至简,用c去思考设计,用c++编码实现。抛弃哪些奇技淫巧。

   准备在引入c/c++脚本化之后(llvm-clang方案),引入gc机制(这个难度挺大,难度还是在于各种库之间的交叉,希望能有一个折中解决办法)。

没有更多推荐了,返回首页