87__程序员练级攻略:前端基础和底层原理
对于前端的学习和提高,我的基本思路是这样的。首先,前端的三个最基本的东西 HTML 5、CSS 3 和 JavaScript(ES6)是必须要学好的。这其中有很多很多的技术,比如,CSS 3 引申出来的 Canvas(位图)、SVG(矢量图)和 WebGL(3D 图),以及 CSS 的各种图形变换可以让你做出非常丰富的渲染效果和动画效果。
87__开源实战五(上):MyBatis如何权衡易用性、性能和灵活性?
上几节课我们讲到了 Spring 框架,剖析了背后蕴含的一些通用设计思想,以及用到的十几种设计模式。从今天开始,我们再剖析另外一个 Java 项目开发中经常用到的框架:MyBatis。因为内容比较多,同样,我们也分三节课来讲解。
87-全栈工程师修炼指南
88__程序员练级攻略:前端性能优化和框架
前端性能优化
首先是推荐几本前端性能优化方面的图书。
- 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 这一章节也有很多非常不错的知识和经验。
接下来是一些最佳实践性的文档。
88__开源实战五(中):如何利用职责链与代理模式实现MyBatis_Plugin?
上节课,我们对 MyBatis 框架做了简单的背景介绍,并且通过对比各种 ORM 框架,学习了代码的易用性、性能、灵活性之间的关系。一般来讲,框架提供的高级功能越多,那性能损耗就会越大;框架用起来越简单,提供越简化的使用方式,那灵活性也就越低。
88-高并发系统设计40问
89__程序员练级攻略:UI_UX设计
上面的技术都讲完了,前端还有一个很重要的事就是设计。作为前端人员,我们有必要了解现在的一些知名且流行的设计语言或是一些设计规范或是设计方法,学习它们的设计思想和方法,有助于我们拓宽眼界、与时俱进。我并不觉得这些内容是设计师要学习的,如果你要成为一个前端程序员,那么学习这些设计上的东西可以让你有更好的成长空间。
89__开源实战五(下):总结MyBatis框架中用到的10种设计模式
上节课,我带你剖析了利用职责链模式和动态代理模式实现 MyBatis Plugin。至此,我们已经学习了三种职责链常用的应用场景:过滤器(Servlet Filter)、拦截器(Spring Interceptor)、插件(MyBatis Plugin)。
90__程序员练级攻略:技术资源集散地
个人技术博客
首先,我先推荐一些不错的个人技术博客。
- Coding Horror ,这是杰夫·阿特伍德(Jeff Atwood)于 2004 年创办的博客,记录其在软件开发经历中的所思所想、点点滴滴。时至今日,该博客每天都有近 10 万人次的访问量,读者纷纷参与评论,各种观点与智慧在这里不断地激情碰撞。其博文选集在中国被翻译成《高效能程序员的修练》,在豆瓣上有 8.3 的高分。2008 年,他和 Joel Spolsky 联合创办了 StackOverflow 问答网站,为程序员在开发软件时节省了非常多的时间,并开启了“StackOverflow Copy + Paste 式编程”。
- Joel on Software ,Joel Spolsky 的这个博客在全世界都有很多的读者和粉丝,其博文选集在中国被翻译成《软件随想录》在豆瓣上有 8.7 的高分。这是一本关于软件技术、人才、创业和企业管理的随想文集,作者以诙谐幽默的笔触将自己在软件行业的亲身感悟娓娓道来,观点新颖独特,简洁实用。
- Clean Coder Blog ,这是编程大师“Bob 大叔”的博客,其真名叫 Robert C. Martin,世界级软件开发大师,设计模式和敏捷开发先驱,敏捷联盟首任主席,C++ Report 前主编,被后辈程序员尊称为“Bob 大叔”。其博文选集在中国被翻译成《程序员的职业素养》,在豆瓣上有 8.8 的高分。
- Martin Fowler ,这是另外一个程序员大师,Martin 主要专注于面向对象分析与设计、统一建模语言、领域建模,以及敏捷软件开发方法,包括极限编程。他的《重构》、《分析模式》、《企业应用架构模式》、《领域特定语言》和《NoSQL 精粹》都是非常不错的书。在他的博客上有很多很多的编程和架构模式方法可以学习。
- Paul Graham Essays ,美国著名程序员、风险投资家、博客和技术作家。《黑客与画家》是他的著作之一。2005 年他与人共同创建了科技创业孵化器 Y Combinator,孵化了 Airbnb、Dropbox、Stripe 等知名互联网公司。他有几篇创业方面的文章都很经典,如果你想创业,可以读一读这几篇:《How to Get Startup Ideas》、《Do Things that Don’t Scale》、《Startup = Growth》。Paul Graham 的文章以清新自然,思想深刻见长。不仅可以跟 Paul Graham 学创业,学思考,学技术,更可以学习写作。
- Steve Yegge ,Steve Yegge 这个人算是一个知名的程序员了,在 Amazon 呆过,现在在 Google,他的文章都是长篇大论,最知名的文章就是对 Amazon 和 Google 平台的吐槽,这篇文章引发了大家的讨论和议论。
- Bruce Eckel’s Programming Blog ,《Thinking in Java》作者的博客,他之前的博客在 artima - Computing Thoughts 。
- Herb Sutter ,C++ 大拿,C++ 标准委员会专家,微软软件架构师。《Exceptional C++ 》、《More Exceptional C++》、《Exceptional C++ Style》作者。
- Eli Bendersky’s website ,这位老哥从 2003 年就一直写博客到今天,其中的文章都非常不错,原理型的,主要是 C、C++ 和 Python 相关的。里面有很多干货。
- Peter Krumins’blog ,这位老哥从 2007 年开始写博客,他博客里好玩的东西太多了。
- Brendan D. Gregg ,Brendan 是 Netflix 的工程师,他的博客里有大量的非常不错的文章,基本上都是和 Linux 性能分析相关的,这是一个如果你要玩底层性能分析一定不能错过的博客。
- Evan Klitzke ,主要讨论 Linux 和 C++ 相关的内容。
- Julia Evans ,主要讨论 Linux debug 工具和网络相关的内容。
- null program ,和 C/C++ 相关的一个博客。其中关于 Linux 系统调用、GPU、无锁编程、JIT 编译的一些文章非常不错。
- Fluent {C++} ,博主是 Murex 的首席工程师,主要玩 C++,在这个博客里有很多很不错的 C++ 相关的文章。
- Preshing on Programming ,这也是一个和 C/C++ 相关的博客,其中有很多的干货。
- Programming is Terrible ,这个博客有很多强观点的文章,主要是软件开发中的一些教训。
- Accidentally Quadratic ,姑且翻译成事故二次方,这里有好些非常有趣的文章。
- Hacker Noon ,这是一个一堆人在写的博客,里面有很多质量很高的文章。
其实还有很多不错的博客,不过,现在国外不错的博客都在一个叫 Medium 的网站,我也发现我 Google 很多东西时都会到这个网站上。这个网站上的内容不只有技术的,还有很多很多其他方面的内容,比如文化、艺术、科学等等。这个网站就是一个博客发布系统,其是由 Twitter 联合创始人埃文·克拉克·威廉姆斯(Evan Clark Williams)和克里斯多福·艾萨克·比兹·斯通(Christopher Isaac Biz Stone)创办的,这两个人觉得 Twitter 上全是垃圾没有营养的信息。所以,创办了 Medium,这个平台上有专业和非专业的贡献者,亦有受雇的编者。