从Sindre Sorhus博客中学到的一些东西

原文在 https://sindresorhus.com/about

对于开源项目,为什么他能做到高产

核心理念就是,“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 能否代替这个语言环境?

如何变得富有?

你想要的不是富有,而是富有带来的快乐。

[本文谢绝转载,谢谢]

粤ICP备2022084378号