Post Views:
5,931
程序员的交流能力还真是非常的重要。
情况是,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会议,约朋友出去吃饭看电影,早睡早起(意外地会带来好心情),给朋友打电话。