Forkney it: 8 Go projects yang menarik untuk digali ke dalam kode sumber

Kami di Distrik Biner akan intensif pergi. Dalam dua hari, Anda dapat belajar memahami ideologi dan isi Go, menulis kode yang bersih dan dapat diuji. Tetapi ini adalah langkah pertama, dan kemudian - berlatih, berlatih, berlatih: baca kode orang lain, tulis dan edit sendiri.

Sumber terbuka sangat ideal untuk ini:

  • Sumber terbuka meningkatkan visibilitas. Anda dapat secara non-selektif mempelajari sumbernya.
  • Open source memberikan insentif untuk menulis kode sebersih mungkin dan mendokumentasikan logika.
  • Berkontribusi pada gerakan sumber terbuka meningkatkan karma.



Bersama dengan Sergey Tolsi, lulusan kursus Go kami , kami membuat daftar proyek sumber terbuka dari berbagai tingkatan dan orientasi yang cocok untuk belajar cara menulis kode yang baik dan pada saat yang sama membuat dunia menjadi tempat yang lebih baik.

Strategi Tolsi :
“Jika Anda ingin menggunakan sumber terbuka untuk pelatihan, pertama-tama tentukan bidang pekerjaan tertentu dan tetapkan tujuan - misalnya, untuk membuat situs web atau permainan, semacam layanan - dan kemudian temukan proyek atau kerangka kerja serupa dengan contoh. Sebagai contoh, saya bekerja di bidang cryptocurrency dan menemukan bahwa mereka menulis di Go implementasi dari jaringan Lightning untuk mempercepat transfer di jaringan Bitcoin dan simpul paling stabil untuk Ethereum adalah geth . ”

1. Docker


Mari kita mulai dengan salah satu proyek paling kompleks dan produktif yang dikenal jauh melampaui Komunitas Go. Sejak 2013, Docker didistribusikan secara bebas di bawah lisensi Apache 2.0 dan merupakan sistem untuk membuat mesin virtual terisolasi dengan lingkungan apa pun yang diperlukan untuk menguji aplikasi. Komponen kuncinya, libcontainer, adalah standar untuk sistem semacam ini. Implementasi terbaik dari "kotak pasir" misalnya tidak dapat ditemukan.

2. Kubernetes


Proyek lain yang menarik, yang muncul pada pertengahan 2014, terkait erat dengan Docker: Kubernetes , perangkat lunak untuk manajemen grup wadah pada armada besar perangkat. Mungkin saja Anda sudah berurusan dengannya, tetapi apakah Anda sudah melihat di balik tudung proyek ini?

Jika Anda mempelajari Go, ada baiknya melakukannya jika hanya karena Kubernetes ditulis oleh programmer Google, dan di antara kontributor proyek ada spesialis dari RedHat, IBM dan Microsoft. Codebase Kubernetes disediakan dengan panduan Kontributor Kubernetes yang bagus, dan Anda dapat mengobrol dengan tim pengembangan di Slack selama sesi tanya jawab .

3. Sinkronkan


Syncthing adalah proyek yang dirancang dengan baik tanpa masalah teknis yang nyata dan bug kritis, dibuat dengan tujuan untuk praktik Go Efektif .

Implementasi sistem berbagi file terdistribusi seperti BitTorrent Sync didasarkan pada open source Block Exchange Protocol (BEP).

Dibandingkan dengan Kubernetes, Syncthing memiliki arsitektur sederhana yang hanya terdiri dari tiga lapisan utama. Kode program sesuai dengan perpustakaan Go standar dan menggabungkannya dengan LevelDB dan beberapa perpustakaan lainnya. Mereka digunakan untuk mengenkripsi koneksi jaringan, menghitung hash dan menyimpan data. Untuk memahami basis kodenya akan membantu panduan dari situs resmi dan forum yang hidup .

4. G3N


Bagaimana dengan mesin 3D yang dibuat oleh programmer untuk programmer? Judul ini dipegang oleh G3N , dan sepenuhnya ditulis dalam Go. Mesin ini cocok untuk permainan, tetapi diposisikan sebagai alat untuk menulis aplikasi interaktif.

5. Belajarlah


Pembelajaran mesin dan Python hampir identik, tetapi Go juga berguna untuk ilmuwan data. Pustaka pembelajaran mesin GoLearn yang sederhana dan fleksibel ditulis dalam bahasa ini. Ia menggunakan cangkang Gonum BLAN dan mendukung algoritma pembelajaran mesin dasar, termasuk: metode vektor dukungan, regresi linier, jaringan saraf, hutan acak, pohon keputusan dan classifier Bayesian yang naif.

6. Gorgonia


Solusi pembelajaran mesin tingkat rendah Go - Gorgonia - juga patut diperhatikan. Perpustakaan ini, mengingatkan konsep TensorFlow , menggunakan konsep mewakili persamaan dalam grafik dan dikemas dalam satu file biner.

7. acra


Mempelajari basis kode acra , enkripsi dan alat penyimpanan basis data aman yang dirancang untuk layanan microser pada platform seluler dan web, bisa menjadi pengalaman yang menarik. Ini adalah kesempatan untuk mempelajari kode yang benar-benar aman dan belajar dari pengalaman bagaimana mendeteksi dan melindungi terhadap kebocoran data, mengintegrasikan kriptografi ke dalam proyek.

Selain itu, pustaka klien AcraWriter tersedia tidak hanya di Go, tetapi juga di Ruby, Python, NodeJS, iOS (Objective-C / Swift), Android Java dan PHP - Anda dapat membandingkan implementasi dan mempelajari beberapa seluk-beluk perangkat lunak porting dalam praktiknya.

Versi terbaru dari dokumentasi dan tutorial Acra tersedia di server resmi Cossack Labs .

8. ConnectorDB


ConnectorDB cocok jika Anda tidak hanya ingin mempelajari kode orang lain, tetapi juga melakukan sesuatu yang berguna untuk diri Anda sendiri. Ini adalah platform sumber terbuka untuk menyebarkan segmen Internet Anda sendiri berdasarkan perangkat yang sudah ada. Ini mengumpulkan data dari komputer, smartphone dari browser dan memprosesnya.

Setelah Anda memahami kode ini, Anda dapat menulis modul baru dan menghubungkan hampir semua perangkat ke ConnectorDB, mengatur pemantauan hidup Anda sendiri, mulai dari memantau aktivitas fisik dan berakhir dengan menghitung produktivitas dan menilai suasana hati.

Dan juga ...


Tempat yang ideal untuk memulai pencarian Anda adalah daftar Awesome Go , di mana komunitas mengumpulkan tautan ke perpustakaan open source dan aplikasi terbaik di Go. Selain itu, Wiki berguna untuk repositori bahasa. Ini memiliki daftar artikel , kursus, dan buku yang berpotensi bermanfaat .

Dengan menganalisis kode proyek dan berkontribusi, Anda dapat mengembangkan keterampilan yang diperoleh dan memperbarui pengetahuan. Ada peluang untuk terlibat dalam gerakan open source, dan hanya ada satu cara untuk mengetahui seberapa dalam dan panjangnya. Dan bagi mereka yang akan memulai dengan dasar-dasar dan ingin segera bergabung dengan pengembangan, pada 8 dan 9 Desember program intensif praktis pada pemrograman on Go akan berlangsung di Distrik Biner.

Source: https://habr.com/ru/post/id432022/


All Articles