微信号:programmer_club

介绍:程序员第一自媒体,与你探讨码农人生路上遇到的各类泛技术话题,定期为你推荐码农人生思考、感悟以及启迪!

开源能给你带来的

2016-09-11 22:05 围城莫

没有秘密就是最大秘密,

当你完全了解一个人时,

也许你看到的是一副长久的面具。


一个人最可怕的,不是他有多坏,也不是他做过什么事。一个人最可怕的,是你觉得他的一切你都知道。但实际上,到底是不是这样,不好说。


Windows现在是世界上装机量最多的操作系统,是美国微软公司研发的一套操作系统,它问世于1985年,起初仅仅是Microsoft-DOS模拟环境,后续的系统版本由于微软不断的更新升级,不但易用,也慢慢的成为家家户户人们最喜爱的操作系统。


但是!!!


这系统是闭源的,至于不开源的原因。因为Windows是一款商业盈利性的软件,作为一家公司,盈利才是核心,也就意味着Windows要维护自己的核心目的。


作为全球绝对垄断的电脑系统,开源意味着更多人参与修改即便不免费,也意味着更多各种各样的修改版本以及风险。而更大的不安全性也会导致大家对这个品牌失去信任。导致品牌信誉度下降。


再者,都说是垄断的地位了,都没竞争对手了,开不开源又怎样?而且Windows是一个大型开发团队完成的,巨大的代码量,就算开源,个人进行更新的难度及其大,没有开源的实际意义。


从以上意义来说,Windows是一款成功的商业软件。但从程序员的角度来看,不开源就意味着没法做开发,所以在硅谷,大部份程序员都使用的Linux或者Mac OS X,除了微软系程序员,或者嵌入式开发程序员,或者windows游戏开发者。




开源能给你带来的,是你难以想象的。


阅读代码能让你变得更优秀


阅读的代码越多,代码就能变得更好。当你不得不维护其他人的代码时,简单和干净的代码几乎总是比花哨或复杂的代码好——即使有注释。然而另一方面,当你花足够的时间去理解复杂代码的时候,你常常能够学到新的技巧。不论怎么样,都能让你有所提高。


这使得你在那些没有代码审查的地方一再争取。而当没有足够的时间来正式执行“代码审查”的时候,你可以自己浏览存储库和阅读代码。


超越语法


在你不得不全力对付任意编程语言的语法时,也就是学习如何充分利用该语言最琐碎的时刻。一门语言的语法往往是非常静态的,并且如果你出错了,你的编译器会向你控诉。更深层次的课程涉及到什么语言最适合解决什么样的问题(“合适的工具做合适的工作”),以及如何用那种语言编写代码以便于使它高效和可维护。


学习新语言有许多方法:课程,教程,导师,书籍以及等等。我通常会结合这些选项来学习一门新的语言。我注意到,当涉及到非语法元素的时候,这些方法常常非常相似。


阅读来自于其他人的实际部署代码会让你收获更多。不仅仅是常规的结构化学习,你还需要学习模式和实践方法。语言中所谓“正确”的做事方式并不总是效果最佳的方式。你会经历边缘情况,一次性事务以及意想不到的集成。你也会找到这些问题的解决方案,有好有坏,但如果你认真思考的话,那么这正是出来“推荐做法”的地方。今天的模式就是就是明天的反面模式。


你可能对有些事情,例如“总是注释”,“逗号放到最后”,“缩进x个空格”有着自己的想法,当然你是对的。我对提到的这些及编码的其他方面也有着自己的感受。


开源无处不在


随着开源运动的发展,可供阅读和学习的代码数量也大幅度增长。例如Gitlab,GitHub和到BitBucket这些网站就允许我们获取全功能的应用程序,不仅可以阅读代码,还可以摆弄。很少有我想要学习的东西是不能在开源代码中获取的。


可用的代码是如此之多,但质量却良莠不齐。当我们想要学习的时候,常常搞不清楚哪个好哪个不好。那就保持阅读代码吧,慢慢地你会学会如何区分。阅读“坏”的代码可以帮助你理解为什么它是“坏”的。关键是不要害怕尝试任何你觉得看上去正确的东西,并且当你走错路的时候能够承认错误,并改正问题,然后继续前行。


坏的代码就坏的,是这样的吗?


有人会说“坏的代码比好的代码要更多更明显”。sub-reddit致力于坏的代码。


当你写了很久的代码后,你回去看你当初写的代码,通常你的第一想法是如何,当初你写的代码就是垃圾!这实际上意味着你还在学习中。如果你看到你以前的代码,觉得它看上去非常伟大,那么说明你并没有提高。



那么,我们怎么才能从坏的代码中学到东西呢?


你阅读的坏代码越多,那么你就越擅长发现坏的代码


当你在学习和搜索例子的时候,你会发现和使用大量不能工作的代码。请记住,仅仅因为它不适合你的情况,并不能说明它就是坏的代码。学习如何让它工作能够使得你变得更优秀。


你怎么知道它是坏的代码?


人们喜欢批评。阅读评论,如果你看到很多“WTF(什么玩意)”,那么可能你看到的正是坏的代码,试着指出为什么不好的原因。不要只留下“这代码真烂”这样的评论。不要装得你好像懂得坏代码的所有需求,要知道,总有一个它之所以被这样写的正当理由。如果你知道它为什么是坏代码的原因,那么不妨留下一个有建设性的评论。或者……


让它变成好的代码


放一个能让代码变得更好的pull请求。修正语法,使用更好的方法,添加注释或修改缩进:这些都是改进代码的伟大方式。加一个为什么你推荐改变代码的解释。



当你致力于开源之后,你会很快的就发现,你写出来的代码,和你以前的相比,改善很大。而这,也是开源所带给你的。

程序员e家

programmer_clubs


程序员第一自媒体,与你探讨码农人生路上遇到的各类泛技术话题,定期为你推荐码农人生思考、感悟以及启迪!


▲长按二维码“识别”关注


了解野狗,点击阅读原文“报名”

 
程序员之家 更多文章 2016年夏季互联网高端人才流动报告 如何通过谷歌的面试 马云爸爸,你不爱我了吗? 快播再见 我想跳槽了
猜您喜欢 .NET面试题系列(2) - .NET框架基础知识二 通过例子说明Python 2.7.x和Python 3.x关键差异 优雅实用的「高效率工具」App 推荐 Java 正则表达式 浅析weex之vdom渲染