Cordova/Phonegap 学习笔记外一篇:参与开源——写在第八届“开源中国开源世界” 高峰论坛前一天

Cordova/Phonegap 学习笔记外一篇:参与开源——写在第八届“开源中国开源世界” 高峰论坛前一天
本贴首发于: http://xuekaiyuan.com/forum.php?mod=viewthread&tid=12

故事从学习 Cordova/Phonegap 说起
由于 Cordova 是开源软件,有些代码时间久已经没人知道是什么意思了,甚至目前的开发人员都不懂了,比如说 Cordova/Phonegap for Android 中编写 URL 过滤器时,在类库工程中和样例工程中都没有找到相关示例代码。花了几小时分析源代码发现如下注释:
https://git-wip-us.apache.org/repos/asf?p=cordova-android.git;a=blob;f=framework/src/org/apache/cordova/api/PluginManager.java;h=0a42b3abd2fc9c684728dbbdeb0cc62cd335c2b3;hb=HEAD#l131
https://github.com/apache/cordova-android/blob/master/framework/src/org/apache/cordova/api/PluginManager.java#L131
连重构这部分代码的程序员都不懂了,只好写上一个 What is this? 注释。经过分析后,我发现这段代码的工作方式如下:
直接编辑 config.xml 代码,增加一个 feature 元素
        <feature name="UrlFilter">
            <param name="android-package" value="com.daonao.test4.UrlFilter"/>
            <url-filter value="file:///android_asset/www/"/>
        </feature>
编写 URL 过滤器函数 shouldInterceptRequest
    @Override
    @TargetApi(Build.VERSION_CODES.HONEYCOMB)
    public WebResourceResponse shouldInterceptRequest(String url) {
    ByteArrayInputStream stream = new ByteArrayInputStream(url.getBytes());
    return new WebResourceResponse("text/plain", "UTF-8", stream);
    }
该过滤器显示输入 URL 的内容,参考该过滤器可以自己设计出各种过滤器。
最后把相关说明提交给了作者 https://issues.apache.org/jira/browse/CB-4024

写了这么多是想说一下我对于“参与开源”的看法
首先,使用开源软件就是参与开源,因为使用,就有了口碑传播的可能,就有了发现缺陷和期望功能时向开发者报告的可能。
其次,开始阅读开源软件源代码,因为阅读,就有了二次开发的可能,就有了发现改进之处的可能,这些都将促进参与开发
最后,参与开发,不一定是核心代码。写文档、写测试样例都能参与开发,有界面的软件或网站中,界面设计也是参与开发。

说了这么多是想说并不是“发起”一个开源项目才算“参与开源”
“非我发明症”(请自己搜索)并不是程序员的专利,这是一个普遍的现象,但是在程序员中尤为突出。
我认为除了原来的开源项目有向闭源发展的趋势外(例如 MySQL 被 Oracle 收购后,创始人新建 MariaDB 项目),大可不必另起炉灶
我无意于讨论另起炉灶的各种原因,但是在另起炉灶前应当树立一个清晰的目标,如果只是为了实现和原来开源项目相同功能的话,就不必了。
要知道缺乏商业直接驱动的开源项目的周期很长,按照目前的需求重新实现一遍的话,等完成的时候,估计已经落后时代很久了。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值