给在校准备找工作的同学的几个建议

了解 vim 养成 git 规范 学深比学广更重要 拥有自己的知识体系,形成解决问题的方法论 了解 vim Vim 被誉为"编辑器之神",这可不是虚的。 在我用了 vim 半年之后,我建议我身边的每一位程序员都去学习 vim 。 因为一旦你学会了 vim 的操作,你就像中了毒一样,你会讨厌鼠标,讨厌在你敲着敲着键盘,突然又要去移动光标,因为把手从键盘移动到鼠标上的时间远远大于手指在键盘按键的切换。 而且你会希望在所有的编辑器上都装有 vim 插件,不管是 vscode,还是 idea,还是 emacs;不管是自己的电脑还是别人的电脑;不管是敲代码的编辑器还是用来看网页的浏览器。 还好,所希望的都有,每一个可以装插件的编辑器都有 vim 插件,甚至浏览器也有 vimum。 当你真正习惯上了 vim 以后,你会迫不及待的想要一个机械键盘,因为你敲代码大部分时间都用在了键盘上,鼠标已经不再那么重要了。 机械键盘推荐红轴,青轴和茶轴虽然自己敲着很舒服,手感很好,但是比较影响其他人,键盘声太吵了,黑轴就不考虑了,码字太累了,不适合程序员。 我个人用过青轴和红轴,青轴给我的感觉就是码代码是一颗一颗的,听着那声音自己觉得很舒服,敲代码很有感觉。 而红轴给我的感觉就是敲代码的时候你会忘记你手上的键盘,给我一种手、键盘合一的感觉,把精力完全集中在码代码上,感受不到敲键盘的感觉。 最后说的就是先学 vim 的基本操作,然后装个插件在你现在的编辑器上练习就行了,不需要直接用 vim 编辑器。 因为你直接用 vim 编辑器,作为一个新手,不会配置插件,快捷键等,没有提示,没有高亮。你在写项目的时候会很痛苦,你就用你熟悉的编辑器高亮,代码提示这些是你以前搞好了的,所以实际应用起来难度小很多。 为了推荐更多人程序员学习 vim ,我还自己写了一篇入门文章,有兴趣的可以看看。 我周围的人,只要是用 vim 敲过代码的,从没有人说过用 vim 敲代码不好用而放弃用的,只会对 vim 爱得越来越深。 Git 规范 Git 作为我认为最优秀的版本管理工具,那是程序员的利器,必须用得游刃有余。 而我今天要说的不是怎么用好 git,如果需要可以留言给我,我后面写一篇或者一个系列。 我想说的是规范,不要以为 commit 随便写就行了,其实 commit 的规范程度一部分体现了你这个人做事的态度,是否端正,严谨。 我拿我在 某米工作的时候举个例子,我有个朋友那组的有个学姐,她的 commit 很随意,完全不能体现她提交代码的内容,比如,哈哈;放假了,好开心;bug;也不说是什么 bug,导致我那个同学根本不知道她提交了什么代码。...

May 22, 2018 · 1 min · 131 words · 桃翁

ES6之路之模块详解

简介 何为模块 一个模块只不过是一个写在文件中的 JavaScript 代码块。 模块中的函数或变量不可用,除非模块文件导出它们。 简单地说,这些模块可以帮助你在你的模块中编写代码,并且只公开应该被你的代码的其他部分访问的代码部分。 为什么要使用模块 增加可维护性:由于每个模块都是独立的,每个人写的代码是不会相互影响的,在维护代码的时候很好排查是哪个模块出错。 可复用性:在日常的开发中,特别是大点的项目,代码的可复用性就更重要了,也许你会用复制粘贴的形式,但是直接一个 import 命令就可以搞定,岂不快哉。 避免命名污染:在 javascript 脚本中,所有的 js 文件的顶级作用域创建的变量,会被添加到共享的全局作用域,这就会导致不同的人开发的代码可能会有相同的变量名,导致变量名污染。 如何使用 导出模块 导出模块所用的命令是 export。 前面也提到一个模块就是一个 javascript 文件,在这个模块中定义的变量,外部是无法获取到的,只有通过 export 导出的变量其他模块才可以用 最简单的导出方式就是在声明的变量、函数、类前面加一个 export // export1.js // 导出变量 export let name = '桃翁'; // 导出函数 export function print() { console.log("欢迎关注公众号:前端桃园"); } // 导出类 export class Person { constructor(name) { this.name = name; } } // 私有函数 function privateFunction () { console.log('我是私有函数,外部访问不了我'); } 注意: 被导出的函数或者类,都必须要有名称,意思就是说不能用这种方式导出匿名函数或者匿名类。 privateFunction 函数,没有加 export 命令,被当做这个模块的私有变量,其他模块是访问不到的。 除了上面那种导出方式,还有另外一种...

May 14, 2018 · 3 min · 523 words · 桃翁

桃园周刊 2018-5-14

如何更好的编写 async 函数 虽然 async/await 方式来处理异步请求,已经是比较非常好的方式了,但是有时候新手会乱用导致性能堪忧,这篇文章作者总结了他在项目迁移中更好的编写 aysnc 函数的方法。 实现双向绑定 Proxy 比 defineproperty 优劣如何? 双向绑定其实已经是一个老掉牙的问题了,只要涉及到 MVVM 框架就不得不谈的知识点。 可以实现双向绑定的方法有很多, KnockoutJS 基于观察者模式的双向绑定, Ember 基于数据模型的双向绑定, Angular 基于脏检查的双向绑定,本篇文章我们重点讲面试中常见的基于数据劫持的双向绑定。 深度剖析:如何实现一个 Virtual DOM 算法 本文会在教你怎么用 300~400 行代码实现一个基本的 Virtual DOM 算法,并且尝试尽量把 Virtual DOM 的算法思路阐述清楚。希望在阅读本文后,能让你深入理解 Virtual DOM 算法,给你现有前端的编程提供一些新的思考。

May 14, 2018 · 1 min · 39 words · 桃翁

三板斧使你走上人生巅峰

在我目前的认知里,我觉得未来有三个技能是需要掌握的,分别是:写作、编程、理财。我相信如果这三个技能都掌握了,我相信你里财富自由之路已经不远了。 想要走上财富自由,主要看你的「睡后」收入,就是在你睡觉的时候还有的输入,比如你录视频卖、写书、做自媒体写文章、理财等等,程序员如果增加「睡后」输入,请看 Stromzhang 的 这篇文章 。这些都会让你在你睡觉了之后还有收入,跟你上班出售自己的时间相比,你花在这些能增加「睡后」收入的时间可以重复卖这些时间。 比如一个作家花一年的时间写了一本书,可以畅销十年;那些做自媒体的写出一款爆文,到处转发,也可以流行好多天。 所以如何增加「睡后」收入,才是通往财富自由之路的关键。 第一板斧:写作 在那么多的只能加睡后收入的方法里面,为什么我选择了写作? 因为写作是大多数人都可以参与进来的,不需要有太多的专业性技能,而且操作方便,在任何地方都可以写,没有时间空间的限制。 李笑来在他的财富自由之路里面也说过,写作是通往财富自由的必备技能。 下面简单介绍几种写作的好处: 1. 表达能力 写作可以锻炼你的表达能力,因为写作其实就是在把自己所想的用文字表达出来,如果你能通过文字清晰的表达出来,那么我相信通过语言表达出来也不成问题了。 一旦你的表达能力得以提升,那么在人际交往的时候可以清楚的表达自己的观点。与老板沟通的时候可以清楚的把自己所干的活表达出来,让老板知道你的工作量,你用你的时间和工作能力,减少了老板的时间,他才会感激你;与同事交流清楚表达自己的观点,可以让同事们觉得你是一个有条理,很理性的人,等等例子,一旦你表达能力提升了,你的人际关系不会差。 2. 记录世界记录你 「记录世界记录你」是快手的广告,在这里借用一下,很适合给写作打广告。 快手也是日活上亿的一款APP,快手用视频可以记下你生活的点点滴滴,并且与其他人分享。我们用写作可以记录下生活的点滴,可以记录你的日记,以后可以留给你老了之后回忆;可以记录你的随想,让你可能会忘记的东西持久化;可以记录下你学习的笔记或者举一反三的知识,来加深你对知识点的理解…… 你可以用写作记录下整个你所出的世界,以及你整个人生所经历的事儿,所想的想法,所学到的知识。这不就是记录世界记录你吗?想想是不是一件很酷的事儿 别想了,开始写吧! 3. 钱,快到兜里来 对于赚钱我相信大家都特别感兴趣吧。 很多人也许误以为只有作家才能通过写作来赚钱吧!那么你就少知道了一个赚钱之道。 你可以通过运营公众号来赚钱,说说三种运营公众号赚钱的方式: 流量主 当你的公众号达到 5000 关注人数的时候,就可以开通广告服务,广告大概一次点击 1 块钱,原创能达到 1.5 元 软文推文 当你的公众号有一定影响力之后,一般就会有一些培训机构来让你帮他写软文打广告。希望大家看到喜欢的公众号有这种广告,不要抵触,有收入才有动力输出。 营销 如果你有一些付费专栏,或者知识星球,或者付费的视频课之类的,也可以做营销。 当然还有很多理由驱使我写作,我就列了几个我觉得对我影响比较大的方面,希望大家早早加入这个圈子,早点财富自由。 第二板斧:编程 作为一个程序员的我,肯定编程对于我来说至关重要,但是为什么鼓励全民学编程呢? 我鼓励大家学编程,但是没鼓励大家都去当程序员。外面都说程序员是『钱多人傻死得早』,可见程序员是多么辛苦的一门职业,其实无论哪门职业,只要你想赚更多的钱,就得花更多的时间。 但是我觉得每个人都应该学点编程,理由如下: 1. 学会一种思考方式 编程可以帮我们完成工作,但没有明确的实用性,重要的是我们把它看做思考的镜子,学习如何思考,你思考的问题清晰与否,对错与否,把代码敲出来运行一下就知道了。 学习编程会叫你如何思考,就像学法律一样,学法律的人未必都成为律师,但法律教你一种思考方式。 2. 编程可以培养冷静和逻辑化思维 要知道程序行为的对错,都是计算机运行错误,不会被个人意志左右,这让你冷静下来思考你赋予给计算机的算法是哪里错了。 在软件的世界里,每个细节都是环环相扣,不可能出现没有原因的问题,没有无因之果,锻炼你的逻辑化思维。 第三板斧:理财 在文章的开头,已经提到了「睡后」收入,理财就是一种很好的方式来增加睡后收入。 因为整个社会是存在着通货膨胀的,也就是说如果你把现金放在家里,甚至是存在银行,你的钱是会贬值的。 据统计,每年的通货膨胀是 6%~12%,根据上表,5 年利率最高的定期存款也才 4%,所以说存银行是没办法跑赢通货膨胀的。 由此可以看到我们就算为了跑赢通货膨胀也要学理财,让钱生钱。 理财的种类有很多种:储蓄、炒金、基金、炒股、国债、债券、外汇、保险、P2P。 每种理财不是每个人都适合,一般风险高的收益高,风险低的收益低,怎么来取舍这就是我们需要学习的。 提示:理财的前提是你本金越多,赚的才有可能更多,所以应该先努力赚钱,赚取更多的本金,然后一边学习理财。在我目前掌握的理财知识来看,指数基金是一种相对适合大多数人的一种理财方式。 最后,如果想获取写作的资料(包括书籍、视频),可以关注公众号 前端桃园,回复「写作」免费领取,或者加微信 lijian1076629390 免费领取。

May 11, 2018 · 1 min · 68 words · 桃翁

桃园周刊 2018-5-5

### Mvvm 前端数据流框架精讲 带大家了解什么是 mvvm,mvvm 的原理,以及近几年产生了哪些演变。 同时借 mvvm 这个话题拓展到对各类前端数据流方案的思考,形成对前端数据流整体认知,帮助大家在团队中更好的做技术选型。 译-RxJS 游戏之贪吃蛇 众所周知,Web 发展的很快。如今,响应式编程和 Angular 或 React 这样的框架一样,已经是 Web 开发领域中最热门的话题之一。响应式编程变得越来越流行,尤其是在当今的 JavaScript 世界。从命令式编程范式到响应式编程范式,社区已经发生了巨大的变化。然而,许多开发者还是十分纠结,常常因为响应式编程的复杂度(大量 API)、思维转换(从命令式到响应式)和众多概念而畏缩。 该应用使用 HTML5、JavaScript 和 RxJS 来将编程事件循环 (programmatic-event-loop) 的应用转变成响应事件驱动 (reactive-event-driven) 的应用。 前端性能优化之浏览器渲染优化 —— 打造60FPS页面 该文仅针对高性能渲染进行分析。详细的讲解了 CSS 优化 和 Javascript 的优化,一篇非常深入的文章

May 5, 2018 · 1 min · 40 words · 桃翁