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.