盗賊の極意

Feed Rss

程序员的交流能力还真是非常的重要

02.27.2014, 未分类, by , 2,475 views.

程序员的交流能力还真是非常的重要。

情况是,tableA有N个逻辑列,另外还有两个列存储在tableB上。本来tableB上的这两个列和tableA上的逻辑列地位完全一样,就应该放进tableA里的,但是因为想兼容操作tableB的代码,所以这两列不得不和tableA分着家。
同事让我在去tableA的值的时候也可以取到这两列,我就在根据给出的逻辑列id取对应值的函数里做了一点改动,让存储在tableB中的数据像tableA上的虚拟数据一样访问,对使用者透明,而且没有任何额外的查询和处理效率上的额外负担。举例来说:
以前是 getRow( keyId, [ col_1, col_2, col_3 ] )
现在可以用 getRow( keyId, [col_1, col_2, col_3, virtual_col_4, virtual_col_5] )来取那两个值了。
但同事表示他希望另做一个总是取所有列的函数,在那个函数里单独select这两列,最后合并为结果返回。我说如果有人想单取这两个值,也不得不取所有值吗(因为是逻辑列,实际上是分布在多个table上的很多行,取所有值的代价很大)。他想了想,说那可以再做一个专门取这两个值的函数。
他的意思是让每个操作都尽量简单,但是getRow这个函数已经是一个一行的函数了,非常的简洁明了原子。本来这两个值在概念上就是和其他列同等的,做成虚拟列比单取更优雅。他则坚持他的观点。我用日语跟他争辩,本来就很耗费精力,再加上他年纪比我大,就更不想跟他争了。最后我说这是编程哲学上的分歧了,如果你想这样做,那我就这么给你实现吧(说的时候尽量露出笑容)。他大概看出我的不满,还在给我解释为什么那样好,我只好硬挺着微笑着跟他说,这件事是こだわり(个人执念)方面的问题,我不想继续讨论这个问题了。
确实是个人执念的问题。事实上,就在之前,我们已经彻底废除了tableB的原有功能,所以兼容已经不是理由了。这时候如果他说把这两列写进tableA里,我还可以接受,可是在项目代码本身并没有统一的设计风格,我代码已经写成,可以正常运转的情况下要我撤下现有设计,改换接口和所有相关调用,实在只能用こだわり来解释。

在这种程序设计的选择方面,如果充分交流,我有信心证明自己的做法更优越,但当时就突然觉得很累,心理资源暂时性用尽,于是放弃了交流。我写过的大部分代码都是一个人完成,没有人插手的,所有实现和重构都由我一个人统一风格,结果上也总是能达到我预期的灵活性和接口的优雅美观。如果项目本来有统一的风格,我肯定是要遵守现有风格的,可现实并不是这样。
放弃交流,最先影响到的是热情,这个我对现在的山寨外包工作本来就没抱有,所以没什么。既然没什么,那就算了吧。
现在上班是为了积累经验,好用到下班后的项目里。等个人作品完成以后,跳槽去个让人更有热情的公司去吧。

说到个人作品,现在越发觉得是个越挖越大的坑。我历来勇于挖掘,怯于填埋。这次这个卡牌游戏我本来是想只做个服务器端,好拿去找工作的。后来越想越多,要跨PC,android,ios平台,在后来看到cocos2d-html5了也想跨到网页版了。结果,坑大了,前面望不到头了,进度反而慢了下来。最近开始收小阵地,客户端只用javascript命令行,做一个文字版的卡牌客户端先。要限制欲望的膨胀。要做一个Demo,只关注我所关注的部分——服务器端。

今天又下了一遍笃志的代码,wc -l统计了一下行数:引擎8w多行,棋牌5w多行(不含depend)。这些都是业余项目啊(望向我1800行的服务器端)。一个月要写1w行的话,一个工作日要写500行。我现在的下班时间和周末已经完全被lol占满了,每天凌晨4点睡,周末上午7、8点钟睡已经是家常便饭。服务器端的代码每天只能在单位写一点点,照这样下去,到我预计的5000行,怕是要等到下半年了。可跳槽要趁早啊,我TOEIC和N1都考出来了你就给我说这个?

冷静。回想一下研究生时代,这又是新一轮的拖延型消沉。当时我自责了两年半,不仅没有解决问题,还让情况越发严重,精神痛苦,最后一年几乎是哭着等待毕业的。痛苦是可以熬,但是这种自责带来的痛苦并不是熬完了就能解决问题了。首先它也熬不完,我会严厉的批评自己一辈子不动摇的,这种倾向很明显。其次,这和解决问题是完全相反的方向,它从最开始就不值得我忍受。

要用力原谅自己。
我对人太严格挑剔了,对自己尤甚,看谁都有无法容忍的缺点,也就很少能在哪个集体里感到自在放松。别人可以不接近我,但是我没办法和自己保持距离,接近自己又被批得太痛苦。我为自己一天不能写14个小时程序而怒其不争,而事实是我现在在假日里连14分钟的程序都写不了,怎么可能满足这么高的自我要求?

什么事一深想都会牵扯出一套自责的理论来,要么自责,要么自责自己的自责。这种时候最需要的,就是把脑袋空一空。玩就玩了,该高兴就高兴。不过其实玩游戏并不能带给我真正的快乐,按知乎上看到的理论,游戏属于被“渴望”系统刺激出的欲望,让自己有强烈的“做了就会快乐”的错觉,而事实上去做了也不会获得快乐。

我需要区分“渴望”和真正的快乐。我始终逃避的工作之外的“集体活动”、“与人相处”等等,实际上却总是会为我带来超出预期的巨大快乐。以后做事时先回忆一下以前做玩类似事情之后留下的是快乐的回忆、还是麻木的回忆。忍耐带给我麻木的“渴望”,忍耐逃避可以创造快乐回忆的活动的冲动。

具体来说就是,(逐步)减少lol的时间,出席社团的chat会议,约朋友出去吃饭看电影,早睡早起(意外地会带来好心情),给朋友打电话。

程序员的交流能力还真是非常的重要 有 4 条回应

  1. 2014-02-28 在 12:34 FreeKnight

    首先遇到开始的那个“个人执念”问题,我通常会写俩函数-。-或者直接给个XXXwrapper。你用你的wrapper接口,我用我的wrapper接口,哈哈,我是比较难妥协的家伙,除非你真说服了我。
    另外你从哪儿下的我的代码0.0 附:大部分精品代码我还在自己手里,哇哈哈哈哈~淘汰的才丢网上的,哈哈哈哈哈啊哈哈~~
    不过,Kira君经历的各种感觉,包括自责也好,彷徨也好,我真心都经历过,所以读起来完全感同身受,其实现在我依然是经常经历这种感觉~只是偶尔回头看看,没关系,就是结果不符合我们原本预期嘛,过程我们经历了,即使不完整即使各种问题,总还是去做了一些。比起一些从未曾想过这么去做的人强多了。
    话说有个朋友想做C++游戏,托朋友找到我,求指导求介绍游戏开发工作。然后我看小伙子很聪明,给了点建议让做点小demo,结果那个小demo我主动催了三四次都没有给我,各种理由原因……现在我这边成立公司要招点新人,本来他有个很好的机会,算是自己放弃掉了。路,自己选择的,仅此。
    人也有高潮低谷,自己调整吧。我就觉得进步的过程掰碎了去看,就是自卑-自省-努力-自信-休闲-看到更高的点-自卑-自省-努力-自信-休闲-看到更高的点-自卑...这样循环下去的。总之我是这样。
    忙去了-。-哈哈哈~~~话说我也LOL哦-。-四个区都是30级的号,你觉得我投入时间会少咩。。。哈哈哈

    回复
    • 2014-02-28 在 17:53 基拉铃妖

      当然是从你的jimdo上下载的啦!
      简单看了看,一个是感慨笃志的代码产量真高,另一个是发现你的注释写的很详细密集。这两点要学习

      回复
  2. 自责理论不错呀,
    我的话从恋狱月狂病里看到一句话感觉不错——人就是不断地被欲望支配着,然而欲望永远没有被真正满足的时候,只是在部分程度上得到缓解。咦,这句话是不是以前也提过?
    关于游戏,我认为基拉君之所以事后会有消沉情绪,其实是因为工作没按要求完成。
    二月过去了,三月就是一个新的春天,想过规律的生活,想把每一天安排的井井有条,我认为只要合理安排时间肯定玩也能玩的高兴,开会chat和同事去集体活动(居酒屋?)也会快乐,基拉菌你觉得是不是这样呢wwww

    回复
    • 2014-03-01 在 20:13 基拉铃妖

      我很想啊,我这么逼了自己好多年了呢,结果越来越自暴自弃了。还是从力所能及的部分开始锻炼吧。意志力、自制力就是肌肉,训练得循序渐进啊

      回复

发表评论

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

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