后端成长之路:从菜鸟到架构

有不少初学者问到,我想学习后端,但是又不知道该怎么学,所以我决定把这几年的经验和经历整理成一篇文章,分析后端的路该怎么走,先说明下面仅仅是个人心得,也许与外面的理论有所不同。(文章最后面会附上学习路线地图和一些自己看过的书籍)

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


后端初接触

后端首先需要学习的是html,css和js,也许你会问做网页不是前端做的事情吗?答案是对于真实开发环境后端很多时候还兼顾了前端这个角色,对于架构来说优化不仅仅要考虑后端还需要考虑前端。

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

语言选择

我相信过来人或者正在入门的人都碰到过这个世纪难题,如果你是初学者我建议您使用java。这里并不是说我喜欢java才推荐你们用java入门,而是java的思想对我们以后开发有很不错的启发。当你学会一种语言的基本语法就可以到下一步了(仅仅是语法,任意语言)。

hello world!

没错,这个时候,你得让浏览器可以看到hello world! 为了实现这个小目标,我们就需要根据语言配置不同的运行环境。由于入门,我建议可以使用一些集成的一键配置环境软件,例如php可以用phpstudy,java看看教程,下载一个tomcat然后跟eclipse集成就好,而python或则ruby则使用一个轻量级的web框架,copy一下官网提供的hello world!例子即可。

高级一些的hello world

这个阶段,你需要实现的是通过浏览器输入不同的网址,你可以输出不同的内容。然后要弄明白什么是get参数,什么是post参数。然后要实现根据不同get参数或者post参数输出不同内容。因为后端研发从根本上来说就是处理这些不同输入,输出特定的内容回去而已,所以这一步,最关键。

数据库

为什么我们要用数据库呢?以一个新闻网站为例,它要保存新闻数据,还得保存用户信息,也要保存评论信息。也许你会问用文件保存就好了,为何还要学习数据库这么庞大的东西呢?首先,我们来看一下什么是数据库,我们可以把数据库每一个table看成excel的sheet,每一个db就是一个excel文件。而sql语句就是一条条指令,可以帮我们操作里面的数据,可以节省我们大量的操作。开始学习数据库的时候,我建议学习mysql。

数据库

模板引擎

一项技术的出现,往往在于解决了一些开发难题。在没有模板引擎之前,我们得使用字符串拼接方式,弄成html字符串,但是这种方式很容易出错的。而模板引擎无需字符串拼接,并且可以处理字符串转义问题,并且模板集成,模板引用等功能,可以使代码可以重用,大大提高了开发效率,工程也更容易维护。

模板引擎

MVC框架

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

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

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

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

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

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

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

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

MVC框架有利于维护

Linux与应用部署

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

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

缓存

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

http协议

如果上面的你都接触了,恭喜您普通开发估计是没问题了,如果你说很多需求还是做不出,没关系,其实你只是缺乏开发经验而已,只要多写多请教,你就会发现,其实后端研发也没什么难度。这个时候,如果我们想往高级研发工程师方向走,一些底层的高级的东西我们得学会。

http协议

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

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

nosql

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

消息中间件

这种技术的出现是为了解耦,当我们业务过于庞大的时候,就会相应的拆分成几个小系统,系统之间的通讯往往是通过http协议调用和基于消息中间件。通过http协议有一个弊端,就是某个系统一旦修改了地址,那么就必须修改调用该服务的系统。如果通过消息中间件调用,那么应用如何迁移,也不会影响到别的系统。

消息中间件

一点点话

你跟所谓的大牛差距在哪里呢?我的看法是差距仅仅在于项目经验。也许你会说后端怎么需要学习这么多东西,并且年年都有新的技术出现怎么学呢?其实对于一种新技术,我们主要是要弄明白我们为什么要用这种技术,因为存在即合理,新技术的出现必然有自己的原因,所以新技术不一定要追求,但是底层建议要理解。然后什么海量数据和高并发下系统优化,一个原则,找到性能瓶颈并解决它而已。

附录

路线图

一个简单的学习路线图

书单(下面仅仅是一些个人以前看过的书籍,并不是推荐要看,个人建议看看哪种讲解核心的书籍,怎么制作比怎么用更总要)

LINUX操作系统(第2版)

LINUX指令范例速查手册

JSP & SERVLET学习笔记

STRUTS 2.X权威指南(第3版)

HTML 5从入门到精通

JAVA入门经典(第6版)

看透Spring MVC:源代码分析与实践

大型分布式网站架构设计与实践

Docker 容器与容器云

Python Cookbook(第3版)中文版

Go语言程序设计

MongoDB大数据处理权威指南(第2版)

NoSQL数据库技术实战

构建高可用Linux服务器(第3版)

大型网站技术架构 核心原理与案例分析

Linux运维之道

高性能MySQL(第3版)

Java核心技术 卷I

Java核心技术 卷II

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,293评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,604评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,958评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,729评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,719评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,630评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,000评论 3 397
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,665评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,909评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,646评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,726评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,400评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,986评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,959评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,996评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,481评论 2 342

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,424评论 25 707
  • 文/兵小蟹 很多次,在梦里,我都梦到黎水对我说,“小冰,你一定要幸福。” 这一刻,我终于踏上了去新疆的火车。 不只...
    旅行摄影杨小蟹阅读 1,561评论 53 64
  • 最近常听人讲,要保护好自己 心意我都明白,但具体要怎么做却搞不清楚,很多时候觉得像我这么愚笨的人,换工作才是最明智...
    云小5阅读 256评论 6 0
  • 工具篇 — 欲善其工必先利其器 前端的开发工具不胜其数,是个编辑器就能进行前端编程。当下比较主流的几款编辑,比如s...
    菜头他哥阅读 540评论 0 0
  • 01 中午,看见微博爆出刘洲成家暴。虽然对这个人、这个组合一点都不熟悉,但还是打开微博详细的查看了一系列关于他老婆...
    赫曼妮阅读 1,544评论 0 0