Selepas pengalaman luar biasa yang saya alami dengan orang-orang dari Mattermost semasa Hacktoberfest (jangan lupa juga hadiah mereka!), saya memutuskan untuk pergi bersama mereka sekali lagi pada bulan November.
Secara literal "pergi" dengan mereka kali ini, memandangkan pelayan mereka ditulis dalam Go (saya minta maaf atas rasa humor saya yang menyakitkan hati). Semasa Hacktoberfest, saya bekerja pada aplikasi mudah alih mereka, yang ditulis dalam TypeScript menggunakan React Native. Walau bagaimanapun, isu yang saya dapat kali ini adalah berkaitan dengan pelayan mereka dan ini adalah kali pertama saya mengusahakan projek Go.
Pergi
Tanpa pengetahuan awal tentang Go, saya membuat keputusan yang tepat untuk mempelajarinya terlebih dahulu. Nasib baik, Go sangat mudah untuk mendapatkannya. Saya benar-benar kagum dengan kesederhanaannya sambil dapat menghasilkan perisian yang pantas dan boleh dipercayai. Video selama satu jam adalah satu-satunya yang saya perlukan untuk memahami asas-asasnya, dan saya mendapati diri saya berhenti sebentar berbanding semasa saya belajar Rust ?.
Pertama sekali saya ingin meluangkan sedikit masa untuk menghargai gopher yang sangat bodoh ini:
Dengan itu, saya suka bahawa Go ditaip secara statik dan kuat. Ini adalah sesuatu yang saya bincangkan dengan rakan baru-baru ini: Bahasa statik dan/atau taip kuat hanya memerlukan sedikit pemikiran lagi ke dalam reka bentuk kod anda, tetapi ia boleh menghapuskan sejumlah besar kekaburan. Selain itu, sama seperti Rust, pengkompil Go boleh membuat kesimpulan jenis jika boleh, yang menjadikan pemikiran tambahan lebih remeh.
Sesetengah orang memanggil Go sebagai "C moden". Sekarang saya faham mengapa: Ia berfungsi dengan sangat baik dan mempunyai kesederhanaan C. Ia menyokong operasi peringkat rendah menggunakan penunjuk. Tetapi tidak seperti C, ia datang dengan ciri yang anda harapkan daripada bahasa moden, seperti antara muka, kepingan, peta, dsb. Satu lagi ciri yang menarik ialah goroutine, yang merupakan model mudah unik untuk mengendalikan pelaksanaan selari.
Isu Paling Penting
Ternyata saya benar-benar keluar dan keterlaluan dengan pembelajaran Go kerana ini adalah isu yang sangat mudah. Apa yang saya perlu lakukan ialah melaksanakan pengendalian ralat dalam satu fail.
Dalam isu ini, mereka mempunyai bahagian yang mudah disebut bahawa mereka lebih suka ralat sama ada dikembalikan atau dilog. Mengetahui dokumen pembangun Mattermost dengan baik, saya segera menemui bahagian tentang pengendalian ralat.
Satu-satunya halangan yang saya hadapi ialah menentukan tahap log yang hendak digunakan. Walaupun ia disebut dalam dokumen, saya masih mendapati definisi itu samar-samar. Walau bagaimanapun, selepas carian pantas dalam projek, saya menyedari bahawa fungsi ini sentiasa menggunakan tahap log yang sama di tempat lain. Ini menghilangkan keraguan saya.
Memandangkan fungsi yang saya kerjakan menyajikan halaman HTML statik, saya juga memastikan kod ralat HTTP yang betul dikembalikan apabila ralat berlaku seperti itu:
http.Error(w, err.Error(), http.StatusInternalServerError)
Itu sahaja kerja! Saya memfailkan PR dan pada mulanya agak bimbang, kerana ini adalah kali pertama saya bekerja dengan Go, tetapi ternyata ia baik-baik saja. PR telah digabungkan hanya selepas pembaikan kecil.
Kesimpulan
Secara keseluruhan, ini adalah isu yang menyeronokkan dan mudah untuk diselesaikan. Saya gembira kerana saya memilihnya walaupun ia tidak begitu mencabar seperti beberapa isu lain yang telah saya usahakan. Saya sentiasa gembira untuk mempelajari bahasa baharu dan ini adalah alasan yang tepat untuk itu! Dan ia agak hebat kerana dapat menggunakannya dengan segera.
Atas ialah kandungan terperinci Pergi dengan Mattermost!. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Interfacesandpolymorphismingoenhancecodereusabilityandmaintainability.1) DefineInterfacesatTheRightAbstractionLevel.2) UseInterfacesforddendencyInjection.3) ProfileCodeTanageperperformanceImpacts.

TheinitfunctioningorunsautomaticallybeforethemainfunctiontoinitialializePackagesandsetuptheenvironment.it'susforforsettingupglobalvariables, sumber, danperformingone-timesetuptasksacrossanypackage

Kombinasi antara muka membina abstraksi kompleks dalam pengaturcaraan GO dengan memecahkan fungsi ke dalam antara muka kecil yang terfokus. 1) Tentukan pembaca, penulis dan antara muka yang lebih dekat. 2) Buat jenis kompleks seperti fail dan rangkaian dengan menggabungkan antara muka ini. 3) Gunakan fungsi ProcessData untuk menunjukkan cara mengendalikan antara muka gabungan ini. Pendekatan ini meningkatkan fleksibiliti kod, kesesuaian, dan kebolehgunaan semula, tetapi penjagaan harus diambil untuk mengelakkan pemecahan yang berlebihan dan kerumitan gabungan.

Artikel membincangkan melewati peta di GO, memberi tumpuan kepada amalan selamat, memodifikasi penyertaan, dan pertimbangan prestasi untuk peta besar. Masalah: Memastikan lelaran peta yang selamat dan cekap di GO, terutamanya dalam persekitaran serentak dan dengan L

Artikel ini membincangkan membuat dan memanipulasi peta di GO, termasuk kaedah permulaan dan menambah/mengemas kini elemen.

Artikel ini membincangkan perbezaan antara tatasusunan dan kepingan dalam GO, memberi tumpuan kepada saiz, peruntukan memori, lulus fungsi, dan senario penggunaan. Array adalah saiz tetap, diperuntukkan stack, manakala kepingan adalah dinamik, sering ditumpukan, dan lebih fleksibel.

Artikel ini membincangkan membuat dan memulakan irisan di GO, termasuk menggunakan literals, fungsi membuat, dan mengiris tatasusunan atau kepingan yang ada. Ia juga meliputi sintaks kepingan dan menentukan panjang dan kapasiti kepingan.

Artikel ini menerangkan cara membuat dan memulakan array di GO, membincangkan perbezaan antara tatasusunan dan kepingan, dan menangani had saiz maksimum untuk tatasusunan. Arrays vs. Slices: Tetap vs dinamik, nilai vs jenis rujukan.


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Muat turun versi mac editor Atom
Editor sumber terbuka yang paling popular

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

Dreamweaver Mac版
Alat pembangunan web visual

Pelayar Peperiksaan Selamat
Pelayar Peperiksaan Selamat ialah persekitaran pelayar selamat untuk mengambil peperiksaan dalam talian dengan selamat. Perisian ini menukar mana-mana komputer menjadi stesen kerja yang selamat. Ia mengawal akses kepada mana-mana utiliti dan menghalang pelajar daripada menggunakan sumber yang tidak dibenarkan.

SecLists
SecLists ialah rakan penguji keselamatan muktamad. Ia ialah koleksi pelbagai jenis senarai yang kerap digunakan semasa penilaian keselamatan, semuanya di satu tempat. SecLists membantu menjadikan ujian keselamatan lebih cekap dan produktif dengan menyediakan semua senarai yang mungkin diperlukan oleh penguji keselamatan dengan mudah. Jenis senarai termasuk nama pengguna, kata laluan, URL, muatan kabur, corak data sensitif, cangkerang web dan banyak lagi. Penguji hanya boleh menarik repositori ini ke mesin ujian baharu dan dia akan mempunyai akses kepada setiap jenis senarai yang dia perlukan.
