热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

程序员练级攻略(2018):前端机能优化和框架

这个是我定阅陈皓先生在极客上的专栏《左耳听风》,我整理出来是为了本身方便进修,同时也分享给你们一同进修,固然假如有兴致,能够去定阅,为了防止广告怀疑,我这就不多说了!以下第一人称是

《程序员练级攻略(2018):前端机能优化和框架》

这个是我定阅 陈皓先生在极客上的专栏《左耳听风》,我整理出来是为了本身方便进修,同时也分享给你们一同进修,固然假如有兴致,能够去定阅,为了防止广告怀疑,我这就不多说了!以下第一人称是指陈皓先生。

想浏览更多优良文章请猛戳GitHub博客,一年百来篇优良文章等着你!

前端机能优化

首先是引荐几本前端机能优化方面的图书。

  • Web Performance in Action ,这本书现在国内没有卖的。你能够看电子版本,我以为是一本很不错的书,个中有 CSS、图片、字体、Javascript 机能调优等。
  • Designing for Performance ,这本在线的电子书很不错,个中讲了许多网页优化的手艺和相干的东西,能够让你对团体网页机能优化有所相识。
  • High Performance Javascript ,这本书在国内能够买到,能让你相识怎样提拔各方面的机能,包含代码的加载、运转、DOM 交互、页面生计周期等。雅虎的前端工程师尼古拉斯·扎卡斯(Nicholas C. Zakas)和其他五位 Javascript 专家引见了页面代码加载的最好要领和编程妙技,来协助你编写越发高效和疾速的代码。你还会相识到构建和布置文件到临盆环境的最好实践,以及有助于定位线上题目的东西。
  • High Performance Web Sites: Essential Knowledge for Front-End Engineers ,这本书国内也有卖,翻译版为《高机能网站竖立指南:前端工程师妙技精华》。作者给出了 14 条详细的优化准绳,每一条准绳都配以类型左证,并供应了在线支撑。

全书内容丰富,主要包含削减 HTTP 要求、Edge Computing 手艺、Expires Header 手艺、gzip 组件、CSS 和 Javascript 最好实践、主页内联、Domain 最小化、Javascript 优化、防止重定向的妙技、删除反复 Javascript 的妙技、封闭 ETags 的妙技、Ajax 缓存手艺和最小化手艺等。

  • 除了上面这几本书以外,Google 的 Web Fundamentals 里的 Performance 这一章节也有许多异常不错的学问和履历。
  • 接下来是一些最好实践性的文档。
  • Browser Diet ,前端威望机能指南(中文版)。这是一群为大型站点事情的专家们竖立的一份前端机能的事情指南。
  • PageSpeed Insights Rules ,谷歌给的一份机能指南和最好实践。
  • Best Practices for Speeding Up Your Web Site ,雅虎公司给的一份 7 个分类共 35 个最好实践的文档。

接下来,重点引荐一个机能优化的案例进修网站 WPO Stats 。WPO 是 Web Performance Optimization 的缩写,这个网站上有许多很不错的机能优化的案例分享,肯定能够协助你许多。

然后是一些文章和案例。

  • A Simple Performance Comparison of HTTPS, SPDY and HTTP/2 ,这是一篇比较浏览器的 HTTPS、SPDY 和 HTTP/2 机能的文章,除了比较以外,还能够让你相识一些手艺细节。
  • 7 Tips for Faster HTTP/2 Performance ,关于 HTTP/2 来讲,Nginx 公司给出的 7 个增添其机能的小提示。
  • Reducing Slack’s memory footprint ,Slack 团队削减内存运用量的实践。
  • Pinterest: Driving user growth with performance improvements ,Pinterest 关于机能调优的一些分享,个中包含了前后端的一些机能调优实践。实在也是一些比较通用的弄法,这篇文章重假如想让前端的同砚相识一下怎样做团体的机能调优。
  • 10 Javascript Performance Boosting Tips ,10 个进步 Javascript 运转效力的小提示,挺有效的。
  • Getting started with the Picture Element ,这篇文章报告了 Responsive 规划所带来的一些负面的题目。重假如图象适配的题目,个中引出了一篇文章”Native Responsive Images” ,值得一读。
  • Improve Page Load Times With DNS Prefetching ,这篇文章教了你一个怎样下降 DNS 剖析时候的小手艺——DNS prefetching。
  • Jank Busting for Better Rendering Performance ,这是一篇 Google I/O 上的分享,关于前端动画衬着机能提拔。
  • Javascript Memory Profiling ,这是一篇谷歌官方教你怎样运用 Chrome 的开辟东西来剖析 Javascript 内存题目的文章。

接下来是一些机能东西。在线机能测试剖析东西太多,这里只引荐比较威望的。

  • PageSpeed ,谷歌有一组 PageSpeed 东西来协助你剖析和优化网站的机能。Google 出品的,质量相称有保证。
  • YSlow ,雅虎的一个网页剖析东西。
  • GTmetrix ,是一个将 PageSpeed 和 YSlow 兼并起来的一个网页剖析东西,而且加上一些 Page load 或是别的的一些剖析。也是一个很不错的剖析东西。
  • Awesome WPO ,在 GitHub 上的这个 Awesome 中,你能够找到更多的机能优化东西和资本。

别的,中国的网络有种种题目(你懂的),所以,你不能运用 Google 同享的 Javascript 链接来提速,你得用中国本身的。你能够到这里看看中国的同享库资本,Forget Google and Use These Hosted Javascript Libraries in China 。

前端框架

接下来,要进修的是 Web 前端的几大框架。现在而言,前端社区有三大框架 Angular.js、React.js 和 Vue.js。我以为,React 和 Vue 越发强劲一些,所以,我这里只写和 React 和 Vue 相干的攻略。关于二者的比较,网上有很多文章。我这里引荐几篇我以为还不错的,供你参考。

  • Angular vs. React vs. Vue: A 2017 comparison
  • React or Vue: Which Javascript UI Library Should You Be Using?
  • ReactJS vs Angular5 vs Vue.js - What to choose in 2018?

实在,比较这些框架的优缺点另有利害并非要比出个胜负,而是让你相识一下差别框架的优缺点。我以为,这些框架都是能够进修的。而在我们生涯事情中详细要用哪一个框架,最好照样要有一些起点,比方,你是为了找份好的事情,为了疾速地搭一个网站,为了革新一个大规模的前端体系,照样地道地为了进修……

差别的目的会致使差别的决议。我并不愿望上述的这些比较会让你进入”二选一”或是”三选一”的田地。我只是想经由历程这些文章让你晓得这些框架的设想思绪和完成道理,这些才是让你受益一生的事。

React.js 框架

下面先来进修一下 React.js 框架。

入门

React 学起来并不庞杂,就看 React 官方教程 和其文档就好了( React 的中文教程 )。

然后,下面的文章会带你相识一下 React.js 的基本道理。

  • All the fundamental React.js concepts ,这篇文章讲了一切的 React.js 的基本道理。
  • Learn React Fundamentals and Advanced Patterns ,这篇文章中有几个短视频,每一个视频不凌驾 5 分钟,是进修 React 的一个很不错的处所。
  • Thinking in React,这篇文章将指导你完成运用 React 构建可搜刮产物数据表的思索历程。

进步

进修一个手艺最主要的是要学到个中的头脑和要领。下面是一些我以为进修 React 中最主要的东西。

  • 状况,关于富客户端来讲是异常贫苦也是坑最多的处所,这里有几篇文章你能够一读。

    • Common React.js mistakes: Unneeded state ,React.js 编程的罕见毛病——不必要的状况。
    • State is an Anti-Pattern ,关于怎样做一个不错的组件的思索,很有协助。
    • Why Local Component State is a Trap ,一些关于 “Single state tree” 的主意。
    • Thinking Statefully ,几个很不错的例子让你对声明式的有状况的手艺有更好的明白。
    • 传统上,处理 React 的状况题目平常用 Redux。在这里引荐 Tips to learn React + Redux in 2018 。Redux 是一个状况粘合组件,平常来讲,我们会用 Redux 来做一些数据状况和其上层 Component 上的同步。这篇教程很不错。
    • 末了是 “State Architecture Patterns in React ” 系列文章,异常值得一读。
    • Part 1: A Review
    • Part 2: The Top-Heavy Architecture, Flux and Performance
    • Part 3: Articulation Points, zine and An Overall Strategy
    • Part 4: Purity, Flux-duality and Dataflow
  • 函数式编程。从 jQuery 过来的同砚肯定异常不习气 React,而从 Java 等后端过来的程序员就会很习气了。所以,我以为 React 就是后端职员开辟的,或许说是做函数式编程的人开辟的。对此,你须要进修一下 Javascript 函数式编程的东西。

    这里引荐一本免费的电子书 《Professor Frisby’s Mostly Adequate Guide to Functional Programming》,个中译版为《JS 函数式编程指南中文版》。

    下面有几篇文章异常不错。前两篇和函数式编程有关的文章异常值得一读。后三篇是一些比较有用的函数式编程和 React 连系的文章。

    • Master the Javascript Interview: What is Functional Programming?
    • The Rise and Fall and Rise of Functional Programming (Composing Software)
    • Functional UI and Components as Higher Order Functions
    • Functional Javascript: Reverse-Engineering the Hype
    • Some Thoughts on Function Components in React
  • 设想相干。接下来是进修一些 React 的设想形式。React Pattern 是一个不错的进修 React 形式的处所。除此以外,另有以下的一些不错的文章也会对你很有协助的。

    • React Higher Order Components in depth
    • Presentational and Container Components
    • Controlled and uncontrolled form inputs in React don’t have to be complicated
    • Function as Child Components
    • Writing Scalable React Apps with the Component Folder Pattern
    • Reusable Web Application Strategies
    • Characteristics of an Ideal React Architecture
  • 实践和履历

    另有一些不错的实践和履历。

    • 9 things every React.js beginner should know
    • Best practices for building large React applications
    • Clean Code vs. Dirty Code: React Best Practices
    • How to become a more productive React Developer
    • 8 Key React Component Decisions

资本列表

末了就是 React 的资本列表。

  • Awesome React ,这是一些 React 相干资本的列表,很大很全。
  • React/Redux Links ,这也是 React 相干的资本列表,与上面不一样的是,这个列表主要网络了大批的文章,个中报告了许多 React 学问和手艺,比上面的列表好许多。
  • React Rocks ,这个网站主要网络种种 React 的组件示例,能够让你大开眼界。

Vue.js 框架

Vue 多是一个更相符前端工程师习气的框架。不像 React.js 那样运用函数式编程体式格局,是后端程序员的思绪。

  • 经由历程文章 “Why 43% of Front-End Developers want to learn Vue.js” ,你能够看出其编程体式格局和 React 是天差地别的,相符传统的前端开辟的头脑体式格局。
  • 经由历程文章 Replacing jQuery With Vue.js: No Build Step Necessary ,我们能够看到,从 jQuery 是能够腻滑过渡到 Vue 的。
  • 别的,我们能够经由历程 “10 things I love about Vue” ,相识 Vue 的一些比较优异的特征。

最令人高兴的是,Vue 的作者是我的好朋友尤雨溪(Evan You),近来一次对他的采访 “Vue on 2018 - Interview with Evan You” 当中有许多故事以及对 Vue 的瞻望。(注重:Vue 是完全由其支撑者和用户赞助的,这意味着它更靠近社区而不受大公司的掌握。)

要进修 Vue 并不难,我以为上官网看文档( Vue 官方文档( 中文版)),照着搞一搞就可以够很快上手了。Vue.js screencasts 是一个很不错的英文视频教程。

别的,引荐 新手向:Vue 2.0 的发起进修递次 ,这是 Vue 作者写的,所以有特别意义。

Vue 确实比较简单,有 Web 开辟履历的人上手也比较快,所以这里也不会像 React 那样给出许多的材料。下面是一些我以为还不错的内容,引荐给你。

  • How not to Vue ,任何手艺都有坑,相识 Vue 的短板,你就可以扬长避短,就可以用得更好。
  • Vue.js Component Communication Patterns
  • 4 AJAX Patterns For Vue.js Apps
  • How To (Safely) Use A jQuery Plugin With Vue.js
  • 7 Ways To Define A Component Template in Vue.js
  • Use Any Javascript Library With Vue.js
  • Dynamic and async components made easy with Vue.js

固然,末了肯定另有 Awesome Vue ,Vue.js 里最为庞大最为优异的资本列表。

小结

总结一下本日的内容。我先引见的是前端机能优化方面的内容,引荐了图书、最好实践性的文档、案例,以及一些在线机能测试剖析东西。随后重点报告了 React 和 Vue 两大前端框架,给出了大批的文章、教程和相干资本列表。我以为,React.js 运用函数式编程体式格局,越发相符后端程序员的思绪,而 Vue 是更相符前端工程师习气的框架。因而,二者比较起来,Vue 会更轻易上手一些。

以上是陈皓先生分享的,连系上一篇实在内容是许多的,这个不是一时就可以看完的,假如你不想当一生的码农,不只只是搬砖的,那我们目的是更具有制造的工程师,架构师,这些内容是值得我们花10年、20年,以至一身要去进修的,愿望人人有好东西也分享出来一同进修哈!

ps: 假如你想成为一位高等的程序员(工程师),英文才能是不可缺乏的,日常平凡也须要增强英文的进修!

你的点赞是我延续分享好东西的动力,迎接点赞!

交换

干货系列文章汇总以下,以为不错点个Star,迎接 加群 互相进修。

https://github.com/qq44924588…

我是小智,民众号「大迁天下」作者,对前端手艺坚持进修爱好者。我会常常分享本身所学所看的干货,在进阶的路上,共勉!

关注民众号,背景复兴福利,即可看到福利,你懂的。

《程序员练级攻略(2018):前端机能优化和框架》


推荐阅读
  • 本文由编程笔记#小编为大家整理,主要介绍了logistic回归(线性和非线性)相关的知识,包括线性logistic回归的代码和数据集的分布情况。希望对你有一定的参考价值。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • 解决Cydia数据库错误:could not open file /var/lib/dpkg/status 的方法
    本文介绍了解决iOS系统中Cydia数据库错误的方法。通过使用苹果电脑上的Impactor工具和NewTerm软件,以及ifunbox工具和终端命令,可以解决该问题。具体步骤包括下载所需工具、连接手机到电脑、安装NewTerm、下载ifunbox并注册Dropbox账号、下载并解压lib.zip文件、将lib文件夹拖入Books文件夹中,并将lib文件夹拷贝到/var/目录下。以上方法适用于已经越狱且出现Cydia数据库错误的iPhone手机。 ... [详细]
  • 本文介绍了lua语言中闭包的特性及其在模式匹配、日期处理、编译和模块化等方面的应用。lua中的闭包是严格遵循词法定界的第一类值,函数可以作为变量自由传递,也可以作为参数传递给其他函数。这些特性使得lua语言具有极大的灵活性,为程序开发带来了便利。 ... [详细]
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • Java实战之电影在线观看系统的实现
    本文介绍了Java实战之电影在线观看系统的实现过程。首先对项目进行了简述,然后展示了系统的效果图。接着介绍了系统的核心代码,包括后台用户管理控制器、电影管理控制器和前台电影控制器。最后对项目的环境配置和使用的技术进行了说明,包括JSP、Spring、SpringMVC、MyBatis、html、css、JavaScript、JQuery、Ajax、layui和maven等。 ... [详细]
  • 本文介绍了使用Java实现大数乘法的分治算法,包括输入数据的处理、普通大数乘法的结果和Karatsuba大数乘法的结果。通过改变long类型可以适应不同范围的大数乘法计算。 ... [详细]
  • 本文介绍了C#中生成随机数的三种方法,并分析了其中存在的问题。首先介绍了使用Random类生成随机数的默认方法,但在高并发情况下可能会出现重复的情况。接着通过循环生成了一系列随机数,进一步突显了这个问题。文章指出,随机数生成在任何编程语言中都是必备的功能,但Random类生成的随机数并不可靠。最后,提出了需要寻找其他可靠的随机数生成方法的建议。 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • 《数据结构》学习笔记3——串匹配算法性能评估
    本文主要讨论串匹配算法的性能评估,包括模式匹配、字符种类数量、算法复杂度等内容。通过借助C++中的头文件和库,可以实现对串的匹配操作。其中蛮力算法的复杂度为O(m*n),通过随机取出长度为m的子串作为模式P,在文本T中进行匹配,统计平均复杂度。对于成功和失败的匹配分别进行测试,分析其平均复杂度。详情请参考相关学习资源。 ... [详细]
  • 动态规划算法的基本步骤及最长递增子序列问题详解
    本文详细介绍了动态规划算法的基本步骤,包括划分阶段、选择状态、决策和状态转移方程,并以最长递增子序列问题为例进行了详细解析。动态规划算法的有效性依赖于问题本身所具有的最优子结构性质和子问题重叠性质。通过将子问题的解保存在一个表中,在以后尽可能多地利用这些子问题的解,从而提高算法的效率。 ... [详细]
  • 本文介绍了Java的集合及其实现类,包括数据结构、抽象类和具体实现类的关系,详细介绍了List接口及其实现类ArrayList的基本操作和特点。文章通过提供相关参考文档和链接,帮助读者更好地理解和使用Java的集合类。 ... [详细]
  • 本文介绍了指针的概念以及在函数调用时使用指针作为参数的情况。指针存放的是变量的地址,通过指针可以修改指针所指的变量的值。然而,如果想要修改指针的指向,就需要使用指针的引用。文章还通过一个简单的示例代码解释了指针的引用的使用方法,并思考了在修改指针的指向后,取指针的输出结果。 ... [详细]
  • ASP.NET2.0数据教程之十四:使用FormView的模板
    本文介绍了在ASP.NET 2.0中使用FormView控件来实现自定义的显示外观,与GridView和DetailsView不同,FormView使用模板来呈现,可以实现不规则的外观呈现。同时还介绍了TemplateField的用法和FormView与DetailsView的区别。 ... [详细]
author-avatar
骁炉
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有