两年后端程序员的困惑,关于后端开发的整体感知

即将迎来工作两年的结点,说实话一直在进行纯粹的开发工作,使用各种工具,调用各种API,实现各种工作,然后熟悉各种第三方。课余时间在学习一些自己喜欢的东西,搞一些游戏编程,看一下其他的内功书籍比如重构,简洁代码。。。
但是随着公司团队的变更和技术栈的改变,有时间来沉淀一下,发现一个严重困扰我的问题,而且我觉得会影响到我的职业发展!


——我对于整体的后端服务开发并没有一个整体的认识和感知。


可能有点空洞。具体来说,这个问题是新团队在阐述具体后端架构设计时候产生的。讲到了包括API和Service的层次分离,边界确定;在用golang设计框架时候使用的一些中间件;关于高性能IO,重试策略,性能监控等等等。。。只是大致知道字面意思,而我发现很多我是听不懂的。。。从而我突然发现我将近两年的时间我一直在真正意义上的搬砖,而不是对软件开发我还是不甚了解。。。。


so,请各位大神,解惑,我想这个问题应该也是一部分同学的问题吧。


PS:这些知识应该如何补救呢?


跪谢!

已邀请:

xiayf - 程序员,译者,GO、Python、PHP、JS

赞同来自: LinTao raindylong

工作中不要局限于自己做的那点开发工作,要多从系统整体的角度思考架构,架构每个部分解决的问题,架构是否可以优化,等等,多思考多总结。

SunisDown - @douban

赞同来自:

多造轮子


平时的工作中你基本上不会有机会接触新的东西,除非你特别幸运。
这种情况下需要你用业余时间多造一些轮子,造感兴趣的。比如你对操作系统感兴趣,可以去写一个小一点的操作系统玩。或者你对存储感兴趣可以写一个存储引擎玩。也可以自己写一个web 框架,这样对于web实现就了解更透彻一些。

Xargin - 滴滴打杂工

赞同来自:

多看代码,和自己写的做对比,别光闷头写

zuly - 喝了一杯java才来

赞同来自:

很感激能够付出时间回答这个问题的前辈,刚刚看大家回复的时候感觉没什么但是这些日子来看感受颇多。


首先,我先说下这段时间我得状态,首先我抛出这个问题后,自己看了一些东西,包括架构,网络,了解一些概念或者系统,最后在自己公司的的项目中慢慢体会,查看一下公司框架的源码,请教公司大神一些问题,最起码对整体构成有一个认识。另外,很幸运的是现在有机会做项目管理,作为接口人推动项目迭代,也让自己有了很多感触和提高,对于很多项目上的问题不单单是从编码的角度来思考,所以说其实现在才感觉慢慢的开始对于软件工程才有了正缺的认识。


今天再看我得这个问题感觉有点。。。。那什么了。如何补救其实就是自己去努力学习,学习任何在项目中接触到的不懂的东西,从而发现更多自己不会的东西,慢慢吸收,沉淀其实发现之前看得很多不懂的东西,现在看起来也有点头绪了。比如框架文档中提到的ETCD不懂,就去查查,RPC一知半解,去搜搜文章。而且再看这些的时候又会发现很多东西,比如ETCD会提到raft算法,RPC会提到谷歌的其他产品,看HTTP会看到HTTP2和HTTPS。


其实我现在来自问自答就是一点:从1开始,由少成多。


自己切实的感受,希望和我一样有这个困惑的人能够吸取一点点不够成熟的建议吧!


再次感谢回答我问题的前辈~

xkey - go

赞同来自:

多从系统的架构层面思考代码,当前的设计是否可以优化(性能、实现复杂度等),如果交给你来设计会怎么考虑,为什么要这么设计。多看系统开发中所运用到的第三方组件的源码,汲取别人代码的营养,再转化成自己的思想。也可以看看组内牛人写的代码。

tupunco

赞同来自:

多看代码多思考. 知其然知其所以然.
搞清楚原理, 看的多了你会发现 好多东西原理 很简单, 并且 细节的原理 就那么多.
先看一些东西, 再回过头看 之前上学的教材, 会有 新收获. 算法 方面的可以先把 基本的看明白, 隔一段时间 回来再看看.

要回复问题请先登录注册