Algorithm
主要是为了编程训练和学习。每周至少做一个 leetcode 的算法题(先从Easy开始,然后再Medium,最后才Hard)。进行编程训练,如果不训练你看再多的算法书,你依然不会做算法题,看完书后,你需要训练。关于做Leetcode的的优势,你可以看一下我在coolshell上的文章 Leetcode 编程训练 - 酷 壳 - CoolShell。
剑指 Offer 14- II. 剪绳子 II
此题没做出来。
总结:之后每周的算法题应该提前做,如果放到周日来做,很有可能会因为时间问题而被划水过去 -_-||
Review
主要是为了学习英文,如果你的英文不行,你基本上无缘技术高手。所以,需要你阅读并点评至少一篇英文技术文章,我个人最喜欢去的地方是http://Medium.com(需要梯子)以及各个公司的技术blog,如Netflix的。
Now You See Me: How To Defer, Lazy-Load And Act With IntersectionObserver
阅读笔记:
- Observer vs Event: 前者同步,阻塞主线程;后者异步
- IntersectionObserver 应用:
- deferred functionality: 替换 scroll 或 resize 事件
- lazy loading of assets
- current section highlighting
- IntersectionObserver 什么时候会失效?
display: none;
失效overflow: hidden
超出的部分会失效opacity: 0
,visibility: hidden
有效
Tip
主要是为了总结和归纳你在是常工作中所遇到的知识点。学习至少一个技术技巧。你在工作中遇到的问题,踩过的坑,学习的点滴知识。
本周对 git 的 2 个命令有了进一步的了解:
- git merge ff VS no-ff:no-ff (no fast-forward) 模式会将所有的更改生成一个 merge 提交,这样能保留分支信息;ff (fast-forward,默认) 会丢失分支信息,效果类似 rebase 后一样
- git rebase master:当我们在 feature 分支开发完成之后,此时 master 分支可能已经有了其他的提交存在;当运行了
git rebase master
之后,就可以将 feature 分支的 checkout HEAD (即当初新建 feature 分支时对应 master 的那个提交)切换到 master 最新的提交上 (如下图);这个过程可能需要解决冲突
Share
主要是为了建立你的影响力,能够输出价值观。分享一篇有观点和思考的技术文章。
Reusify: https://github.com/mcollina/reusify
原理是基于 v8 引擎的 hidden class 做的函数调用优化。源代码短短 30 多行,值得研究学习。