2KB项目,专业的源码交易网站 帮助 收藏 每日签到

使用开源来磨练你的编程技能

  • 时间:2019-01-23 18:28 编辑:2KB 来源:2KB.COM 阅读:326
  • 扫一扫,手机访问
  • 分享
摘要: 英文原文:Use
英文原文:Use Open Source to Hone Your Programming Skills

我已经写了很多年的软件,最近我意识到我接触的(写的,集成的等等)开源技术越多,我写的代码就越好,这让我想知道:这有相关性或者因果关系么?

阅读代码使你更强大

在我的编程生涯中,我早就知道我读的代码越多,我的代码就会越好。我知道当我不得不维护他人的代码时,简单干净的代码总是要打败花哨复杂的代码-即使他们有注释。另一方面,当我花了很长时间来理解复杂的代码,我通常会学到.

这使得我在我们不做这些的时候去推动代码审查,并且当官方“没有足够时间”做代码审查的时候,我会浏览仓库并且凭一己之力阅读代码。当然,当时我受到公司的限制来源于小规模团队。

超越语法

虽然不可避免的要与任何编程语言的语法作斗争,但这是学习如何充分利用该语言的最平常的一个方面。一个语言的语法往往是静态的,并且如果你搞错了编译器会报错。更深入的教训是一个语言最适合解决什么样的问题(”用正确的工具做正确的事“),并且用该语言写出更好的代码使其更高效以及可维护。

有很多方法可以选择一门新的语言,课程、教程、导师、书籍以及更多。当我学习一门新的语言时通常会使用这些选项的组合。有一点我注意到,当涉及到非语法元素时,它们通常非常相似,显然会遵照推荐的做法。

当你阅读到他人实际部署的代码时,你会得到更多。超越正常安排的学习之外还会学到模式和实践。在一个语言中做一件事的“正确”方法通常不是让其更好地工作。你会观察边界场景、一次性的以及非预期的集成。你会发现解决这些问题的方案,好的和坏的,但是当你真正地思考它的时候,就会产生“建议实践”,今天的模式就是明天的反模式。

你可能对于比如“总要注释”、"逗号放在末尾"、“缩进x个空格”这样的事有很深的感情,当然你是“对的”,反正我对这些以及编程的其他方面都有很深的感情。

当我读到他人的代码时,我会生气于“他们做错了”。当我读更多的时候,我开始理解了在他人的代码中常有,而我没有遇到过以及在我的方式中没有必要更难做,这样的情况是存在的。我不仅改变了我的一些想法,而且还学得更灵活。

开源无处不在

因为开放源代码运动的发展,可供阅读和学习的源代码量也在增加。从Gitlab、GitHub以及BitBucket这样的站点上我们可以拉取全功能的应用,不仅可以阅读而且可以捣鼓它。我很少遇到那些我想学习而至少是可用的开源代码中却没有的情况。

我记得刚开始一个新的语言时,会强调一些比如目录结构以及命名约定等一些简单的事情。现在我去看一些不同的开源项目并且会开始将一些共同的方法拼凑在一起。我很少会再强调这些类型的事情。

今天,有这么多的代码可用,有好的也有不好的。当你学习时,你不会真正地知道哪个是哪个。只要保持阅读你就会说出他们的不同。阅读“不好”的代码可以帮助你理解他为什么“不好”,关键是不要害怕去尝试任何你认为是正确的事,出错的时候承认错误,然后修正它继续前进。

烂代码真的烂吗

有人会说“烂代码比好代码多”。reddit上有一个讨论烂代码的专栏

从业的这几年中我已经写过很多或好或坏的代码了。当回过头来看之前写的代码时我常常想我当初是怎么写出这坨东西的。这就意味着我的技术仍在成长之中。如果看着之前的代码很好,说明我没有什么长进。

所以从烂代码中我们能学到什么呢?

读的烂代码越多,就越能避免写出烂代码

例如在学习或搜索中,你会找到并用到很多没多大用处的代码。但要记住,不要因为它们没有用处就认为它们很烂。学会如何使用它们会使你更加优秀。

其它翻译版本 (1) 加载中

如何判断它的好坏?

人们热衷于批判。如果在评论区你看到很多“这什么玩意儿”说明你看到的可能就是烂代码,但请找出它烂在哪里。不要成为只会评论“代码真烂”的喷子。不要自认为你了解这段代码的所有细节,代码写成这样也有可能是由于其他特殊原因。如果你找出了它的“烂”点,还是留下个有建设性的评论吧,或者...

试着完善下

提交一个有所改善的PR(pull request)。修正错误的语法,提出一个较好的方法,添加注释或修正代码的缩进;这些方法都会有所帮助。在提交时顺便为做出的变动添加适当的解释。

在帮助其他人的同时我也学到了很多。如果自认为理解了某个东西我仍要找其他人解释下,这会使我加深对它的认识,并且能及时发现是否有所误用。

回到主题

记住,开源的作用只有在参与中才能体现。大部分项目都欢迎对代码的改动,但做出贡献有很多方式。

参与测试并提交bug;帮助完善项目文档;编写教程与how-to示例;加入项目讨论——或者简单地帮其推广。这些都会有所帮助,参与越多效果越好。

其他资源

这里有一些链接能帮你入门。一些是我参与过的,还有一些是我没研究过的。如果你在本文中发现有用或不当之处,请不吝赐教。

本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接。 2KB翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。


2KB项目(www.2kb.com,源码交易平台),提供担保交易、源码交易、虚拟商品、在家创业、在线创业、任务交易、网站设计、软件设计、网络兼职、站长交易、域名交易、链接买卖、网站交易、广告买卖、站长培训、建站美工等服务

  • 全部评论(0)
资讯详情页最新发布上方横幅
最新发布的资讯信息
【计算机/互联网|】Nginx出现502错误(2020-01-20 21:02)
【计算机/互联网|】网站运营全智能软手V0.1版发布(2020-01-20 12:16)
【计算机/互联网|】淘宝这是怎么了?(2020-01-19 19:15)
【行业动态|】谷歌关闭小米智能摄像头,因为窃听器显示了陌生人家中的照片(2020-01-15 09:42)
【行业动态|】据报道谷歌新闻终止了数字杂志,退还主动订阅(2020-01-15 09:39)
【行业动态|】康佳将OLED电视带到美国与LG和索尼竞争(2020-01-15 09:38)
【行业动态|】2020年最佳AV接收机(2020-01-15 09:35)
【行业动态|】2020年最佳流媒体设备:Roku,Apple TV,Firebar,Chromecast等(2020-01-15 09:31)
【行业动态|】CES 2020预览:更多的流媒体服务和订阅即将到来(2020-01-08 21:41)
【行业动态|】从埃隆·马斯克到杰夫·贝佐斯,这30位人物定义了2010年代(2020-01-01 15:14)
联系我们

Q Q: 7090832

电话:400-0011-990

邮箱:7090832@qq.com

时间:9:00-23:00

联系客服
商家入住 服务咨询 投拆建议 联系客服
0577-67068160
手机版

扫一扫进手机版
返回顶部