不要“因为谷歌这样做”
这是我之前写的一条评论,你可以在这里看到完整的上下文,但对话的前提是谷歌和 Facebook 等公司在招聘程序员时与初创公司或小公司有完全不同的要求。
[...] 像 Facebook、谷歌和亚马逊这样的公司需要测试程序员的数据结构,因为某些结构在特定情况下效果更佳,而且当他们的软件工程师知道使用哪些工具来优化流程,使其运行速度从 10 微秒缩短到 5 微秒时……好吧,假设一家运行着数万甚至数十万台服务器的公司,节省的每一微秒都意味着公司需要运行的服务器数量减少。而更少的服务器意味着更多的金钱。
但对于大多数初创公司或中型公司来说,开发人员知道如何启动和运行系统更为重要,而他们编写的实际代码则不那么重要。
问题在于,很多小型科技公司都向谷歌这样的公司学习,试图模仿他们的面试流程,因为毕竟是谷歌。这些公司从未考虑过,一个拥有数十亿用户的应用程序,与只有500个用户的应用程序,其需求可能略有不同。
再读一遍最后一句话:
这些公司从未考虑过,拥有数十亿用户的应用程序与拥有 500 名用户的应用程序的需求可能略有不同。
我认为在当今的环境下这一点至关重要。许多MVP团队、初创公司或中型公司都试图模仿谷歌或Facebook这样的公司,这表面上看是有道理的……
I want my app to be the ${topTenApp} of ${industry}, so why wouldn't I use the same tools and processes as them?
这就是区别。
谷歌使用该工具或流程来解决其发展过程中面临的非常具体的技术问题,而模仿者公司实际上并没有通过使用该工具解决任何问题,反而制造了更多问题。
Kubernetes 是扩展服务的强大工具,但如果您实际上没有任何需要扩展的用户,那么您就不需要使用它。
用它来开发 MVP 只会增加不必要的复杂性,拖慢开发时间,并且会让以后招聘合适的开发人员更加困难。只需坚持使用 Heroku 的业余测功机,并在真正需要时进行更改即可。
同样的规则适用于数十种工具和模式。微服务、机器学习、React Native、CDN、Jenkins、GraphQL、区块链、ElasticSearch,等等。
我并不是说你不应该在初始构建时使用任何这些技术。如果你的应用程序的整个前提是为房地产构建一个基于智能合约的账本,那么你当然需要使用区块链。但如果你在为马术爱好者构建一个社交媒体网站,你可能一开始就不需要使用机器学习来推荐内容。
当你刚开始时,你应该出于以下两个原因之一使用工具:
1)它对于你的 MVP 来说绝对必不可少。2
)它可以提高生产力。
就是这样。
其他所有内容都可以稍后更改、修复或添加。
不要成为完美主义者,不要解决你没有的问题。
只需制作出足够好的东西,让用户真正想要使用它,并在需要时担心扩展。
如果反过来做,您可能会浪费数月的时间来构建一个完全无用的应用程序。
文章来源:https://dev.to/joshhadik/dont-do-it-because-google-does-it-58oh