写‘后端’的工作感触

Author Avatar
Blued 6月 07, 2017
  • 在其它设备中阅读本文章

先感慨一阵,时间真快(大约2012年的冬天)刚入行的时候写java,在当时流行的ssh框架中调来调去,server,dao各种层,还要面对mysql,存储过程,尤其记得review代码的时候,被狠批了一通,在for循环中去写sql查询,代码耦合严重等等。。。机缘巧合下被经理安排去跟着公司前端同事去做前端,从此踏入前端行列(写java中的jsp页面),记得那时候正是前端刚刚要‘起飞的年代’各种新技能,当时感觉比写后端爽多了,最起码不用担心写个sql服务器会不会崩掉。在前端的日子里,最难忘的除了各种兼容性坑以外,还有就是和后端同学各种“互相残杀”,“让你返回一个数据怎么就这么难呢?”,”你就不能在后端把数据处理好,非让我前端format一下么”,“接口改了你不告诉我一声,挂了找你啊…”日子就这样过着,写前端的日子久了,感觉要重新拾起自己丢掉的东西,“前后通吃”岂不是很爽,还专门报了一个班去学了nodejs….. 在这里感谢东哥(我也是东哥)
言归正传,在真正开始“通吃”前后端代码的时候,还是犯了经验主义错误。举几个例子
1)比如项目中用到redis,刚开始我只是简单的把命令过了一下,知道有哈希(Hash)、列表(List)、集合(Set)等几个命令,并没有好好的去看一下他们的基本用法以及分析一下他们的区别,更没有好好想想他们各自的应用场景是什么,所以在看之前同事写的代码的时候,同事怎么写,我也就怎么写,可是真正开始做需求的时候,我考虑了,为什么要这么写呢,忽然发现,原来我对于redis的理解,都达不到皮毛,好像触动了什么,然后就是慢慢的补之前挖下的坑。。
2)第二个是关于mysql的,因为需求的增加,需要添加几个字断,我就想,在原来表的基础上,在加几个字段就可以了,very easy..。当我把我的想法告诉小黑的时候,小黑说,是不是在加几个需求,你还是忘后面加字断啊。。当时忽然想起来了N年前,一个老程序猿告诉我“数据库设计最基本的是要追求三范式”,心中懊悔,怎么之前没有考虑好呢,就给小黑说,被小黑鄙视了。。。带个三范式链接,虽然不是我写的(http://www.cnblogs.com/linjiqin/archive/2012/04/01/2428695.html)
3)写后端,没有表现出来在程序猿队伍中,混迹好几年应该有的稳重。如果前端代码哪里出了问题,会想一想哪里出了问题,排查一下代码定位一下问题。做为重新回炉写后端代码的“新手”还是毛躁了一些,看到报错了,有时候第一反应竟然是把错误信息贴出来,百度一下,百度不行就google,运气好,能看到有的人也会碰到同样的问题,看看人家怎么说的,go了半天,有时候获取到有用的信息,真不多。不如静下毛躁的心来,好好理理代码,定位定位是哪里问题,定位到问题,然后仔细的分析一下问题所在,可以翻一下官方文档,还有是不是粗心大意把表名写错了(我就犯了好几次),,还有就是,是不是多了一个空格等等

自己感觉写后端服务是个精细活,粗心大意重者把服务高挂,轻者死活返回不来正确数据,对于粗心大意的我,吃了不少亏。