2019 年 Web 开发技术指南和趋势

2019/01/23 · JavaScript · 趋势

转载:原文出处: 李棠辉(http://web.jobbole.com/95622/)   

以下内容来自我特别喜欢的一个Youtube频道: Traversy Media

这是一个2019年你成为前端,后端或全栈开发者的进阶指南:

  1. 你不需要学习所有的技术成为一个web开发者
  2. 这个指南只是通过简单分类列出了技术选项
  3. 我将从我的经验和参考中给出建议
  4. 首选我们会介绍通用的知识, 最后介绍2019年的Web的一些趋势

1. 基础前端开发者

1.1 HTML & CSS

最基础的知识:

  • 语义化的HTML元素
  • 基础的CSS语法
  • Flexbox & Grid
  • CSS变量
  • 浏览器开发者工具

1.2 响应式布局

响应式设计将不再是网页的加分项, 而是必须的

  • 设置viewport
  • 非固定宽度
  • 媒体查询
  • 使用 rem 替代 px
  • 移动优先,柱状显示

1.3 基础的部署工作

学会如何部署一个静态网站到服务器

  • 注册一个域名(NameCheap, Google Domains)
  • 管理共享主机或虚拟机(Inmotion, Hostgator, Bluehost)
  • FTP, SFTP 文件上传(Filezilla, Cyberduck)
  • 静态页面托管(Netlify, Github Pages)

1.4 SASS预处理器

虽然不是必须的, 但是推荐去学, 基础知识的掌握很简单

  • 结构化CSS
  • 变量
  • 嵌套样式表
  • Minxins & 函数
  • 继承

1.5 原生JavaScript语法

不使用任何框架和库区学习原生的JS语法

  • 数据类型, 函数, 条件判断, 循环, 凑总府
  • DOM操作和事件
  • JSON
  • Fetch
  • ES6+(箭头函数, Promise, async/await, 解构)

1.6 满足了基本的前端开发者的条件

  • 构建静态站点
  • 构建UI布局(拿到设计图能够使用HTML/CSS还原)
  • 添加一些交互功能
  • 部署和维护网站

现在能找到最低水平的Web开发工作, 但是这是远远不够的….

2. 一个成熟的前端开发者

2.1 HTML & CSS框架

HTML/CSS框架目前没有以前那么有意义, 但是我还是介意你选择一个学习(这里作者想隐射的应该是, 在jquery时代, HTML/CSS框架的学习是必须的).

  • BootStrap
  • Materialize
  • Bulma

2.2 Git和其他工作流工具

Git绝对是每一个Web开发者必须掌握的工具, 这里也有一些其他的工作流工具的建议.,

  • 基础的命令行(touchcdmkdir什么的总得会, 命令行在下面的工具中都会用到)
  • Git(版本控制)
  • NPM 或 Yarn(包管理)
  • Webpack 或者 Parcel(打包工具)
  • Gulp 或者 Grunt(任务管理和构建工具)
  • 编辑器插件(ESLint, Prettier, Live Server等)

2.3 前端框架

学习一个前端框架在目前前端开发中是必须的.

  • 在大公司开发中非常流行
  • 更多的交互 & 有趣的UI组件
  • 组件化 & 模块化前端代码
  • 对团队有利

2.4 状态管理

对于使用框架的大型前端项目, 你也许需要使用状态管理工具去管理你的应用级的状态

  • Redux(Context API)
  • Apollo(GraphQL Client)
  • Vuex
  • NgRx

2.5 满足一个成熟的前端开发者条件

  • 构建一个优秀的前端应用
  • 流畅和稳定的前端工作流
  • 多人开发 & 熟练使用Git
  • 请求后端API & 前端数据响应

满足以上条件, 你能够顺利的找到一个前端的工作并干得很出色~

3 全栈开发工程师

3.1 学习一门后端语言

成为一个全栈工程师或软件工程师, 你将需要学习一个服务端语言和相关技术

  • Node.js
  • Python
  • PHP
  • C#
  • Go

学习的顺序:

  • 基础的后端语言语法
  • 数据结构和工作流
  • 包管理
  • HTTP/路由

3.2 服务端框架

不要重复造轮子, 学习一门框架去构建更好和更快的应用

  • Node.js(Express, Koa, Adonis)
  • Python(Django, Flask)
  • PHP(Laravel, Symfony)
  • C# (ASP.NET)

3.3 数据库

绝大多数觉得应用都会使用到数据库, 这里有一些选择:

  • 关系型数据库(MySQL, PostgreSQL, MS SQL)
  • 非关系型数据库 (MongoDB, Counchbase)
  • 云服务 (Firebase, AWS, Azure, DocumentDB)
  • 轻量级(SQLite, NeDB, Redis)

3.4 服务端渲染

像React, Vue 和 Angular等端架都可以进行服务端渲染

  • Next.js(React)
  • Nuxt(Vue)
  • Angular Universal(Angular)

3.5 内容管理系统

内容管理系统允许快速开发并为您的客户提供更新内容的能力. 在你需要快速开发网站的时候, 它们是很适合的. 特别是对于自由开发者.

  • 基于PHP的 (WordPress, Drupal)
  • 基于JS的 (Ghost, Keystone)
  • 基于Python的 (Mezzazine)
  • 基于.Net的 (Piranha, Orchard CMS)

3.6 DevOps 和部署

学习语言和框架是一回事, 但是安装环境, 测试和部署有事另外一回事

  • 部署 (Linux, SSH, Git, Nginx, Apache)
  • 平台 (Digital Ocean, AWS, Heroku, Azure)
  • 可视化(Docker, Vagrant)
  • 测试 (单元测试, 集成测试, 函数式测试, 系统测试)

3.7 满足全栈工程师的条件

  • 设置全栈的开发环境和工作流
  • 构建后端服务API和微服务
  • 数据库操作
  • 能够独立开发应用(前端和服务端)
  • 部署到云端(SSH, Git, Servers等等)

4. 2019技术趋势和其他

4.1原生应用开发

  • React Native(使用React构建原生应用)
  • NativeScirpt(Angular, Typescript, JavaScript)
  • Ionic (HTML/CSS/JS 实现混合应用)
  • Flutter (使用Dart语言开发原生应用的移动端SDK)
  • Xamarin (使用C#开发的移动端应用)

4.2 使用Electron开发桌面应用

Electron是一个使用JavaScript构建跨平台的桌面应用工具.

  • 使用到了 Chromium内核和Node.js
  • 兼容Windows, Mac & Linux
  • 崩溃报告, 调试和性能分析

4.3 GraphQL & Apollo

GraphQl是对于API的一种革命性新方法,查询语言比标准RESET严格得多

  • 只查询你想要的东西
  • 前端和后端可以合作得更为顺利
  • 查询语句非常简单且很像JSON语句
  • Apollo是一个发送请求到GraphQL的客户端
  • 使用的是Gatsby静态站点生成器

4.4 TypeScript

TypeScript是一个JavaScript的超集, 它添加了静态类型等很多特性.

  • 变量, 函数等类型
  • 其他ES6的特性
  • 在Angular中被使用到, 同时也可以在React和Vue中被使用

4.5 无服务架构

无需创建和管理自己的服务器

  • 使用第三服务执行“无服务器功能”
  • 例如 AWS, Netify & Firebase
  • 在Gatsby静态站点生成器很流行
  • 无服务框架

4.6 AI和机器学习

AI和机器学习已经被广泛应用在所有的程序和技术中, 甚至包括web开发中.

  • 机器学习可以允许Web应用程序随时间进行调整
  • 虽然AI还有很长的路要走, 但是我们会看到它会更多的用在web中
  • 虽然目前绝大多数都是Python写的, 但也有Tensorflow.js和Brain.js这些JS的库

4.7 区块链技术

现在许多公司使用区块链技术进行数字交易, 因为它们更安全和有效率.

  • Solidity(一门智能合约的编程语言)
  • Mist(以太坊开发的浏览器, 用于发送交易和合约)
  • 比特币API(可以构建app和整和比特币的区块链开发)

4.8 PWA

Progressive Web Apps是一个web app但是在功能和样式上给用户带来原生应用使用体验的一项技术.

  • 响应式
  • 在离线环境下也能够提供服务
  • 类似App的交互
  • HTTPS
  • 可靠, 迅速, 更好

4.9 Web Assembly

类似汇编的二进制格式的代码可以被浏览器执行. 可以使用类似C/c++和Rust等高级语言进行编写.

  • 比JavaScript执行效率快
  • 更安全 – 强制的浏览器同源和安全协议
  • 开放 & 可调试

Web前端 web的学习之路2的更多相关文章

  1. web前端全栈学习之路

    web前端全栈学习之路 --- 陆续更新中 一.HTML相关 1.HTML常用标签:http://www.cnblogs.com/wyb666/p/8733699.html 2.HTML5基础: 3. ...

  2. 新手学习WEB前端流程以及学习中常见的误区

    学习web前端编程技术肯定是以就业拿到高薪工作为主要目的的,可是高薪不会那么轻易拿到,这是一个最简单的道理.没有付出就没有回报,在整个学习web前端编程技术的过程中,你需要付出时间.精力.金钱.废话不 ...

  3. web前端基础知识学习网站推介

    内容:一.基础知识及学习资料1. HTML入门学习:http://www.w3school.com.cn/html/index.aspHTML5 入门学习:http://www.w3school.co ...

  4. Web前端 web的学习之路

    零基础学习web前端的顺序 ( 转载自:https://blog.csdn.net/weixin_41780944/article/details/83751632) 怎么开始学习两条路:自学或者找培 ...

  5. 我的web前端整理和学习

    知识点收藏:(边看.边记录.边写) 开直播学习:虎牙 待办事理>> 练习自我表达(把文章做成视频).技术学习总结(博客与公众号).跳出舒适圈. 前端知识体系:https://www.cnb ...

  6. web前端的超神之路

    前端超神之路 前端基础知识 HTML :用户实现页面的工具 CSS:用于美化界面的工具 javascript:用于操作html元素和css样式,让你的页面效果更美观 前端进阶知识 jQuery:用于简 ...

  7. 浅谈web前端就业的学习路线

    初级前端 主要学习三个部分:HTML,CSS,JavaScript 一.html + css部分: 这部分特别简单,到网上搜资料,书籍视频非常多.css中盒子模型,流动,block,inline,层叠 ...

  8. 初学者:浅谈web前端就业的学习路线

    初级前端 主要学习三个部分:HTML,CSS,JavaScript 一.html + css部分: 这部分特别简单,到网上搜资料,书籍视频非常多.css中盒子模型,流动,block,inline,层叠 ...

  9. Web前端新手经典学习路线

    做前端开发八九年的时间,到2015年的时候,Web前端因为HTML5技术的高速发展,成为IT行业中最受欢迎和未来需求人才发展最好的职业,各个行业都想转行做前端开发,包括一些在校的学生,土木工程,一些不 ...

  10. 小白到web前端工程师需要学习哪些知识?

    随着web3.0时代,那么web前端开发技术人才越来越吃香,而且web前端领域划分越来越细,对技术的需求越来越高,想学习web前端的人也是越来越多.那么,如何学习web前端知识?从哪开始?转型成为we ...

随机推荐

  1. WebGL展示3D房屋内景

      原文地址:WebGL展示3D房屋内景   由于生活和工作上的原因,从年前开始一直到处奔波,没有太多的时间去关注和学习WebGL图形学相关的技术, 不过陆陆续续都有学习使用blender进行3D建模 ...

  2. 第13章 Base64 URL编码 - IdentityModel 中文文档(v1.0.0)

    JWT令牌使用Base64 URL编码进行序列化. IdentityModel包括Base64Url帮助编码/解码的类: var text = "hello"; var b64ur ...

  3. css公共库——清除浮动

    清除浮动是css的基础,但有时候会忘了一些最简单的东西 浮动因为在文档流之外,所以会造成父元素的坍塌.父元素之后的元素排版就会乱. 常用的方法是在浮动父元素中添加cf类,然后定义cf样式,并将其放在公 ...

  4. Odoo开源ERP:功能模块操作-销售功能篇

    客户基础资料 1. 所有的客户基础资料,智云ERP开账启用时,期初的客户数据如果大于200条,可以批量导入: 2. 点“销售/订单/客户”菜单可以查看.编辑修改.搜索所有的客户基础资料: 3. 多层级 ...

  5. Android音视频之AudioTrack播放音频(二)

    前一篇讲了如何录制wav音频文件,本篇就来讲讲如何播放wav文件,这里就是使用AudioTrack来播放音频,确切的说是播放pcm格式数据,使用AudioTrack播放也没什么难度,主要就是将数据写入 ...

  6. kafka 幂等生产者及事务(kafka0.11之后版本新特性)

    1. 幂等性设计1.1 引入目的生产者重复生产消息.生产者进行retry会产生重试时,会重复产生消息.有了幂等性之后,在进行retry重试时,只会生成一个消息. 1.2 幂等性实现1.2.1 PID ...

  7. Python学习日记(一):拜见小主——Python

    近日学习Python,特将学习过程及一点心得记录于此. 由于之前做过一个Java爬虫的项目,虽然很长时间没有碰过爬虫,但是小郭同学有一颗不死的爬虫心,哈哈.最近在互联网上找一些电影的时候,有很多电影只 ...

  8. MYSQL如何计算两个日期间隔天数

    如何透过MYSQL自带函数计算给定的两个日期的间隔天数   有两个途径可获得   1.利用TO_DAYS函数   select to_days(now()) - to_days('20120512') ...

  9. ABP学习笔记总汇

    首先立下一个目标,未来一段时间开始学习ABP. 先立一个flag.之后会再次更新目录和文章连接 目录 1.ABP学习笔记(1)-使用mysql

  10. asp.net core导出导入excel

    使用NPOI导入导出excel,已经封装好Action可以直接调用 导出 效果图 使用方法 定义导出实体 class Student { public int Id { get; set; } pub ...