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

2024-04-25 15:38

本文主要是介绍2019 - Web开发技术指南和趋势,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

640?wx_fmt=gif


来自:李棠辉
链接:https://segmentfault.com/a/1190000017483325


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

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

1、你不需要学习所有的技术成为一个web开发者

2、这个指南只是通过简单分类列出了技术选项

3、我将从我的经验和参考中给出建议

4、首选我们会介绍通用的知识, 最后介绍2019年的Web的一些趋势

1、基础前端开发者

1.1 HTML & CSS

640?wx_fmt=png

最基础的知识:

  • 语义化的HTML元素

  • 基础的CSS语法

  • Flexbox & Grid

  • CSS变量

  • 浏览器开发者工具


1.2 响应式布局

640?wx_fmt=png

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

  • 设置viewport

  • 非固定宽度

  • 媒体查询

  • 使用 rem 替代 px

  • 移动优先,柱状显示


1.3 基础的部署工作

640?wx_fmt=png

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

  • 注册一个域名(NameCheap, Google Domains)

  • 管理共享主机或虚拟机(Inmotion, Hostgator, Bluehost)

  • FTP, SFTP 文件上传(Filezilla, Cyberduck)

  • 静态页面托管(Netlify, Github Pages)


1.4 SASS预处理器

640?wx_fmt=png

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

  • 结构化CSS

  • 变量

  • 嵌套样式表

  • Minxins & 函数

  • 继承


1.5 原生JavaScript语法

640?wx_fmt=png

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

  • 数据类型, 函数, 条件判断, 循环, 凑总府

  • DOM操作和事件

  • JSON

  • Fetch

  • ES6+(箭头函数, Promise, async/await, 解构)


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

640?wx_fmt=png

  • 构建静态站点

  • 构建UI布局(拿到设计图能够使用HTML/CSS还原)

  • 添加一些交互功能

  • 部署和维护网站


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

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

2.1 HTML & CSS框架

640?wx_fmt=png

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

  • BootStrap

  • Materialize

  • Bulma


2.2 Git和其他工作流工具

640?wx_fmt=png

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

  • 基础的命令行( touchcdmkdir什么的总得会, 命令行在下面的工具中都会用到)

  • Git(版本控制)

  • NPM 或 Yarn(包管理)

  • Webpack 或者 Parcel(打包工具)

  • Gulp 或者 Grunt(任务管理和构建工具)

  • 编辑器插件(ESLint, Prettier, Live Server等)


2.3 前端框架

640?wx_fmt=png

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

  • 在大公司开发中非常流行

  • 更多的交互 & 有趣的UI组件

  • 组件化 & 模块化前端代码

  • 对团队有利


2.4 状态管理

640?wx_fmt=png

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

  • Redux(Context API)

  • Apollo(GraphQL Client)

  • Vuex

  • NgRx


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

640?wx_fmt=png

  • 构建一个优秀的前端应用

  • 流畅和稳定的前端工作流

  • 多人开发 & 熟练使用Git

  • 请求后端API & 前端数据响应


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

3、全栈开发工程师

3.1 学习一门后端语言

640?wx_fmt=png

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

学习的顺序:

  • 基础的后端语言语法

  • 数据结构和工作流

  • 包管理

  • HTTP/路由


3.2 服务端框架

640?wx_fmt=png

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

  • Node.js(Express, Koa, Adonis)

  • Python(Django, Flask)

  • PHP(Laravel, Symfony)

  • C# (ASP.NET)


3.3 数据库

640?wx_fmt=png

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

  • 关系型数据库(MySQL, PostgreSQL, MS SQL)

  • 非关系型数据库 (MongoDB, Counchbase)

  • 云服务 (Firebase, AWS, Azure, DocumentDB)

  • 轻量级(SQLite, NeDB, Redis)


3.4 服务端渲染

640?wx_fmt=png

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

  • Next.js(React)

  • Nuxt(Vue)

  • Angular Universal(Angular)


3.5 内容管理系统

640?wx_fmt=png

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

  • 基于PHP的 (Wordpress, Drupal)

  • 基于JS的 (Ghost, Keystone)

  • 基于Python的 (Mezzazine)

  • 基于.Net的 (Piranha, Orchard CMS)


3.6 DevOps 和部署

640?wx_fmt=png

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

  • 部署 (Linux, SSH, Git, Nginx, Apache)

  • 平台 (Digital Ocean, AWS, Heroku, Azure)

  • 可视化(Docker, Vagrant)

  • 测试 (单元测试, 集成测试, 函数式测试, 系统测试)


3.7 满足全栈工程师的条件

640?wx_fmt=png

  • 设置全栈的开发环境和工作流

  • 构建后端服务API和微服务

  • 数据库操作

  • 能够独立开发应用(前端和服务端)

  • 部署到云端(SSH, Git, Servers等等)

4、2019技术趋势和其他

4.1 原生应用开发

640?wx_fmt=png

  • React Native(使用React构建原生应用)

  • NativeScirpt(Angular, Typescript, JavaScript)

  • Ionic (HTML/CSS/JS 实现混合应用)

  • Flutter (使用Dart语言开发原生应用的移动端SDK)

  • Xamarin (使用C#开发的移动端应用)


4.2 使用Electron开发桌面应用

640?wx_fmt=png

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

  • 使用到了 Chromium内核和Node.js

  • 兼容Windows, Mac & Linux

  • 崩溃报告, 调试和性能分析


4.3 GraphQL & Apollo

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

640?wx_fmt=png

  • 只查询你想要的东西

  • 前端和后端可以合作得更为顺利

  • 查询语句非常简单且很像JSON语句

  • Apollo是一个发送请求到GraphQL的客户端

  • 使用的是Gatsby静态站点生成器


4.4 TypeScript

640?wx_fmt=png

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

  • 变量, 函数等类型

  • 其他ES6的特性

  • 在Angular中被使用到, 同时也可以在React和Vue中被使用


4.5 无服务架构

640?wx_fmt=png

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

  • 使用第三服务执行“无服务器功能”

  • 例如 AWS, Netify & Firebase

  • 在Gatsby静态站点生成器很流行

  • 无服务框架


4.6 AI和机器学习

640?wx_fmt=png

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

  • 机器学习可以允许Web应用程序随时间进行调整

  • 虽然AI还有很长的路要走, 但是我们会看到它会更多的用在web中

  • 虽然目前绝大多数都是Python写的, 但也有Tensorflow.js和Brain.js这些JS的库


4.7 区块链技术

640?wx_fmt=png

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

  • Solidity(一门智能合约的编程语言)

  • Mist(以太坊开发的浏览器, 用于发送交易和合约)

  • 比特币API(可以构建app和整和比特币的区块链开发)


4.8 PWA

640?wx_fmt=png

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

  • 响应式

  • 在离线环境下也能够提供服务

  • 类似App的交互

  • HTTPS

  • 可靠, 迅速, 更好


4.9 Web Assembly

640?wx_fmt=png

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

  • 比JavaScript执行效率快

  • 更安全 - 强制的浏览器同源和安全协议

  • 开放 & 可调试

640?wx_fmt=png

以上就是2019 - Web开发技术指南和趋势的全部内容, 要想知道更多细节, 请看Youtube视频: Web Development in 2019


640?wx_fmt=jpeg


这篇关于2019 - Web开发技术指南和趋势的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/935095

相关文章

Retrieval-based-Voice-Conversion-WebUI模型构建指南

一、模型介绍 Retrieval-based-Voice-Conversion-WebUI(简称 RVC)模型是一个基于 VITS(Variational Inference with adversarial learning for end-to-end Text-to-Speech)的简单易用的语音转换框架。 具有以下特点 简单易用:RVC 模型通过简单易用的网页界面,使得用户无需深入了

Java Web指的是什么

Java Web指的是使用Java技术进行Web开发的一种方式。Java在Web开发领域有着广泛的应用,主要通过Java EE(Enterprise Edition)平台来实现。  主要特点和技术包括: 1. Servlets和JSP:     Servlets 是Java编写的服务器端程序,用于处理客户端请求和生成动态网页内容。     JSP(JavaServer Pages)

Java 创建图形用户界面(GUI)入门指南(Swing库 JFrame 类)概述

概述 基本概念 Java Swing 的架构 Java Swing 是一个为 Java 设计的 GUI 工具包,是 JAVA 基础类的一部分,基于 Java AWT 构建,提供了一系列轻量级、可定制的图形用户界面(GUI)组件。 与 AWT 相比,Swing 提供了许多比 AWT 更好的屏幕显示元素,更加灵活和可定制,具有更好的跨平台性能。 组件和容器 Java Swing 提供了许多

BUUCTF靶场[web][极客大挑战 2019]Http、[HCTF 2018]admin

目录   [web][极客大挑战 2019]Http 考点:Referer协议、UA协议、X-Forwarded-For协议 [web][HCTF 2018]admin 考点:弱密码字典爆破 四种方法:   [web][极客大挑战 2019]Http 考点:Referer协议、UA协议、X-Forwarded-For协议 访问环境 老规矩,我们先查看源代码

基于UE5和ROS2的激光雷达+深度RGBD相机小车的仿真指南(五):Blender锥桶建模

前言 本系列教程旨在使用UE5配置一个具备激光雷达+深度摄像机的仿真小车,并使用通过跨平台的方式进行ROS2和UE5仿真的通讯,达到小车自主导航的目的。本教程默认有ROS2导航及其gazebo仿真相关方面基础,Nav2相关的学习教程可以参考本人的其他博客Nav2代价地图实现和原理–Nav2源码解读之CostMap2D(上)-CSDN博客往期教程: 第一期:基于UE5和ROS2的激光雷达+深度RG

EasyPlayer.js网页H5 Web js播放器能力合集

最近遇到一个需求,要求做一款播放器,发现能力上跟EasyPlayer.js基本一致,满足要求: 需求 功性能 分类 需求描述 功能 预览 分屏模式 单分屏(单屏/全屏) 多分屏(2*2) 多分屏(3*3) 多分屏(4*4) 播放控制 播放(单个或全部) 暂停(暂停时展示最后一帧画面) 停止(单个或全部) 声音控制(开关/音量调节) 主辅码流切换 辅助功能 屏

9.8javaweb项目总结

1.主界面用户信息显示 登录成功后,将用户信息存储在记录在 localStorage中,然后进入界面之前通过js来渲染主界面 存储用户信息 将用户信息渲染在主界面上,并且头像设置跳转,到个人资料界面 这里数据库中还没有设置相关信息 2.模糊查找 检测输入框是否有变更,有的话调用方法,进行查找 发送检测请求,然后接收的时候设置最多显示四个类似的搜索结果

JavaWeb【day09】--(Mybatis)

1. Mybatis基础操作 学习完mybatis入门后,我们继续学习mybatis基础操作。 1.1 需求 需求说明: 根据资料中提供的《tlias智能学习辅助系统》页面原型及需求,完成员工管理的需求开发。 通过分析以上的页面原型和需求,我们确定了功能列表: 查询 根据主键ID查询 条件查询 新增 更新 删除 根据主键ID删除 根据主键ID批量删除

利用Django框架快速构建Web应用:从零到上线

随着互联网的发展,Web应用的需求日益增长,而Django作为一个高级的Python Web框架,以其强大的功能和灵活的架构,成为了众多开发者的选择。本文将指导你如何从零开始使用Django框架构建一个简单的Web应用,并将其部署到线上,让世界看到你的作品。 Django简介 Django是由Adrian Holovaty和Simon Willison于2005年开发的一个开源框架,旨在简

web群集--nginx配置文件location匹配符的优先级顺序详解及验证

文章目录 前言优先级顺序优先级顺序(详解)1. 精确匹配(Exact Match)2. 正则表达式匹配(Regex Match)3. 前缀匹配(Prefix Match) 匹配规则的综合应用验证优先级 前言 location的作用 在 NGINX 中,location 指令用于定义如何处理特定的请求 URI。由于网站往往需要不同的处理方式来适应各种请求,NGINX 提供了多种匹