许多后端程序员的中期会有一个困惑,觉得自己每天的工作基本就是写sql,做增删改查的操作。
其实这个问题有一定的代表性,究其原因是因为视野太狭隘。
当一个项目上线后,后端程序员所做的是不停的对当前版本进行迭代、优化。
原本一个好好的查询,随着数据量的增大,查询速度越来越慢。这时需要对sql进行优化,或者使用缓存技术进行提速优化体验。
另外一个工作便是,对新功能的叠加。
需要推送消息,那就使用websocket。需要高并发,那就研究协程,线程。需要定时任务,那就研究scheduler。
随着业务模块越来越多,那就需要对业务进行解耦,形成微服务。
工程应用问题与理论研究的对立,便是工程应用是对研究特定问题提供解决方法,与之相反的是理论研究针对一类问题提出解决问题的模型。简言之,工程应用解决特殊性,理论研究解决一般性。
作为一个后端工程师,最佳的实践方式是什么?
就我个人而言,是折腾自己的小破站。
首先我用php写过一个,那同样的前端能不能使用django再写一遍后端呢?再进一步,能否通过,vue+django dfs 来实现前后端分离呢?再进一步,能不能做一个小型的 容器编排集群?又再进一步,能不能使用websocket技术增加在线聊天的模块呢?
工程师,也许不是精通算法、数据结构的人,但是一定是对具体问题有独特思考方式的技术人员。
我们现在可以使用的各种框架、脚手架、做着简单的增删改查,其原因是使用各种黑箱来实现我们的需求。而黑箱里,有什么宝藏,便不是我们所关心的问题。