工作笔记-2016/1/28

昨天没有记录,那就先说说昨天把。昨天上午一想到可以新的组里,做新的东西就挺兴奋的。有一种跳出苦海重入火坑的感觉。人生就是一个个跳入火坑和跳出火坑的过程。

心情略好的情况下,指导了下新毕业的小伙子怎么写程序,怎么定位程序中遇到的问题。我自己其实也没有做过相应的总结,做事情大多是凭着自己的感觉走,额,这么说起来好像挺不靠谱的。

但是呢,经过昨天给小伙子指导,我发现其实我也有一些基本的做事情的方法的,比如说看待一个问题的时候,弄清楚WHO,WHAT,WHERE,WHEN,WHY,HOW.也就是所谓的Six Ws。

在程序这个事情上,我尽量做简化,抓住核心,然后把核心问题抽象对应的模型。

还有就是看数据与逻辑。主要是数据,弄清楚数据怎么存,怎么读,都是在什么情况下更新,谁来更新,怎么更新,为什么更新。基本上可以比较快速的掌握一个程序的主干。

然后就是看逻辑。弄清楚数据相关的以上事情之后,逻辑基本上呼之而出。但是逻辑里有非常多的细节,而且逻辑这东西蛋疼的地方是条件稍微一多,复杂度就会呈爆炸式增长。

掌握逻辑的过程其实就是丰富主干的过程,看清楚主干之外的枝枝叶叶。

然后还跟小伙子说定位程序BUG的方法。我们现在开发程序,都会或多或少的遵守模块化原则和分层原则。而且现代工作起来都是讲究分工合作的,讲究团队协作的。在一个稍微大点的项目中,

有些人会负责底层,有些人会负责整体框架,有些人会负责上层业务逻辑。那么,当自己做为不同角色的时候,首先要相信别人,相信他们写的代码是优秀的,然后遇到BUG一定先看是否是自己的

代码有问题,然后排查自己的嫌疑后,再大胆假设问题的根源,然后小心求证。

这个就是所谓的科学的方法:大胆假设,小心求证。并且还要仔细求证。

昨天还顺便帮小伙子定位一些问题,边解决边跟他说解决问题的思路。顺便要吐槽下他们新写的程序的问题。他们应用的新的框架和协议真的是非常蛋疼。

首先说说协议这个事情。因为我司的产品普遍较老,而且这个新的产品就是在老的上面演化过来,要对原有的协议做相应的兼容。所以这个程序负责底层的哥们就不满足原有协议代码的实现,重新写了一套,做到了二进制上的兼容。

但是不得不说,这套新的协议本身就与他自己写的网络层的框架是有冲突的地方。其次就是,这个网络框架部分对模板的应用略显稚嫩,导致灵活性不足,额外还使框架使用者迷惑,很容易引发BUG。

我前些天还问自己,咱们搞程序的老说设计设计,到底设计的是啥?啥样子的才算是好的设计?我大概想了想,首先要知道自己解决什么问题,其次要知道自己的用户是谁,然后要引入一些原则确保设计出来的东西首先是易用的,然后是能够

使使用者避免一些错误的用法,就好比我们做UI交互设计的,尽量让用户能够极易的上手使用,减轻学习成本。作为我们搞程序的,还要保证稳定,还要保证性能。我也没细想太多。

继续说说昨天,昨天还跟领导扯了一顿,最后懒得扯了,我心想我都年后要内部跳槽的人了,懒得扯了, 你说啥就是啥吧。但是这个事情让我很不爽。争执的原因是因为要增加一些字段做保留,以便将来使用。但是目前为止,以往做的类似的

事情,或者说已经有些协议信令里做了这种事情,但是实际情况中压根没有用到。我就很反感这种事情。整体上没有做相应的扩展设计,却要在很多细节处留各种扩展,我觉着这是一件很逗的事情。

然后导致昨晚我所在的BU的研发们一起聚餐都没心情喝酒了。。要知道酒桌上可是有我爱喝的红酒的。

哦,还想起来,另外一个组的研发老大说让我为他们讲讲Golang。我觉着挺好。

 

以上是昨天的。接着说说今天的。

今天么,没发生啥太多的事情,除了在整理GO相关的东西为前面提到的GO分享做些准备之外,没啥太多事情,今天人也比较懒,改了几个新需求的代码。

嗯,今天GO1.6Rc1发布了。距离1.6正式版又更近了。GO的垃圾回收又增强了,GO1.5时垃圾回收的性能图里单位是以MB为单位的,GO1.6的垃圾回收的性能图里则是以GB为单位,

而且性能继续保持在ms级别,非常棒!但是我想要的基于SSA的后端优化还是没有加入到1.6里,不知道会不会在将来加入的1.7里。

还有就是我最近自己写GO程序的时候,真特么的想要有个泛型啊!特么哪怕是提供JAVA那样的泛型机制也好啊! 不得不说,GO的语言扩展能力还真的是烦!

而且我还在写GO的时候还在想,虽然GO这种把goroutine这种并发机制加入到语言中虽好,但是这种对全局有影响的功能有的时候也挺蛋疼的。

而我反而忽然有点明白为毛C#要加入async/await这么屌的东西了。C++17也要加入这种机制,而VS2015还已经支持并实现了,有点期待C++17呢!

 

如果有错别字请告诉我,我是没带眼镜的情况下敲出以上文字。

posted @ 2016-01-28 22:44 011 阅读(...) 评论(...) 编辑 收藏