ARTS Week 2
Algorithm 一道算法题
这周的算法题是Furthest Building You Can Reach. 并没有什么好的想法,就想着用暴力的方法来做,但是超时了。然后就想着用贪心的方法来做,但是也不知道怎么贪心,所以就看了别人的解法,发现是用优先队列来做的。
暴力解法:
优先队列解法:
Review 一篇英文文章
这周看的文章是 The webpack plugin I can't live without,主要目的也是为了看看怎么优化前端项目。这篇文章主要是介绍了一个 webpack 的一个插件,叫做 webpack-bundle-analyzer,这个插件可以用来分析 webpack 打包之后的结果,可以看到每个文件的大小,以及每个文件的依赖关系。这样的话,就可以看到哪些文件比较大,然后可以进行优化。
然后看了这个视频Managing Your Bundle Size - Totally Tooling Tips,介绍了以下值得尝试的一些工具。
Bundlesize: https://github.com/siddharthkp/bundlesize
Lighthouse: https://developer.chrome.com/docs/lighthouse/overview/
Calibre: https://calibreapp.com/
pr-bot: https://github.com/GoogleChromeLabs/pr-bot
vscode-import: https://marketplace.visualstudio.com/items?itemName=wix.vscode-import-cost
speedcurve: https://speedcurve.com/
Technique/Tips 一个技术点
Share 一个 useSelector 的一个 design, 这几天处理一个 bug 的时候发现莫名的 rerender,其中有一部分原因是 useSelector(state => state)这种用法导致的,这样用的话 state 里面任何的变化都会导致一个 rerender,所以之后最好不要用这种方式,而是用 useSelector(state => state.xxx)这种方式,这样的话,只有 xxx 变化的时候才会导致一个 rerender。
https://react-redux.js.org/api/hooks#no-op-selector-check
Share 一个观点
最近看的一本书,关于利己和利他,就是作者发现在社会的顶端和底端都是同一个类型的人,都是利他的人。但是不一样的是,在底端的人不讲原则的付出,不懂得拒绝,导致自己在很多方面对自己不利。而在顶端的人,他们懂得拒绝,懂得说不,懂得在自己的原则范围内去付出,这样的话。而且有一个方法,就是把范围扩大,比如说,你还可以考虑你的家人,你的朋友,你的同事,你的公司,这样的话,你就会懂得在自己的范围内去付出,而不是无原则的付出。
比如生活中一个朋友要你无条件的付出帮他做事,对于你个人来说因为你喜欢利他所以这件事情对你没什么问题。但是,你帮他做事这件事情,很可能损害到了你家庭的利益,这不是你想看到的,所以这种情况就需要拒绝。
版权声明: 本文为 InfoQ 作者【Geek_c25301】的原创文章。
原文链接:【http://xie.infoq.cn/article/e7c51332c843148fda63bbba6】。文章转载请联系作者。
评论