美文网首页程序员上班这点事儿
成为程序员的第一年的一些总结

成为程序员的第一年的一些总结

作者: 1994_老叶 | 来源:发表于2018-08-30 19:51 被阅读11次

最近的一段时间中,不巧接触了自己以前项目中自己写的代码,发现以现在的目光来看,有点惨不忍睹,虽然目前的长进不大,但是这一点点差距就让自己感觉有点难以接受,思考了一下,决定将自己的总结记录下来

一 .关于数据库查询的问题

在刚刚进入工作的时候(虽然那只是一年前的事),我被告诫要避免使用join,尤其是跨库查询,这么做的原因当然是因为分库分表的原因,对于这样的情况的,主要解决的方式,将join操作换成多次查询,一些排序等问题,就放到程序中来做,不过当这样的操作很影响效率的时候,会进行一些SQL优化或者是添加索引或者优化,因为我们中间还有一些搜索的需求,我们就建了一个es搜索引擎,也算是解决了这个问题,实际上还有很多的方式来解决,比如像建冗余表等,不过我们是根据业务需求来选择好的解决方式的。
实际中,很多数据是不需要分库分表,不要一味的追求新的技术,这是有代价的,对于不分库分表的数据,能够使用一次查询的,尽量不要使用多次,毕竟数据的连接也是有代价的,类似的我把之前需要多次查询,用字符串拼接,然后一个sql语句的in操作将所有的数据都查询出来,通过set去重,map对应相关数据,当然,去重也不一定是必须的。

二.关于代码的问题

一开始的时候,能够理解业务,按照业务逻辑勉强写出面条代码,什么都不考虑,就是一梭子,先实现,在逐渐理解业务的过程,发现一些业务可以分成多个模块,逐渐开始将面条代码切成一块一块的,慢慢,发现这样只是将冗长的代码变得看起来不冗长而已,开始思考,如何能写出抽象的代码,这样开始进行一些模块的抽象,增加一些模块的复用性,慢慢的,代码开始变短,但是有很多代码,在一次请求中,多次查询数据库,开始慢慢的考虑,如何尽可能的减少sql的查询。
其中还有一个问题,在增加新功能的时候,往往那些老的数据也需要补齐这些功能,就需要我写脚本补全数据,刚开始很高兴(哈哈哈,终于找到展示我python的代码的机会了),其实当自己的学到的东西展示在别人的面前的时候,高兴那是必须的。不过我渐渐发现,每次新功能都需要自己去补充数据,是不是太蠢了一点,我开始通过代码的方式,设置一些默认值,常用的一个做法是:我写一个枚举类,关于这些功能的配置的默认值,我写在枚举的属性值中,在数据库没查到枚举代表的配置的时候,我就返回枚举中的默认值,在需要对数据进行修改或者添加操作时候,我再将这个数据冗余进去,这样就不需要我再补齐数据了,而且代码的效率也不会有太大的影响。
对于数据迁移,这个是最恐怖的事情,生怕一个不下心就迁移错了,所以啊,发现在数据迁移之前,其实可以有段时间的“过渡期”,通过代码,在过渡期的时候,新的数据放在新的存储上,而老的数据在被查询的时候,我们就写到新的存储中,当然,查询的时候做法,我先查询新的存储,查不到再去查询老的存储,这样一个过渡期,我们可以在迁移数据的时候,显得轻松一点。

三.关于学习的问题

在自己工作中,有时忙,有时闲,我觉得大多数人应该跟我差不多,你一直都忙的不行的话,我也没办法,刚刚进入工作的时候(虽然其实我工作时间两年不到),我差不多每天都看书,看视频,看博客,疯狂的学习,确实进步很多,在很短的时间,基本掌握了公司要求的数据栈,在一般情况下,能自己解决相关的问题,但是学习的频率感觉在逐渐降低,而且学习的状态也开始流于表面,原来是一边学习一边动手自己操作,现在就是看看,然后了解一下,感兴趣的话可能会动手搭建,感觉自己没有完整的时间去建一个demo,就像自己看了k8s,想试试,但是迟迟没有动手,看了docker,动手了,但是感觉动手的也不是很充足,有时我就怪windows,这个系统开发能干个什么,随便搞个什么东西,都是在Linux上更好,大多数教程,都是在centos环境或者其他linux环境,但是自己总是硬着头皮非要在windows上,结果往往差强人意,为了避免自己继续找借口,我还是把自己的电脑装了一个ubuntu,每天还是要鼓励自己去看书,鸡汤大法好--“世上只有一种投资稳赚不赔,那就是学习”,“人没有梦想和咸鱼有什么区别”,“学习使我快乐”,“一天不学习,浑身难受”。。。洗脑式自我催眠,感觉还不错。
总结一下,希望自己保持这个习惯,愿世界和平,愿大家都能幸福,阿门!阿弥陀佛!无量天尊!

相关文章

网友评论

    本文标题:成为程序员的第一年的一些总结

    本文链接:https://www.haomeiwen.com/subject/sapmbftx.html