• 后端程序员的成长之路:从菜鸟到架构!


    有不少初学者问到,我想学习后端,但是又不知道该怎么学,所以我决定把这几年的经验和经历整理成一篇文章,分析后端的路该怎么走,也许与外面的理论有所不同。


    后端任务其实是实现接收输入响应输出

     

    后端初接触

    后端首先需要学习的是html,css和js,也许你会问做网页不是前端做的事情吗?

    答案是对于真实开发环境后端很多时候还兼顾了前端这个角色,对于架构来说优化不仅仅要考虑后端还需要考虑前端。

    要学到什么样的程度才可以学下一样技能呢?我的建议是能够搭建起一个简单的页面,最重要的是学会dom操作和ajax。

     

    语言选择

    我相信过来人或者正在入门的人都碰到过这个世纪难题,我的建议呢,喜欢什么用什么,小编的入门是“C”。当你学会一种语言的基本语法就可以到下一步了(仅仅是语法,任意语言)。

     

    Hello world!

    没错,这个时候,你得让浏览器可以看到hello world! 为了实现这个小目标,我们就需要根据语言配置不同的运行环境。由于入门,我建议可以使用一些集成的一键配置环境软件。

    比如:VS系列

     

    高级一些的Hello world

    这个阶段,你需要实现的是通过浏览器输入不同的网址,你可以输出不同的内容。

    然后要弄明白什么是get参数,什么是post参数。

    然后要实现根据不同get参数或者post参数输出不同内容。

    因为后端研发从根本上来说就是处理这些不同输入,输出特定的内容回去而已,所以这一步,最关键。

     

    数据库

    为什么我们要用数据库呢?

    以一个新闻网站为例,它要保存新闻数据,还得保存用户信息,也要保存评论信息。

    也许你会问用文件保存就好了,为何还要学习数据库这么庞大的东西呢?

    首先,我们来看一下什么是数据库,我们可以把数据库每一个table看成excel的sheet,每一个db就是一个excel文件。而sql语句就是一条条指令,可以帮我们操作里面的数据,可以节省我们大量的操作。开始学习数据库的时候,我建议学习mysql。

     

    模板引擎

    一项技术的出现,往往在于解决了一些开发难题。在没有模板引擎之前,我们得使用字符串拼接方式,弄成html字符串,但是这种方式很容易出错的。

    而模板引擎无需字符串拼接,并且可以处理字符串转义问题,并且模板集成,模板引用等功能,可以使代码可以重用,大大提高了开发效率,工程也更容易维护。


     

    MVC框架

    首先,我们得明白为什么要用框架?假如是第一次接触,我相信第一感受是用了框架加重自己的开发负担。然后框架存在必然有自己的合理性,我们来看看框架有什么优点。

        1. 框架提供了大量的方法封装,我们可以直接调用来解决业务问题,这可以大大提高开发效率。

        2. 框架能够帮我们分层编写代码,能够在后期更好的维护我们的项目。

        3. 做一些安全防护,处理一些常见的攻击。

    所以对于各种语言,大家可以选择一个对应的框架来学习。那么我们应该如何挑选一个框架呢?

        1. 多人用的(最起码使用过程中遇到问题,都能找到人问)

        2. 文档详细的(文档不详细,怎么去学习呢?)

        3. 简单的(未来的趋势估计都是往轻量级框架走的)

     

    Linux与应用部署

    开发用window没什么问题,但是我们做的应用绝大部分是要放在linux系统来对外提供服务器,所以不懂linux的操作是不行的,并且服务器为了尽可能节省资源,都是不使用界面的,所以我们要学好大量的linux命令。

    服务器环境我们一般就不会用外面的通用的一键安装环境,往往需要优化的。所以基本的软件安装和配置需要学会,特别是近年来很火的docker,越来越多都是基于docker来部署的啦。

    缓存

    缓存可是处理高并发的万能药,每当你写的功能慢的时候,基本上你都可以通过缓存来大大提高网站性能。实现缓存的方法很简单,但是一当在并发下和海量数据面前一切都不容易,还得上分布式集群这些。

    http协议

    如果上面的你都接触了,恭喜您普通开发估计是没问题了,如果你说很多需求还是做不出,没关系,其实你只是缺乏开发经验而已,只要多写多请教,你就会发现,其实后端研发也没什么难度。

    这个时候,如果我们想往高级研发工程师方向走,一些底层的高级的东西我们得学会。


    浏览器与服务器通过http协议交互,其实就是相互之间传递一串特定格式的字符串。get参数,post参数,url,和cookie等信息其实都包含在这字符串里面。我们平时虽然没有怎么碰到这些底层的东西,其实是框架和tomcat这种软件帮我们处理了。

    就像平时一个重定向,其实就在header里面有一句Location: XXX。

    而我们平时声明返回的是html还是json其实是headers有一句Content-Type:XXX,一切神奇的功能其实仅仅是一段特定的字符串而已,所以http协议怎么可以不研究呢。

    nosql

    非关系型数据库有很多,例如memcached,redis,mongodb,coundb等。这些东西都有自己的适用场景,合理利用可以加快开发效率,对提高应用性能有很大的帮助的。

    消息中间件

    这种技术的出现是为了解耦,当我们业务过于庞大的时候,就会相应的拆分成几个小系统,系统之间的通讯往往是通过http协议调用和基于消息中间件。

    通过http协议有一个弊端,就是某个系统一旦修改了地址,那么就必须修改调用该服务的系统。如果通过消息中间件调用,那么应用如何迁移,也不会影响到别的系统。


     

    一点点话

    你跟所谓的大牛差距在哪里呢?我的看法是差距仅仅在于项目经验。

    也许你会说后端怎么需要学习这么多东西,并且年年都有新的技术出现怎么学呢?

    其实对于一种新技术,我们主要是要弄明白我们为什么要用这种技术,因为存在即合理,新技术的出现必然有自己的原因,所以新技术不一定要追求,但是底层建议要理解。然后什么海量数据和高并发下系统优化,一个原则,找到性能瓶颈并解决它而已。

    附录路线图

    最后,不管你是转行也好,初学也罢,进阶也可,如果你想学编程~

    【值得关注】我的 C/C++编程学习交流俱乐部!【点击进入】


     
  • 相关阅读:
    python 用 matplotlib 的 basemap 绘制简单世界地图
    python 安装 basemap
    python 茎叶图
    python 用 matplotlib 绘制复合饼图(子母图)
    python 分析世界高收入数据集
    python 用 matplotlib 绘制 南丁格玫瑰图步骤详解
    python 用 matplotlib 中的 patch 模块绘制几何形状(圆,椭圆,圆弧,锲形块,矩形),组装一个机器人图
    python 用 matplotlib 的 patch 模块绘制矩形,画一所房子
    国家统计局数据下载
    python 用 matplotlib 的 patch 模块绘制椭圆详解
  • 原文地址:https://www.cnblogs.com/huya-edu/p/14368798.html
Copyright © 2020-2023  润新知