intuitive understanding of backend dev

Post on 21-Jan-2017

140 Views

Category:

Internet

2 Downloads

Preview:

Click to see full reader

TRANSCRIPT

关于后端的⼀一些事情Intuitive Understanding of Backend Dev

⼩小拿@果壳2016.01.07

切⼊入点

⼀一、在做什么——解决什么问题 ⼆二、要怎么做——如何解决问题

Python、MySQL、ORM、MVC、RESTful、API、Shell、HTTP、TCP/IP、算法、

MongoDB、Flask、Socket、多线程、Docker、Vim......

⼀一、做什么

前提

语⾔言——个体的知识与经验积累

信息

⽂文字、印刷术、书籍——持久保存、跨越时间与空间的限制

信息

互联⺴⽹网——极⼤大地提⾼高了知识保存和获取的效率

信息

时间维度

空间维度

获取效率

互联⺴⽹网是什么

后端做什么:在互联⺴⽹网范围,实现信息⾼高效的存储与获取

⼤大脑延伸(⼈人——知识)

新的维度(⼈人——⼈人)

信息⾰革命的载体

⼆二、怎么做

三层结构

系统架构

编程

语⾔言⼯工具

设计图

施⼯工

建筑材料

Web系统 建筑⼯工程

实体

过程

思想

编程

• 什么是程序

• 什么是编程

程序是实体

程序 = 算法 + 数据结构

类⽐比

拼乐⾼高 = 图纸 + 积⽊木

写程序 = 算法 + 数据结构

编程是过程

⽰示例

排序 5,3,12,8,1,9

1,3,5,8,9,12

某个过程

系统架构• 特点

• ⺫⽬目标

• 模式

• ⽰示例

• 业务与权衡

• ⾼高并发、⼤大流量

• ⾼高可⽤用

• 海量数据

• ⽤用户分布⼲⼴广泛、⺴⽹网络情况复杂

• 需求快速变更、版本发布频繁

• 渐进式发展

特点

• 性能

• 可⽤用性(99.99%)

• 伸缩性

• 扩展性

• 安全性

⺫⽬目标

• 分层

• 分割

• 分布式

• 集群

• 缓存

• 异步

• 冗余

模式

⺴⽹网站架构演化

初始阶段

⺴⽹网站架构演化

应⽤用服务和数据服务分离

⺴⽹网站架构演化

加缓存

⺴⽹网站架构演化

使⽤用应⽤用服务器集群改善⺴⽹网站的并发处理能⼒力

⺴⽹网站架构演化

数据库读写分离

⺴⽹网站架构演化

使⽤用反向代理和CDN

⺴⽹网站架构演化

使⽤用分布式⽂文件系统和分布式数据库系统

⺴⽹网站架构演化

使⽤用NoSQL和搜索引擎

⺴⽹网站架构演化

业务拆分

业务与权衡

分布式酒店预订系统

语⾔言与⼯工具

• 后端技术栈

• 基于Python的Web技术栈

• 职位描述

技术栈• 语⾔言:C/C++/Python/PHP…

• ⺴⽹网络:TCP/IP/HTTP/socket/select/epoll/ …

• Linux:Shell/Vim/gcc/makefile/进程线程/IPC …

• Web服务器:Apache/Nginx …

• 数据存储:Mysql/Redis/Memcache/MongoDB …

• 质量控制:编码规范/单元测试/版本控制 …

• … …

Python的Web技术栈

职位描述(C++)

职位描述(Python)

三、区别

区别移动端 前端 后端

交互流程对象 ⽤用户 ⽤用户 数据

⽣生命周期 使⽤用⼀一次APP 使⽤用⼀一次Web ⼀一直运⾏行

运⾏行主体 ⽤用户端(⼿手机) ⽤用户端(PC) 服务器

⽤用户规模与程序复杂度 的关系

基本⽆无关 基本⽆无关 线性相关(乐观情况)

END

top related