Forkney it:8个有趣的源代码开发项目

我们位于Binary District的Go语言将不断发展。 在两天内,您可以学习了解Go的思想和内在知识,编写干净,可测试的代码。 但这是第一步,然后-练习,练习,练习:阅读别人的代码,编写和编辑自己的代码。

开源对此非常理想:

  • 开源提高了可见性。 您可以非选择性地研究源。
  • 开源鼓励人们编写尽可能简洁的代码和文档逻辑。
  • 为开源运动做出贡献可提高业力。



我们与毕业于我们课程的 Sergei Tolsi一起列出了各种级别和方向的开源项目,这些项目适合学习如何编写良好的代码,同时使世界变得更美好。

托尔西策略:
“如果您想使用开源进行培训,请首先确定特定的工作领域并设定目标(例如,制作网站或游戏,某种服务),然后找到类似的项目或带有示例的框架。 例如,我从事加密货币领域的工作,发现他们正在Go上编写Lightning网络的实现,以加快比特币网络中的传输速度,而以太坊最稳定的节点是geth 。”

1.码头工人


让我们从远远超出Go社区已知的最复杂,最庞大的项目之一开始。 自2013年以来, Docker已根据Apache 2.0许可自由分发,并且是一个用于创建隔离的虚拟机的系统,该虚拟机具有测试应用程序所需的任何环境。 它的关键组件libcontainer是此类系统的标准。 例如,找不到“沙盒”的最佳实现。

2. Kubernetes


另一个有趣的项目出现在2014年中期,它与Docker紧密相连: Kubernetes ,该软件用于在大型设备上对容器进行组管理。 您可能已经与他打交道了,但是您是否在这个项目的幕后?

如果您正在研究Go,那么仅因为Kubernetes是由Google程序员编写的,并且值得一提的话,那么值得这样做。在项目贡献者中,有RedHat,IBM和Microsoft的专家。 Kubernetes代码库提供了很好的Kubernetes贡献者指南 ,您可以在常规问答环节中与 Slack的开发团队聊天。

3.同步


Syncthing是一个经过精心设计的项目,没有明显的技术问题和严重的错误,这些错误是根据有效的Go实践创建的。

分布式文件共享系统(例如BitTorrent Sync)的这种实现基于开放源代码块交换协议(BEP)。

与Kubernetes相比,Syncthing具有仅由三个主要层组成的简单架构。 程序代码对应于标准的Go库,并将其与LevelDB和其他几个库结合在一起。 它们用于加密网络连接,计算哈希值和存储数据。 理解其代码库将有助于从官方站点生动活泼的论坛中获取指南

4. G3N


程序员为程序员创建的3D引擎怎么样? 该标题由G3N拥有 ,并且也完全用Go编写。 该引擎适用于游戏,但定位为用于编写交互式应用程序的工具。

5. GoLearn


机器学习和Python几乎是同义词,但是Go对数据科学家也很有用。 GoLearn的简单而灵活的机器学习库就是用这种语言编写的。 它使用Gonum BLAN外壳并支持基本的机器学习算法,包括:支持向量法,线性回归,神经网络,随机森林,决策树和朴素的贝叶斯分类器。

6. org草属


Go的底层机器学习解决方案-Gorgonia-也值得注意。 该库让人联想到TensorFlow的概念,它使用在图形中表示方程式的概念,并打包在一个二进制文件中。

7.阿克拉


研究acra的代码库(一种为移动平台和Web上的微服务而设计的加密和安全的数据库存储工具)可能会很有趣。 这是学习真正安全的代码并从他人的经验中学习以检测并防止数据泄漏,将加密技术集成到项目中的机会。

此外, AcraWriter客户端库不仅可以在Go上使用,而且还可以在Ruby,Python,NodeJS,iOS(Objective-C / Swift),Android Java和PHP上使用 -您可以比较实现并在实践中了解移植软件的一些精妙之处。

官方的Cossack Labs服务器上提供了Acra文档和教程的最新版本。

8. ConnectorDB


如果您不仅想学习别人的代码,还想自己做一些有用的事情, ConnectorDB非常适合。 这是一个开放源代码平台,用于基于现有设备来部署您自己的物联网部分。 它从计算机,智能手机从浏览器聚合数据并进行处理。

一旦理解了代码,就可以编写新模块并将几乎所有设备连接到ConnectorDB,设置对自己生活的监视,从监视身体活动开始,直至计算生产力和评估情绪。

还有...


开始搜索的理想场所是Awesome Go列表 ,该社区在其中收集指向Go上最好的开源库和应用程序的链接。 此外,Wiki对于语言存储库也很有用。 它列出了可能有用的文章课程书籍

通过分析项目代码并做出贡献,您可以开发获得的技能并更新知识。 有机会参与开源运动,只有一种方法可以弄清它的深度和长短。 对于想从基础开始并希望立即参与开发的人员,将于12月8日至9日在Binary District进行关于Go编程实践性强化课程。

Source: https://habr.com/ru/post/zh-CN432022/


All Articles