cari
Rumahpembangunan bahagian belakangGolangPembangunan Sumber Terbuka Adalah Hebat!

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

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>
</sha>

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 -

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

Hasilnya

Selepas menukar 5 fail, saya mendapat keputusan:

Open-Source Development is Amazing!

Kini ia mempunyai dua pilihan:

lumen explain <sha>
</sha>

dan

echo "HEAD" | lumen explain -

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!

Kenyataan
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
C dan Golang: Apabila prestasi sangat pentingC dan Golang: Apabila prestasi sangat pentingApr 13, 2025 am 12:11 AM

C lebih sesuai untuk senario di mana kawalan langsung sumber perkakasan dan pengoptimuman prestasi tinggi diperlukan, sementara Golang lebih sesuai untuk senario di mana pembangunan pesat dan pemprosesan konkurensi tinggi diperlukan. Kelebihan 1.C terletak pada ciri-ciri perkakasan dan keupayaan pengoptimuman yang tinggi, yang sesuai untuk keperluan berprestasi tinggi seperti pembangunan permainan. 2. Kelebihan Golang terletak pada sintaks ringkas dan sokongan konvensional semulajadi, yang sesuai untuk pembangunan perkhidmatan konvensional yang tinggi.

Golang dalam Tindakan: Contoh dan aplikasi dunia nyataGolang dalam Tindakan: Contoh dan aplikasi dunia nyataApr 12, 2025 am 12:11 AM

Golang cemerlang dalam aplikasi praktikal dan terkenal dengan kesederhanaan, kecekapan dan kesesuaiannya. 1) Pengaturcaraan serentak dilaksanakan melalui goroutine dan saluran, 2) Kod fleksibel ditulis menggunakan antara muka dan polimorfisme, 3) memudahkan pengaturcaraan rangkaian dengan pakej bersih/HTTP, 4) Membina crawler serentak yang cekap, 5) Debugging dan mengoptimumkan melalui alat dan amalan terbaik.

Golang: bahasa pengaturcaraan Go dijelaskanGolang: bahasa pengaturcaraan Go dijelaskanApr 10, 2025 am 11:18 AM

Ciri -ciri teras GO termasuk pengumpulan sampah, penyambungan statik dan sokongan konvensional. 1. Model keseragaman bahasa GO menyedari pengaturcaraan serentak yang cekap melalui goroutine dan saluran. 2. Antara muka dan polimorfisme dilaksanakan melalui kaedah antara muka, supaya jenis yang berbeza dapat diproses secara bersatu. 3. Penggunaan asas menunjukkan kecekapan definisi fungsi dan panggilan. 4. Dalam penggunaan lanjutan, kepingan memberikan fungsi saiz semula dinamik yang kuat. 5. Kesilapan umum seperti keadaan kaum dapat dikesan dan diselesaikan melalui perlumbaan getest. 6. Pengoptimuman prestasi menggunakan objek melalui sync.pool untuk mengurangkan tekanan pengumpulan sampah.

Tujuan Golang: Membina sistem yang cekap dan berskalaTujuan Golang: Membina sistem yang cekap dan berskalaApr 09, 2025 pm 05:17 PM

Pergi bahasa berfungsi dengan baik dalam membina sistem yang cekap dan berskala. Kelebihannya termasuk: 1. Prestasi Tinggi: Disusun ke dalam Kod Mesin, Kelajuan Berjalan Cepat; 2. Pengaturcaraan serentak: Memudahkan multitasking melalui goroutine dan saluran; 3. Kesederhanaan: sintaks ringkas, mengurangkan kos pembelajaran dan penyelenggaraan; 4. Cross-Platform: Menyokong kompilasi silang platform, penggunaan mudah.

Kenapa keputusan pesanan oleh pernyataan dalam penyortiran SQL kadang -kadang kelihatan rawak?Kenapa keputusan pesanan oleh pernyataan dalam penyortiran SQL kadang -kadang kelihatan rawak?Apr 02, 2025 pm 05:24 PM

Keliru mengenai penyortiran hasil pertanyaan SQL. Dalam proses pembelajaran SQL, anda sering menghadapi beberapa masalah yang mengelirukan. Baru-baru ini, penulis membaca "Asas Mick-SQL" ...

Adakah Teknologi Stack Convergence hanya proses pemilihan stack teknologi?Adakah Teknologi Stack Convergence hanya proses pemilihan stack teknologi?Apr 02, 2025 pm 05:21 PM

Hubungan antara konvergensi stack teknologi dan pemilihan teknologi dalam pembangunan perisian, pemilihan dan pengurusan susunan teknologi adalah isu yang sangat kritikal. Baru -baru ini, beberapa pembaca telah mencadangkan ...

Bagaimana menggunakan perbandingan refleksi dan mengendalikan perbezaan antara tiga struktur dalam GO?Bagaimana menggunakan perbandingan refleksi dan mengendalikan perbezaan antara tiga struktur dalam GO?Apr 02, 2025 pm 05:15 PM

Bagaimana membandingkan dan mengendalikan tiga struktur dalam bahasa Go. Dalam pengaturcaraan GO, kadang -kadang perlu untuk membandingkan perbezaan antara dua struktur dan menggunakan perbezaan ini kepada ...

See all articles

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
4 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌

Alat panas

Muat turun versi mac editor Atom

Muat turun versi mac editor Atom

Editor sumber terbuka yang paling popular

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Persekitaran pembangunan bersepadu PHP yang berkuasa

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Versi Mac WebStorm

Versi Mac WebStorm

Alat pembangunan JavaScript yang berguna

VSCode Windows 64-bit Muat Turun

VSCode Windows 64-bit Muat Turun

Editor IDE percuma dan berkuasa yang dilancarkan oleh Microsoft