前端
定义
前端开发(Frontend Development)就是开发网页上的内容展示和与用户的交互。
- 内容展示:在网页上看到的图片、文字、视频、数字等信息
- 用户的交互:用户在页面通过点击按钮、输入文字等等动作对网站提供数据输入,然后前端对用户的输入进行响应,如:更新页面的内容。
前端的基础技术
HTML、CSS和JavaScript。它们分别用来控制网页的内容、视觉效果和用户交互。
- HTML:它并不是一门编程语言,它是一种用来定义结构化数据的标记语言。浏览器上的网页就是一个HTML文件。浏览器的职责之一就是通过你输入的网址,从网站上下载对应的HTML代码,并且把代码渲染成你肉眼看到的样子。是由很多尖括号和标签组成。
- CSS:用来指定每个HTML标签以什么样的外观和风格展示。长宽,位置、颜色、字体和显示属性等等。CSS的代码被浏览器读入,渲染成你想看到的效果。
- JavaScript:是前端中真正编程的部分。网页如何与用户交互,如何与后端交互都是通过JavaScript代码来实现的。JavaScript也是交给浏览器执行。JavaScript和Java没有半毛钱关系,就像印度和印度尼西亚,雷锋和雷峰塔一样,差的很远。
注意
然而在实际编程的过程中,通常不会重复造轮子,而是调用该语言现成的library来实现一些常用的功能,让开发过程更加高效。
JavaScript:流行的library:React和Vue。
后端
定义
后端开发(Backend Development):大部分的数据开发工作就是开发数据访问服务。使前端可以调用后端的服务对数据进行增、删、改、查。从而实现对前端的请求响应。
数据调用过程:
工作范畴:
- 设计后端服务的API
- 设计后端服务的架构图
- 设计后端服务的数据库
- 写代码实现后端服务的业务逻辑
注意
在开发的过程中还需要保证设计的服务器要能够承受很大的访问量。响应时间短,吞吐量高。
技术工具
后端服务器:每一个编程语言都有自己对应的框架(Web Framework)
- Java:Spring Boot和Fropwizard
- JavaScript:Express
- Python:Flask和Django
其实gRPC这个远程调用框架支持使用Java、Python、C++、Go等语言来开发。
数据库
最常用的是关系型数据库:如MySQL和PostgreSQL。
非关系型数据库:基于JSON 的MongoDB,基于LSM tree的LevelDB。
后端工程师为使后端的性能,比如响应时间,尽量少被数据库拖后腿:
- 比如使用MemCached缓存加速后端读取数据的速度
- 比如用Kafka把数据写入异步化,提升后端写数据的性能
全栈
定义
全栈开发(Full Stack),全栈就是全干,要能够自己构建和部署一个完整的、可以工作的Web App。能够独立编写前端、后端代码。能够配置服务器,还能够设计数据库。