Rumah > pembangunan bahagian belakang > Golang > Pembangunan Sumber Terbuka Adalah Hebat!

Pembangunan Sumber Terbuka Adalah Hebat!

Barbara Streisand
Lepaskan: 2024-11-28 11:01:12
asal
812 orang telah melayarinya

Jadual Kandungan

  • Pengenalan
  • Isu Buruk Pertama
    • Bagaimana saya cuba membetulkannya?
  • Saling Membantu!
  • PerkaraKebanyakan
    • Isu
    • Tujuan Isu
  • Kembali Kepada CLI
    • Huraian Isu
    • Apakah maksudnya?
    • Pelaksanaan
    • Keputusan
  • Kesimpulan

pengenalan

Catatan blog ini adalah mengenai Keluaran 0.3. Saya ingin mulakan dengan sedikit pengenalan, menerangkan betapa sukarnya untuk mencari isu yang baik. Untuk Keluaran terakhir 0.2 saya telah menghabiskan sepanjang masa saya untuk projek JavaFX yang besar, saya tidak berpuas hati langsung, atas sebab saya terpaksa mencari dan menutup dua isu dalam masa beberapa hari. Kali ini saya hampir terperangkap dengan masalah yang sama, tetapi akhirnya saya melayannya sebaik mungkin. Biar saya memandu anda melalui garis masa.

Isu Buruk Pertama

Pada mulanya, saya telah menemui isu, di mana saya sepatutnya mengalihkan Ikon Apl daripada Dok ke Dulang untuk pengguna macOS. Bunyinya sangat mudah. Walau bagaimanapun, projek ditulis dalam Go yang saya tidak pernah gunakan sebelum ini. Jika anda seorang pembaca yang biasa dengan blog saya, anda pasti tahu berapa kerap saya mempelajari bahasa pengaturcaraan baharu. Melangkah ke hadapan, saya memutuskan untuk belajar Go lang dari awal.

Biar saya terangkan dengan cepat tentang projek ini. Ini adalah penyekat iklan dan pengawal privasi yang Mudah, percuma dan cekap untuk Windows, macOS dan Linux.

systray - Percubaan Pertama

Nasib baik, Go sangat mudah untuk dipelajari, jadi mari kita teruskan ke percubaan saya untuk mengalihkan ikon dari Dok ke Dulang.

Untuk percubaan pertama saya cuba melaksanakan menggunakan perpustakaan systray yang ditulis dalam Objektif-C. Ia membantu memanipulasi UI sistem macOS dan mengalihkan aplikasi daripada Dok ke Dulang. Saya telah menulis kod, menggunakan dokumentasi dalam masa 2 jam, sangat gembira. Walau bagaimanapun, saya mempunyai isu yang berkaitan dengan perpustakaan lain yang dipanggil raungan yang membantu melaksanakan UI juga ditulis dalam Objektif-C. Akhirnya, membina projek itu gagal, atas sebab kedua-dua perpustakaan ini bercanggah kerana mereka menggunakan penamaan yang sama. Saya terpaksa bergerak ke hadapan dan mencuba perpustakaan/kaedah yang berbeza.

tuan rumah dulang - Percubaan Kedua

Pada asasnya, perpustakaan ini berfungsi dengan cara yang sama seperti systray, dan saya mengalami isu yang sama.

Mana-mana perpustakaan lain untuk melakukan ini berfungsi dengan cara yang sama, jadi saya disusun.

Bagaimana saya cuba membetulkannya?

Saya membatalkan projek systray dan menukar penamaan yang menyebabkan konflik. Mengimport garpu saya, kerana Go membenarkan untuk mengimport terus menggunakan git-url.
Malangnya, ia tidak berjaya langsung...

Anda boleh menyemak garpu saya dan melihat perubahan: Klik saya :D

Objektif-C - Percubaan Ketiga

Kali ini saya cuba menulis kod saya, menggunakan Objective-C dan Go lang. Selepas beberapa lama, saya mendapat penyelesaian, tetapi saya mendapat ralat ini:

r0      0x0
r1      0x0
r2      0x0
r3      0x0
r4      0x18fef62cb
r5      0x16d28db00
r6      0x6e
r7      0x0
r8      0x1e844b5b5be91e5a
r9      0x1e844b5a36c1ee5a
r10     0x200
r11     0xb
r12     0x0
r13     0x1ff800
r14     0x7fb
r15     0xd3c1205a
r16     0x148
r17     0x202129928
r18     0x0
r19     0x6
r20     0x16d28f000
r21     0x1003
r22     0x16d28f0e0
r23     0x2
r24     0x0
r25     0x16d28ecc0
r26     0x1f9a37000
r27     0x828
r28     0x140001021c0
r29     0x16d28da70
lr      0x18ff3ac20
sp      0x16d28da50
pc      0x18ff02a60
fault   0x18ff02a60
Salin selepas log masuk
Salin selepas log masuk

Mesej ralat menunjukkan bahawa anda sedang cuba untuk memulakan tika NSWindow di luar urutan utama, yang tidak dibenarkan dalam aplikasi macOS. Ia adalah masalah besar, kerana saya tidak dapat melakukannya dalam urutan utama, atas sebab fungsi selebihnya tidak akan berfungsi.

Kesimpulan Isu Buruk Pertama

Saya dan Maintainer mengadakan ceramah kecil di mana saya telah menerangkan segala-galanya. Akhirnya, dia bersetuju bahawa mustahil untuk dilaksanakan dengan struktur projek semasa... Saya tidak menyelesaikannya, dan tidak mempunyai PR :c

Saling Membantu!

Komuniti sumber terbuka adalah cemerlang kerana orang ramai cenderung untuk membantu antara satu sama lain. Saya hanya mempunyai seminggu untuk menyelesaikannya, jadi saya meminta bantuan rakan saya Theo. Dia menghantar saya beberapa repo yang dia kerjakan, dan saya memutuskan untuk mengerjakannya.

PerkaraKebanyakan

MatterMost ialah platform sumber terbuka untuk kerjasama selamat merentas keseluruhan kitaran hayat pembangunan perisian. Ia adalah platform yang cukup popular dan mempunyai banyak isu, dokumentasi yang besar untuk pengguna dan pemaju. Tidak sukar untuk menyumbang kepada projek ini.

Isu

Kali ini saya telah mengambil sesuatu yang sepadan dengan tahap kemahiran semasa saya, dan saya tidak menembak kaki saya. Ia adalah isu mudah yang ditemui dalam perkara paling awal yang disebut.

Tujuan Isu

Tujuan isu itu adalah untuk membetulkan ralat linter untuk salah satu fail. Saya menyediakan projek itu, dan mula mengusahakannya.

Perkara pertama dahulu, saya terpaksa menjalankan linter dan melihat semua ralat. Saya menyemak baris di mana ia berlaku, dan membetulkannya dengan cepat. Akhirnya, membuka PR.

Kembali Kepada CLI

Saya sangat suka bekerja pada alatan CLI kerana ia menyeronokkan bagi saya. Untuk PR kedua saya menemui projek yang dipanggil lumen. Lumen ialah mesej AI Git Commit segera, Git menukar ringkasan daripada CLI. Saya sangat seronok mengerjakan projek ini! Malangnya, mereka tidak mempunyai banyak isu, tetapi saya cukup bernasib baik kerana ditugaskan. Selain itu, alat ini ditulis dalam Rust, jadi saya terpaksa menyegarkan pengetahuan saya.

Huraian Isu

Saya menemui isu Tambah sokongan STDIN untuk arahan terangkan.

Apakah maksudnya?

Alat ini mempunyai pilihan menerangkan yang digunakan dengan cara ini:

lumen explain <sha>
Salin selepas log masuk
Salin selepas log masuk

Arahan ini menerangkan segala-galanya tentang komit tertentu, perkara yang diubah dan sebabnya. Contoh:

Open-Source Development is Amazing!

Alat yang cukup berguna, ya?

Pelaksanaan saya sepatutnya membenarkan untuk menambah kefungsian pada arahan ini:

echo "HEAD" | lumen explain -
Salin selepas log masuk
Salin selepas log masuk

Jadi ia memerlukan nilai STDIN daripada gema, dalam contoh HEAD saya, dan menggantikan - dengan nilai HEAD itu.

Perlaksanaan

Saya menyedari cara melaksanakannya. Syarat dibuat untuk menyemak sama ada - bukannya sha.

r0      0x0
r1      0x0
r2      0x0
r3      0x0
r4      0x18fef62cb
r5      0x16d28db00
r6      0x6e
r7      0x0
r8      0x1e844b5b5be91e5a
r9      0x1e844b5a36c1ee5a
r10     0x200
r11     0xb
r12     0x0
r13     0x1ff800
r14     0x7fb
r15     0xd3c1205a
r16     0x148
r17     0x202129928
r18     0x0
r19     0x6
r20     0x16d28f000
r21     0x1003
r22     0x16d28f0e0
r23     0x2
r24     0x0
r25     0x16d28ecc0
r26     0x1f9a37000
r27     0x828
r28     0x140001021c0
r29     0x16d28da70
lr      0x18ff3ac20
sp      0x16d28da50
pc      0x18ff02a60
fault   0x18ff02a60
Salin selepas log masuk
Salin selepas log masuk

Hasilnya

Selepas menukar 5 fail, saya mendapat keputusan:

Open-Source Development is Amazing!

Kini ia mempunyai dua pilihan:

lumen explain <sha>
Salin selepas log masuk
Salin selepas log masuk

dan

echo "HEAD" | lumen explain -
Salin selepas log masuk
Salin selepas log masuk

Kedua-dua pilihan ini berfungsi, pelaksanaan saya menambah fungsi baharu dan disimpan yang telah dilaksanakan sebelum ini! Inilah PR saya.

Kesimpulan

Beberapa minggu lepas bukan mudah, tetapi menyeronokkan. Saya belajar bahasa baharu Go. Berhubung dengan komuniti Sumber Terbuka yang membantu saya mencari salah satu repo yang saya sumbangkan!

Atas ialah kandungan terperinci Pembangunan Sumber Terbuka Adalah Hebat!. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:dev.to
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan