对于开源项目,为什么他能做到高产
核心理念就是,“Small focused reusable modules ”,也就是做一些可复用的小模块,比如他写的user-home,Sindre Sorhus 也解释到,这些小模块最终是可以构成复杂的产品。对于前端的开源项目,要么做大而全的框架,目标是尽可能解决复杂的问题面,比如 React, Vue,而另外一种是类库,目标是解决特定问题,比如 axios,lodash,因此作为独立开发者选择后者的可能性更高。
其次,他是一位全职独立开发者,个人时间比较充裕,从 11AM 到 5PM 全部投入到开源项目,在深夜时间也会写。那么作为国内 996 开发者来说,要做到他这么高产是不太现实,但可以从日常的项目开发中,发现共性问题,并从里面提炼出可复用的代码模块,个人认为可以尝试这样的工作思路:目前在做的项目,有哪些模块是与业务无关的,可以独立地发布成 npm 包吗?
提交 PR 的一个正确方式
先开一个 Issue 跟作者跟讨论,确认问题和解决方案,如果直接提 PR 的话,有可能会跟作者的想法不一样而被拒。或者可以找现成的 Open issue 进行 Contribute。
Polyfill VS Ponyfill
Polyfill 一般是使用 Monkey-patch 的方式在运行环境中,即在原生 API 上添加原本不支持的特性,这种方式会对运行环境造成副作用,如果遇到 Bug 时会很难定位,而且会强耦合原生 API 的规范标准。
而 Ponyfill 仅仅是使用一个普通模块,导出与原生 API 特性一致的功能,没有任何的 Monkey-patch 代码,因此不会产生任何副作用。
形象点的表达就是,Ponyfill 是一只乖巧的小马,而 Polyfill 则是显得粗鲁的猴子。
学好数学重要吗?
对于前端来说,数学并不是硬伤,但是如果要成为计算机科学家,比如需要解决更加复杂的问题,那么学好数学确实是基本条件。比起数学,作为一名普通的前端开发者,以下的事情会更加地重要,比如:
- 写可维护性强的代码。
- 保持代码的可复用性。
- 善于调试和性能优化。
- 写单元测试代码。
- 写可阅读性更好的文档。
- 懂得如何跟他人合作。
给到 20 岁的自己的一些建议
- 性格特质方面,要有自我驱动的能力,不要懵圈,对一切保持好奇心,并保持乐观的态度。
- 社交方面,拥有好朋友,比拥有很多朋友要重要。
- 做事方面,去做别人认为很难做的事情,并且不要害怕向别人请教。
- 去旅行,见不同的人和事;用金钱去买时间和经历,而不是一些没用的商品。
- 简化你的思想、表达和生活的方方面面,做一个纯粹的人。
如何学习英语
- 听读写,可以通过互利网,阅读科技文章和其他人参与讨论,看美剧。
- 口语能力需要语言环境,可以到 Native Speaker 的国家旅游。
第一种训练方式,只要能连上互联网,全世界任意一个地方都可以学习,但第二个可能有点难度,我还不太清楚,ChatGPT 能否代替这个语言环境?
如何变得富有?
你想要的不是富有,而是富有带来的快乐。
[本文谢绝转载,谢谢]