这是一份让你在2019年成为前端、后端或全栈开发者的进阶指南:1.你不需要学习所有的技术成为Web开发者2.本指南只是列出了技术optionsbysimpleclassification3.我会根据我的经验和参考给出建议4.首先介绍常识,最后介绍2019年Web的一些趋势。最后,如果你在自学中遇到困难,想找一个前端学习环境,可以加入我们的前端学习圈,点我加入,会节省很多时间,减少很多学习中遇到的困难。1.前端开发者基础1.1HTML&CSS最基础知识:语义化HTML元素CSS基础语法Flexbox&GridCSS变量浏览器开发者工具1.2响应式布局响应式设计将不再是网页的加分项,有必要setviewportnon-fixedwidthmediaqueryusereminsteadofpxmobilefirst,columnardisplay1.3基本部署工作学习如何将静态网站部署到服务器注册域名(NameCheap,GoogleDomains)管理共享主机或虚拟机(Inmotion,Hostgator,Bluehost)FTP,SFTP文件上传(Filezilla,Cyber??duck)静态页面托管(Netlify,GithubPages)1.4虽然不需要SASS预处理器,但是建议学习,基础知识很简单,结构化CSS变量嵌入样式表集Minxins&函数继承1.5NativeJavaScriptsyntaximageimage不使用任何框架和库区学习原生JS语法数据类型、函数、条件判断、循环、聚合DOM操作和事件JSONFetchES6+(箭头函数、Promise、async/await,deconstruction)1.6满足前端开发者的基本要求imageimage构建静态站点构建UI布局(可以使用HTML/CSS还原设计图)增加一些交互功能部署维护网站现在可以找到最底层的web开发工作,但这还远远不够....2.一个成熟的前端开发者2.1HTML&CSS框架imageimageHTML/CSS框架没有以前那么有意义了,但我还是介意你选一个学(这里作者想表达的意思应该是jquery时代,HTML/CSS框架的学习是必须的)。BootStrapMaterializeBulma2.2Git和其他工作流工具imageimageGit绝对是每个web开发者必须掌握的工具,这里给其他工作流工具一些建议。基本的命令行(touch、cd、mkdir等必须会,命令会用到以下工具)Git(版本控制)NPM或Yarn(包管理)Webpack或Parcel(打包工具)Gulp或Grunt(任务管理和构建工具)编辑器插件(ESLint、Prettier、LiveServer等)2.3前端框架imageimage学习一个前端框架是当前前端开发的必修课。在大公司的开发中很受欢迎。更多交互和有趣的UI组件组件化和模块化。前端代码有利于团队。2.4状态管理imageimage很有用对于框架的大型前端项目,你可能需要使用状态管理工具来管理你的应用级状态Redux(ContextAPI)Apollo(GraphQLClient)VuexNgRx2.5满足一个成熟的前端开发者的条件imageimage顺利构建优秀的前端应用拥有稳定的前端工作流程和多人开发熟练使用Git请求后端API和前端数据响应满足以上有条件的话,就可以顺利找到前端的工作,做好~3.全栈开发工程师3.1学一门课程后端语言imageimage要成为全栈工程师或者软件工程师,你需要学习一个服务端语言及相关技术学习顺序:后端语言基本语法数据结构和工作流包管理HTTP/路由3.2服务端框架imageimage不重复造轮子,学习一个框架构建更好更快的应用程序Node.js(Express,Koa,Adonis)Python(Django,Flask)PHP(Laravel,Symfony)C#(ASP.NET)3.3数据库imageimage巨大大部分认为应用程序会用到数据库,这里有一些选项:关系数据库(MySQL,PostgreSQL,MSSQL)非关系型数据库(MongoDB,Cunchbase)云服务(Firebase,AWS,Azure,DocumentDB)轻量级(SQLite,NeDB,Redis)3.4服务器渲染image像React,Vue和Angular都可以执行服务器端渲染Next.js(React)Nuxt(Vue)AngularUniversal(Angular)3.5内容管理系统imageimage内容管理系统允许快速开发并为您的客户提供更新内容的能力。当您需要快速开发网站时,它们非常有用。特别是对于自由开发者。基于PHP(Wordpress、Drupal)基于JS(Ghost、Keystone)基于Python(Mezzazine)基于.Net(Piranha、OrchardCMS)3.6DevOps和部署image学习语言和框架是一回事,但是安装环境、测试和部署是另一回事Deployment(Linux,SSH,Git,Nginx,Apache)platform(DigitalOcean,AWS,Heroku,Azure)visual(Docker,Vagrant)testing(unittesting,integrationtesting,functionaltesting,systemtesting)3.7满足全栈工程师的条件imageimage搭建全栈开发环境和工作流程搭建后端服务API和微服务数据库运营可以独立开发应用(前端和服务端)并部署到云端(SSH,Git,Servers等)4,2019技术趋势及其他4.1原生应用开发imageimageReactNative(使用React构建原生应用)NativeScript(Angular,Typescript,JavaScript)Ionic(HTML/CSS/JS实现混合应用)Flutter(使用Dart语言为原生应用开发移动SDK)Xamarin(使用C#开发移动应用)4.2使用Electron开发桌面应用imageimageElectron是一个使用JavaScript构建的跨平台应用桌面应用工具。使用Chromium内核和Node.js兼容Windows,Mac&LinuxCrashreporting,debuggingandperformanceanalysis4.3GraphQL&ApolloGraphQl是一种革命性的API新方法,查询语言比标准的RESETimageimageonlyQuerywhatyouwant的前端和后端可以更流畅的配合查询语句很简单,看起来像JSONSentenceApollo是一个使用Gatsby静态站点生成器向GraphQL发送请求的客户端4.4TypeScriptimageimageTypeScript是JavaScript的超集,增加了静态类型等许多特性。变量、函数等类型类等ES6特性在Angular中使用,也可以在React和Vue4.5Serverless架构中使用imageimage无需创建和管理自己的服务器使用第三方服务执行“无服务器功能”等作为AWS、Netify&Firebase流行的Gatsby静态站点生成器ServerlessFramework4.6AI和机器学习imageimageAI和机器学习已经广泛应用于所有程序和技术,甚至在Web开发中。机器学习可以让web应用程序随着时间的推移而适应,虽然AI离围棋还有很长的路要走,但我们会看到它会在web中得到更多的使用。虽然目前大部分都是用Python写的,但也有Tensorflow.js、Brain.js等JS库。4.7区块链技术imageimage现在很多公司都使用区块链技术进行数字交易,因为它们更安全、更高效。Solidity(一种用于智能合约的编程语言)Mist(一种由以太坊开发的用于发送交易和合约的浏览器)BitcoinAPI(您可以构建应用程序和Integration以及比特币区块链开发)4.8PWAimageimageProgressiveWebApps是一个web应用程序,但它是一种为用户带来的技术在功能和风格方面的原生应用程序体验。Responsive也可以在离线环境下提供类似于App的服务交互HTTPS可靠、快速、更好4.9WebAssemblyimageimage类似于程序集的二进制格式的代码可以被浏览器执行。可以用C/C++、Rust等高级语言编写。比JavaScript强制执行浏览器更快更安全同质安全协议开放可调试
