何谓过分使用开源项目

2016-04-06 23:52:36 +08:00
 sampeng

题目有点文不对题,但方向大概类似。 昨天看一则新闻, nodejs 一个基础库出问题,引起几千个开源项目的不能工作。 这个基础库只有一个函数,好像是翻转字符串还是什么,没记得太清。

以前有过面试官的工作,来的 10 个里面 9 个不知道项目中使用中的开源项目是如何工作的。。。

如 Android 的 ImageLoader

如 js 的 Angular

如 php 的 laravel

这几个例子其实并不是太好,因为有点大,很多属于框架的范围。但实际上在开发过程中,有些懒得想的问题,真的是条件反射就上 github ,不仔细看文档,直接跳到安装和使用。

细思极恐的事情,用多了开源。脑子跟着木了。。。这会产生惯性的。

不是所有人都会把用过的开源项目精读之,我也只有用到某个接口了才跳转进去看看怎么实现的。仅限手头事完事了。。

不知道各位有没同感。

很矛盾的一件事,用开源,因为项目实在太紧,老大需要炫酷吊炸天的效果时间还给的很短。但这基本浪费了多年的开发精力。。同一件事做旧了,有种搬运工的感觉。不用开源。。。。家。。里。。等。。着。。开。。锅。。。

5238 次点击
所在节点    程序员
32 条回复
weizhiyao008
2016-04-07 11:37:34 +08:00
我能做到的就是选择开源类库版本时别太激进。
我觉得自己写的类库可能 BUG 还会多很多,好处是自己写的,改起来方便
cxh116
2016-04-07 11:37:52 +08:00
你自己写测试吗?
好的开源项目都写了测试.把大部分边界条件都测了.
jugelizi
2016-04-07 11:43:24 +08:00
曾经痛苦地修改开源系统的代码
SpicyCat
2016-04-07 12:41:06 +08:00
我认为做软件的最理想情况是,不用自己写一行代码,全部像搭积木一样用现有组件生成软件。
写代码是很昂贵的,如果写出的代码不能复用就可惜了。况且你也不能保证自己造的轮子就比开源轮子好使,如果可能,还不如贡献力量去提升开源轮子。
leftpad 的问题本质是 nodejs 社区管理的问题,而不是说“我们忘了如何写代码”。难道说每个项目都有自己的 leftpad 就是好的?只是无谓地增加软件复杂度。
本来甄别开源项目的质量就是一项技术活儿,如果你的项目有开源实现可以用,那自然要考察下那个开源项目。如何考察?如果是 github 项目,除去看 star 数,看 issue 中的反馈,还要看是否有好的文档,是否有测试,更新频率,最后更新时间,最后才是看源码。
有不错的文档但是没有测试的项目,如果作者更新还算及时,也可留用查看。
没有文档的项目直接放弃。
开源项目没有过度使用这一说,我到觉得现在开源项目普及力度还不够。
开源不仅表示你可以免费使用代码,还表示你可以,或者说应该贡献代码。
9hills
2016-04-07 12:45:09 +08:00
和开源闭源没关系。

面试过各种 VMware 家, EMC 家的产品用的很多,但是对原理一窍不通的系统管理员。。。
zhicheng
2016-04-07 13:33:18 +08:00
你用 Linux 会看 Linux 的代码吗?你用 GCC 会看 GCC 的代码吗?你用 MySQL 会看 MySQL 代码吗?别那么蛋疼。
Jet
2016-04-07 13:36:23 +08:00
你可能是开源软件的受害者
sampeng
2016-04-07 15:13:37 +08:00
不是说开源不好,大型解决方案是受欢迎的。
没有几家公司自己撸个 hadoop 或者 mysql 吧。不是纠结这种大拿型的解决方案。而是小一点的。。一个组件,一个页面。等等。。。
但是,仅仅只是 github 的搬运工。是不是学编程只要学会堆砌开源软件就足够了。仅此而已。
有时候,学一下语法,然后花两天时间去网上弄点开源一堆。然后效果就出来了。。然后就被绝大多数人称为大拿。。这样很容易膨胀。一膨胀就不知道自己姓什么了。。
wohenyingyu01
2016-04-07 16:17:16 +08:00
使用完了再把人家批判一番才是过分……
nicegoing
2016-04-07 16:53:21 +08:00
没有开源软件,程序员的效率不可能这么高。就拿安卓来说,不用第三方,推送自己写,通讯自己写, imageloading 自己写。别人一个月上线了,你一年都不一定磨出来。程序员拿高工资,就有开源软件的功劳。
NetCobra
2016-04-07 17:07:56 +08:00
感觉 lz 这种想法就是想要把控每一个细节,否则就不放心。

不知道 lz 对“知道开源项目是如何工作”这个问题是如何定义的?如果说是需要了解这个开源项目的工作原理、应用场景、优点、局限性,我赞同;但是如果说要“把用过的开源项目精读”,没必要也不可能。

换一个角度,我们每天都要面对显示器,有多少人对显示器是如何工作的了解得很清楚的?
jamiesun
2016-04-08 01:28:17 +08:00
懒是程序员的美德

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/269111

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX