我曾听过自由软件精神领袖理查德 · 马修 · 斯托曼(Richard Matthew Stallman)的演讲,演讲中他特别强调 "Free is not free",对这句话我的个人解释是 "自由,而不是免费".free 开源是自由,但不等于免费.开源是一种商业行为.试想一下,我们平日用谷歌百度做搜索,表面是免费,背后隐藏的是商业广告给他们带来的巨大利润.我们在尽情享用那些开源的免费大餐时,已然完全忘记开源的真正力量--开源是自由的,但不是免费的.
综上,我对开源的理解可能首先是一个社区.如自由软件精神领袖创始人所说 "free is not free",影响开源最重要的因素是以怎样的精神心态去开源.所谓自由,是开发者、测试者、贡献者、用户,可以自由使用、自由交流,以及自由离开.这样的状态使得所有人都感觉舒适自由,在此程度上舒服地做事,进而有一个好的 idea 去改进.
其次,善用身边的小工具.很多时候我们身边的一些小工具,是可以锻炼出来,做一些开源的东西.例如,我在我开源的一个东西 bat (github.com/astaxie/bat) 下,忘记原来是 java 还是 python 写的了,有一个叫 httpIE 的命令行工具,开源测试 lastfor 的 api 的.
于是 go 语言,自己重新写一个.这个就是结合我自己的 beego, 因为里面有很多 api,然后用 bat 测这些 api.后面,我又考虑,用 bat 是不是可以写一个 desl 的语言.就是我要测的.写一个 json,然后 request 应该怎么样.response 应该怎么样.也就说类似黑盒测试一样的东西.你只要写那个我的请求是什么,返回是什么.你用 bat 运行下.是不是就可以测试结果出来了.
这是比较容易入手的.因为你能解决你自己的那些问题,同时大家可能同事之间也好,圈子里面也好.大家平常的时候是怎么去处理这些问题的.然后这个问题,我怎么样把它做的更好.很多时候,我们都是说,更好.那怎么样才能更好呢?我们用某一个东西的时候,感觉它不是很好或者不是我想要的东西.我怎么样让它变得更好?当你有一个想法的时候,其实,你已经有一个 idea 了.有了一个 idea 时候,怎么样变得更好.变得更好的过程,其实是已经产生了一个开源项目了.
再然后,就是开始把你的东西推广到全球,能够链接全世界的开发者交流这个东西.那怎么做到这一步呢?对我们程序员来说,现在是最好的年代.因为我们有了 github,github 是给我们程序员一个交流平台.因为,很多人说,"Talk is cheap, show me the code." 把代码放在那里,文档也有了.这个时候,github 的星星也就一颗两颗,没人来理睬.
这个时候,你需要去一定的圈子里面,做一定的宣传.现在确实是一个信息爆炸的时代.再好的酒也怕巷子深了.所以,你要去社区里面进行宣传.比如说 go 语言的开源项目,去 Google 的 Groups 里面去宣传.或者莱推特瑞或者 prezi 或者 facebook 的群组去宣传.当大家看到这个东西,是我们想要的,那么一切自然行云流水了.
我曾听过自由软件精神领袖理查德 · 马修 · 斯托曼(Richard Matthew Stallman)的演讲,演讲中他特别强调 "Free is not free",对这句话我的个人解释是 "自由,而不是免费".free 开源是自由,但不等于免费.开源是一种商业行为.试想一下,我们平日用谷歌百度做搜索,表面是免费,背后隐藏的是商业广告给他们带来的巨大利润.我们在尽情享用那些开源的免费大餐时,已然完全忘记开源的真正力量--开源是自由的,但不是免费的.
综上,我对开源的理解可能首先是一个社区.如自由软件精神领袖创始人所说 "free is not free",影响开源最重要的因素是以怎样的精神心态去开源.所谓自由,是开发者、测试者、贡献者、用户,可以自由使用、自由交流,以及自由离开.这样的状态使得所有人都感觉舒适自由,在此程度上舒服地做事,进而有一个好的 idea 去改进.
其次,善用身边的小工具.很多时候我们身边的一些小工具,是可以锻炼出来,做一些开源的东西.例如,我在我开源的一个东西 bat (github.com/astaxie/bat) 下,忘记原来是 java 还是 python 写的了,有一个叫 httpIE 的命令行工具,开源测试 lastfor 的 api 的.
于是 go 语言,自己重新写一个.这个就是结合我自己的 beego, 因为里面有很多 api,然后用 bat 测这些 api.后面,我又考虑,用 bat 是不是可以写一个 desl 的语言.就是我要测的.写一个 json,然后 request 应该怎么样.response 应该怎么样.也就说类似黑盒测试一样的东西.你只要写那个我的请求是什么,返回是什么.你用 bat 运行下.是不是就可以测试结果出来了.
这是比较容易入手的.因为你能解决你自己的那些问题,同时大家可能同事之间也好,圈子里面也好.大家平常的时候是怎么去处理这些问题的.然后这个问题,我怎么样把它做的更好.很多时候,我们都是说,更好.那怎么样才能更好呢?我们用某一个东西的时候,感觉它不是很好或者不是我想要的东西.我怎么样让它变得更好?当你有一个想法的时候,其实,你已经有一个 idea 了.有了一个 idea 时候,怎么样变得更好.变得更好的过程,其实是已经产生了一个开源项目了.
再然后,就是开始把你的东西推广到全球,能够链接全世界的开发者交流这个东西.那怎么做到这一步呢?对我们程序员来说,现在是最好的年代.因为我们有了 github,github 是给我们程序员一个交流平台.因为,很多人说,"Talk is cheap, show me the code." 把代码放在那里,文档也有了.这个时候,github 的星星也就一颗两颗,没人来理睬.
这个时候,你需要去一定的圈子里面,做一定的宣传.现在确实是一个信息爆炸的时代.再好的酒也怕巷子深了.所以,你要去社区里面进行宣传.比如说 go 语言的开源项目,去 Google 的 Groups 里面去宣传.或者莱推特瑞或者 prezi 或者 facebook 的群组去宣传.当大家看到这个东西,是我们想要的,那么一切自然行云流水了.