Peralihan daripada permainan Blackjack kepada pemuat turun data Pokémon CLI telah menjadi perjalanan yang bermanfaat (dan merendahkan diri)! Inilah yang saya pelajari, tempat saya tersekat dan cara setiap projek membantu saya berkembang sebagai pembangun.
Apabila saya mengusahakan permainan Blackjack saya, saya mula menguasai aliran kawalan, logik bersyarat dan mengurus input pengguna. Blackjack agak serba lengkap, tetapi ia memberi saya keyakinan untuk mengendalikan struktur projek dan menyahpepijat isu apabila ia timbul. Asas-asas ini menjadi sangat berharga dalam projek Pokémon CLI, di mana perkara-perkara yang kurang mengenai peraturan permainan dan lebih banyak tentang mengambil dan mengurus data luaran. Mempunyai asas itu membantu saya menumpukan pada kawasan yang lebih baharu dan lebih kompleks, seperti fungsi async dan pengendalian ralat.
Dalam Pokémon CLI, salah satu lonjakan terbesar ialah belajar bekerja dengan fungsi async dan pengendalian ralat dengan cara dunia sebenar. Latihan membantu, tetapi menggunakan async/menunggu dalam projek ini menguatkan cara mengendalikan permintaan API, memastikan program saya tidak ranap jika berlaku masalah. Setiap kali saya mengendalikan kesilapan, saya belajar untuk mengharapkannya sebagai sebahagian daripada proses dan bukannya merasa dikalahkan olehnya. Saya akan log keluar nilai untuk mengecilkan isu, terutamanya apabila ralat itu seolah-olah menghala ke suatu tempat yang tidak dijangka. Sebagai contoh, saya mendapat ralat rujukan yang kelihatan tidak berkaitan dengan perubahan saya, hanya untuk menyedari bahawa saya telah terlepas mengemas kini rujukan dalam fail lain. Saya mendapati bahawa pengelogan konsol adalah pengubah permainan dalam menjejak isu kembali ke sumbernya.
Salah satu cabaran paling sukar saya ialah belajar membaca dokumentasi untuk pakej seperti inquirer dan path. Rasanya seperti saya diberitahu untuk mencari makhluk mitos di dalam hutan tanpa mengetahui rupanya. Inquirer boleh diurus selepas beberapa percubaan, terutamanya apabila ia datang kepada pilihan pengesahan. Tetapi jalan adalah cerita yang berbeza-saya tidak tahu bagaimana untuk mendekatinya pada mulanya. Saya akhirnya mencari lebih banyak sumber pengenalan untuk memahami apa yang dilakukan oleh laluan dan sebab saya ingin menggunakannya.
Proses ini mengajar saya bahawa kadangkala tidak mengapa untuk menjauhkan diri daripada dokumentasi rasmi apabila terasa amat memberangsangkan. Saya mula mencari tutorial dan contoh untuk memahami tujuan setiap pakej sebelum menyelam kembali ke dalam dokumen untuk ciri tertentu.
Projek Pokémon CLI ini terasa seperti satu peningkatan dalam kerumitan daripada permainan Blackjack saya, mendorong saya untuk berkembang dalam pengendalian ralat, fungsi async dan dokumentasi membaca. Saya juga belajar tentang ArrayBuffer dan mengendalikan data binari, yang saya gunakan untuk menyimpan imej secara setempat dan bukannya hanya mengambil URL. Walaupun saya tidak memahami sepenuhnya semua mekanik ArrayBuffer, saya cukup faham untuk menggunakannya dengan berkesan dalam projek ini.
Mengimbas kembali, setiap projek dibina berdasarkan yang terakhir. Walaupun masih banyak yang perlu dipelajari, ia menggalakkan untuk melihat kemahiran ini berkembang. Saya teruja untuk menangani projek seterusnya dengan lebih yakin (dan mungkin beberapa makhluk mitos yang kurang untuk dijejaki dalam dokumen)!
Anda boleh menemui projek itu pada github saya!
https://github.com/liamdewitt/pokemon-downloader-cli
Atas ialah kandungan terperinci Pengajaran daripada Projek Pertama Saya. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!