盗賊の極意

Feed Rss

写给别人看的代码

10.21.2013, 未分类, by , 2,067 views.

进公司以前我也算是也过一点程序,也跟人合作写过游戏,但都是我一个人负责全部程序部分,程序的读者和作者都只有我一个人。

我当然知道代码是写给别人看的,但至今为止那个别人也就是几天、几周、几个月、至多几年以后的我自己而已。

一些我想出来的框架被用在我的多个程序中,是对我来说印象很深的东西,这些结构放多久我都不会忘。这样每次都建立在之前的基础上进一步添加功能,让这个框架越来越灵活,越来越合理,同时也越来越复杂。

证据是,这个框架我用着是越来越合手,但越来越不知道应该怎么介绍给别人了。写篇文章讲也许还好,只用注释想解释清楚就有点麻烦了。

在公司工作一段时间,免不了要读要用别人的代码。只用它一两个函数的还好说,要我系统地读整个类的设计思想我就犯懒了。这种时候一个常用的借口是“反正理解了也是只能在这家公司用的东西,也不知道设计的好不好,要看也应该看些开源框架,学习在哪里都用得到的知名框架才对”。现在想想,公司别人看我实现的UI框架的时候,大概也是同样的心情吧。

这个心情我倒不觉得有什么不好,毕竟公司很多程序是赶时间做出来的,大量代码是复制粘贴而来,或者是实现目标就好,完全不考虑复用的一次性类,从它们中学到东西的收获很可能抵不上读它花费的代价。

但是我写的是UI框架啊,别人不读不去理解我提供的虚函数的用法那不全白扯了嘛!

怎么办,怎么办。我想继续增加新功能,设计自己的美术资源异步初始化流程,但流程中子类独有的资源要子类理解初始化流程的基础上小心地控制bool flag才行。嗯……先看看这里能不能简化一下吧。

可是如果子类需要两段、三段异步初始化怎么办?简化掉以后这部分就要强行覆盖框架类的一部分函数才能实现了,这个人家更不敢用了啊。

嗯……总之,午休结束了,下次想到什么以后再写吧

写给别人看的代码 有 3 条回应

  1. 2013-10-21 在 19:40 FreeKnight

    =.=嘛,我可以免费帮你鉴定架构,哇哈哈哈~~玩笑的= =
    可以用doxygen嘛

    回复
  2. 2013-10-21 在 20:47 基拉铃妖

    说自己这个是架构又有点心虚了……

    就是目前总结的游戏转场的管理方法呀,逻辑节点拼成树形啊,节点渲染顺序和逻辑节点树的顺序互不影响什么的,最近新加了可以执行任意类对象的回调函数的方法,不过貌似不是标准C++语法(强制转换成员函数指针),嘛,反正用起来挺顺手的。
    按键消息怎么在节点间传递,现在的做法还挺不好的,资源异步初始化也不是特别方便给子类用,嗯。我喜欢的lua脚本也还没有用好,管理大量设计表格的功能我还完全没有(想学公司用excel编辑,执行前把excel转成数据库用)。

    不过这些都是通用功能,给我的感觉笃志是3D编程部分非常厉害所以可以做厉害的工作,这些通用做法对高级程序员来说都是常识吗?

    回复
  3. 2013-10-22 在 12:07 FreeKnight

    一般来说,看UI模块,最核心的也就是搞懂消息传递机制了。对于渲染节点和逻辑节点之间的管理和切耦合,也属于3D渲染程序一般都要负责的。对于回调函数表管理在于网络消息接收解析,场景节点事件,UI事件都挺常用的。
    算起来应该是比较常用的,大多程序会存一些模板直接改改用。
    你可以尝试把现在手头的问题详细整理下,逐个认真参考其他一些代码解决掉,并且总结起来。
    对于大量表格的管理啊= =不清楚。。是策划干的事么。。= =

    回复

发表评论

电子邮件地址不会被公开。 必填项已用*标注

您可以使用这些HTML标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>