|
发表于 2024-6-4 14:51:54
|
显示全部楼层
我觉得这个问题是这样,Ctrl-C/Ctrl-V是个基本操作,是学习和快速掌握信息的基本技能。
有些人Ctrl-C/Ctrl-V之后,东西成了自己的,甚至可以更进一步。
而有些人只会Ctrl-C/Ctrl-V,把所有的精力都用在让Ctrl-C/Ctrl-V的东西跑起来上了。
我更推崇利用这些工具和平台学习和掌握需要的各种碎片信息,理解并把它们组织成自己的东西。
至于要不要重新发明轮子,要看具体的应用场景和工作要求。
理论上,如果开发人员能力足够,重新发明的轮子必然是比通用的轮子更适合自己的应用场景的。
比如,我的编辑器使用了我自己写的正则表达式库。我的正则库在做通用性能测试时比PCRE2/RE2慢一些。
但用在我的编辑器里,它的性能就远高于其它使用PCRE2/RE2的编辑器。
无论是对于个人还是对于组织来说,软件开发是一个长期积累的过程。
如果能够经过长期的沉淀,形成自己的基础组件/框架/工具等,对于个人和组织的开发能力/效率都会有非常大的提升
而只有通过这种过程才能建立甄别网上各种良莠不齐的开源项目的能力
毕竟网上的开源项目大多水平都不高,连binutils这种gnu核心组件里面也有很多非常垃圾的东西
如果项目规模很小,没有什么特别的要求,利用开源代码就能满足需求,那的确就没有再重新发明轮子的必要
但如果项目周期很长,会逐渐发展成大型项目,那必然需要重新发明各种轮子,谷歌的chromium就很典型。
因为不同的开源项目必然没法建立统一的框架和规范,会存在互不兼容甚至冲突的情况,用自己的组件替换开源组件也就是必须的了
当然,如果项目是只要能跑起来就好,那可以当我前面都没说 |
|