为什么克隆开源应用?
了解为何克隆一个开源应用程序比从零开始创建新项目更好。
别从零开始创造新东西
“我经常被问到:‘我该如何提升自己?’ 我最喜欢的练习方式,是找一个看起来稍微超出你当前能力的开源项目(OSS),然后尝试自己动手实现它,只有在完全卡住时才参考原始项目的源码。”
—— Ryan Florence
你已经知道,通过做项目来学习并积累作品集非常重要。你也读过马尔科姆·格拉德威尔的书,明白需要10,000小时的刻意练习。但既然你刚开始,我给你一个略带争议的建议:别从零开始做新东西。
决策力是一种稀缺资源
你的决策能力是一种有限的资源。每天你都带着满格的精力开始,但随着一天中不断做决定,你会逐渐耗尽。
我们都清楚,深夜时分的决定往往并不明智。开发一个新应用涉及成千上万个小决策——从功能设计到界面风格,再到中间的每一个细节。现在请想清楚:你是想练习技术决策,还是产品决策?
克隆已有项目
好,你现在在写代码。你知道什么几乎不需要做任何产品决策吗?克隆现有项目。克制住“打造独一无二”的冲动(至少现在先别这么做)。但话说回来,谁会用另一个 Hacker News 克隆版呢?告诉你个真相:其实根本没人会用你的项目。你在练编程,不是在创业。记住这一点!
自己动手做一个克隆,完成后去查看原项目的源码。这样你就有了两个实现同一功能的例子,甚至能练习那些人们多年后才掌握的技能——理解技术选择之间的权衡!
克隆完整应用
你很幸运,身处一个公司愿意将整个应用开源的时代:
克隆个人项目
如果这些项目对你来说太大了(它们确实不小),那就去看看你导师们的个人项目。比如前端开发者可以参考:
- Ryan Florence 的 Planner
- Kent C. Dodds 的 TIL
- Christopher Chedeau 的 Excalidraw
- Daniel Vassallo 的 Userbase
克隆的克隆
做出你的克隆版本后,拿去给他们看看!你几乎一定能得到免费反馈。不一定非得找名人,甚至可以尝试“克隆的克隆”:
- Smoen Sanders 的 Instagram 克隆
- Muzamil Sofi 的 Twitter 克隆
- Trello 克隆和 JIRA 克隆
- 复古 Windows 界面 也特别受欢迎!
你甚至不必局限于做应用。如果你想,也可以自己动手复刻一些流行的库或框架。如果你需要帮助,Daniel Stefanovic 的 Build Your Own X 仓库里有大量教程,堪称宝藏。
“在艺术与设计圈里,这叫‘临摹’(copywork)……复制已有作品有很多好处:你不用思考交互逻辑(直接照搬就行),可以专注学习单一技能,还能自己设定难度。”
—— Dave Ceddia