大部分的都停留在功能实现的层面上。这是现在国内二流或者是三流的公司的现状,甚至是在某些一流的公司。很多时候都是架构师出了架构设计,更多的外包公司根本就是有DBA来做设计,然后后端程序员从JS到CSS到Java全写,完全就是一个通道,所有的复杂逻辑全部交给DB来做,这也是几年前DBA很受重视的原因。
所以你能看到成千上万行的存储过程(存储过程,视图,事务,外键 这些东西我希望永远不要在里出现),这就是外包公司中最常见的架构体系。来个SSH,Over。
好一点的会个,用过,也用过Redis,甚至还会用过Dubbo。然而大多数情况也根本不了解为什么这么用。
很多人写了两年或者三年代码都没做过的DB设计,不知道什么是REST,不懂怎么做接口设计,也不知道怎么去定位问题。
所以对于他们来说,拿到产品经理的需要,会有一个项目经理或者是Leader分配任务,跟着按步就班的把代码写完,跟前端调试完,QA测试不通过,加班改回来重新改,改完QA又没通过,再加班再改,QA终于通过了然后上线了突然发现另一个好的功能不能用了,跟着再接着改,在线上发布一次又一次。。眼睛熬的通红最终真的受不了了,休息几天换另一家公司涨个40%左右的薪水继续这样的日子。
拿到产品需求-》后端程序员做接口设计,架构设计,DB设计-》拿出方案来做技术方案评审-》评审通过,开始预估时间-》每日更新自己的Task-》接口完成自测一百遍,每日部署到开发,随时集成-》CodeReview-》重构代码-》性能测试-》Demo通过-》发布到测试-》修正Bug-》重新发布-》发布到线上。
这中间需要理解需求,需要拿出多个方案,需要跟前端配合,需要跟QA配合,需要跟运维配合。需要跟产品沟通,有时候还需要找。后端几乎是一个核心节点,而这个核心节点接起来了所有的人。
我不知道我楚没,很多时候我都发现我可能太久没做一个IT新人了,都忘记了新人们关心的问题或者是困惑是什么。
基础【Http,REST,跨域,语法,Websocket,数据库,计算机网络,操作系统,,】
不说了,搭永远是后端人员比较头疼的事儿,所以才会有很多人想用简单方便的的语言来解决这些问题,比如说之类的。我还是喜欢Java,大概很多人觉得重,然而我喜欢,我觉得不是重,而是正。好像剑一样,,子很正。
基础知识太多了,正是我一直强调的,做后端,这些基础知识了解多少,其实就是决定了你以后能走多远。这些科班出身的计算机ER,会了这些,才有了一个平台,才可以站在这个平台之上去搭建更高层的建筑,如果根基不稳,你觉得你会对上层的知识理解透彻么?
框架是Java最有资格说自己是架构师的原因。无数的框架,选型,筛选,对比,填坑,优化,,寻找最适合的业务场景,很多时候很多公司的架构简直了(我不吐了,很多技术都在用然而每一种用法几乎都是错误用例的典范)。所以你想想,你大概要有多少框架要学要用?很多时候,你必须要想清楚,哪些是需要认真了解的,哪些是需要一笔带过的。
业务对于后端人员来讲无比重要,不懂业务,就没有架构。这是我经常说的一句话,这个世界上不存在不懂业务的架构师(我不怕被打脸),一个架构师必须要深入了解业务体系,知道哪些是会变的,哪些是不会变的,哪些是重要的,哪些是不重要的,然后才能做出来适合某个应用场景的架构来。比如说,同样的表,几千万的量和几亿的量差别非常大,频繁读和频繁写的设计也完全不同。会有一些通用的架构思想和在里面,但是都是需要跟业务结合落地的。
PS:很多金融证券行业的程序员,就是靠业务知识混饭吃的。对他们来说,对业务体系的了解要比在技术上的追求重要的多。
第三方的东西和JS的内容相似,我不想多说了,而且 JAVA的第三方的东西更是多的离谱,坦白的说这东西我就没彻底研究明白,虽然很喜欢。而像这种类似的东西,太多太多了。
B.随着后端架构体系的稳定和成熟,后端人员在性能上需要担心的问题不多(再加上大部分应用场景其实并不需要那么多的性能),所以更多的应该会关注于一个稳定的扩展性好的架构,以及快速实现能够复用的业务逻辑模块实现上。
最近后端人员在价格上(以为例),其实有点偏低于前端人员的,就向我之前所说。两年的JS可能拿到20K。两年的Java想拿到这个,非常难。然而,五年的Java或者是七年的Java,拿到30~40K,不难。
成长径:Java初级工程师-Java中级工程师-架构师-技术经理-技术总监-CTO-CEO
后端的爆发力并不差,只要你给他时间,只要你愿意前进,后端的线很深,深到你有时候会觉得自己还没来得及全部了解,就已经有无数的新人涌进来要替换你的了。
Java是入门门槛最高的一个,没有之一。(好吧,我虽然说的是后端,然而一直把Java等同于后端)
当然,如果你的志向并不是一个架构师,只是像NodeJS和或者是PHP一样随便做点小项目,那么也可以说的得上是没有门槛,但是我说过我有,所以可以直接把我掉。如果你觉得我说的哪点不对,你过来揍我啊。
所以如果有各种培训学校告诉你零基础4个月20000块钱把你教出来做Java后端,然后你月薪上万,你就直接一锅盖盖他脸上吧。
那么零基础的人想做后端,怎么样才能入门呢,我比较推荐的是先做前端,然后把自己的基础知识各种补,补回来,再去转后端--但是实际上,你做了前端,再想转后端,就太难了,因为你到时候就不太想放弃自己一年或两年就可以轻松拿到的高薪,去做一个苦逼的后端了。
第三个职业就是不重视线上,不知道如何写日报,也不知道如何快速定位。我不得不说我带过的兄弟,有一次解决线上问题的时候快把我气疯了,他们在那里猜测问题出现的原因,跟玩福尔摩斯一样,不打日志不看日志,根据现象倒推结果,直接盲改代码再扔到线上看看有没有解决问题---那是最后逼不得已的办法好么,在此之前能不能安静的把日志打出来,确认一下到底是哪里出错了?
第四个职业就是不懂版本管理,不懂Bug修复流程,不懂开发流程。这些其实都是一整套的流程体系(等我心情好了,有人把Java骂的狗血喷头了,我大概也会写出来)
大部分后端的人员都会抱怨自己不会写前端代码,不会写或者是,不能自己完成项目,所以他们才倾向于自己做一个全栈工程师,做一个自己喜欢做的东西。
这也是后端人员会经常觉得不爽的地方,自己写的东西完全感受不到,而且一旦出问题很多时候都是大问题,解决起来很麻烦,经常不敢改代码,因为看不懂前人的东西。
这也是后端人员比较大的问题,往上走的话也容易遇到各种瓶颈,做技术的,做到CTO,再去做CEO,其实很难的。
而且,等你走到足够高的高度,你会发现,一个七年工作经验的正常发展的后端工程师,一定会有一个七年工作经验的产品或者是运营,在薪水和职业上秒杀他。这也是做技术的最大的悲剧。
不过大部分的后端工程师都比大部分的产品和运营人员薪水高,这也是这个行业的特征之一,所谓高不成低不就,小富即安,就是这样的。
如果你是一个有理想的,我你多关注一些,多关注一些项目管理,学会带着自己的兄弟们一起做事儿。再不然,就是在技术这条上一直走到黑。