Sebagai pengembang muda, saya akan merasa berguna untuk mendapatkan beberapa saran mengenai hal-hal untuk dipikirkan dalam rangka mengembangkan aplikasi berkualitas tinggi. Dalam kursus kuliah saya, sebagian besar guru menekankan validasi input dan beberapa berbicara tentang masalah keamanan, tetapi tidak ada yang membahas pentingnya hal-hal lain tertentu, seperti logging misalnya.
Apa saja kesalahan yang cenderung dilakukan oleh pengembang yang tidak berpengalaman yang dapat menyebabkan frustrasi bagi pengembang yang lebih berpengalaman?
applications
quality
professionalism
awmckinley
sumber
sumber
Jawaban:
Saya menemukan hal utama yang dilupakan oleh pengembang baru adalah bahwa di dunia nyata mereka sering bekerja sebagai bagian dari tim. Ini menunjukkan dirinya sebagai ..
Itu bukan untuk mengatakan bahwa kode mereka tidak sampai dengan awal dalam isolasi, tetapi mereka tidak bekerja dalam isolasi lagi.
sumber
Di Windows, pajak-pajak ini adalah :
Pada hampir semua platform, Anda harus berurusan dengan:
sumber
Dalam pengalaman saya, satu hal yang hampir tidak diingat oleh semua pengembang yang tidak berpengalaman adalah Anda (hampir selalu) bekerja di lingkungan komersial. Kode Anda harus baik, tetapi tidak sempurna. Yang paling penting bukanlah kesempurnaan, itu adalah kode Anda dikirimkan.
Dengan kata lain, memberikan potongan kode yang sempurna tiga bulan setelah perusahaan Anda bangkrut tidak baik bagi siapa pun.
Menurut pendapat saya, ini adalah salah satu cara yang paling signifikan di mana perkembangan di dunia nyata berbeda dari pembangunan seperti yang diajarkan di universitas.
sumber
Pertanyaan yang sangat luas; untuk menjawab secara terperinci adalah ... banyak buku.
Berikut adalah daftar periksa definisi sistem umum untuk membantu Anda memulai -
sumber
Decoupling bersih dari sistem pada mesin pengembangan seseorang, dan mesin target, sehingga seseorang tidak berakhir dengan situasi "Yah, itu bekerja pada mesin saya".
Dan seberapa cepat Anda dapat merekonstruksi mesin pengembangan Anda?
sumber
Saya pikir itu mungkin desain - yaitu pendekatan berpikir tentang apa yang akan Anda lakukan sebelum melakukannya.
Terlalu banyak coders yang tidak berpengalaman (ingat ketika Anda pertama kali mulai) suka melompat dan memulai sesuatu, kemudian tambahkan sedikit lebih banyak dan iklankan sedikit lebih banyak dan tambah sedikit lebih banyak. Pendekatan ini dapat bekerja jika Anda telah merencanakan untuk melakukannya (setiap bit dapat diuji saat Anda melakukannya), tetapi sebagian besar coders yang tidak berpengalaman hanya fokus pada bagian yang mereka tulis .. sehingga semua penambahan cenderung diretas di atas. Dan kita semua melihat kode yang berevolusi seperti itu!
Organisasi adalah hal berikutnya, seringkali mereka terlalu fokus pada kode yang mereka tulis untuk mengingat bagaimana mereka melakukannya, dan apa yang diperlukan. Jadi mereka lupa untuk bundel atau mendokumentasikan ketergantungan yang diperlukan. Mereka juga cenderung meletakkan hal-hal di mana mereka jatuh, saya harus mengkritik seorang junior minggu lalu yang memeriksa kode-nya di direktori root termasuk 3 wsdl, 2 di antaranya adalah file yang sama, dan satu set dll pihak ke-3 yang dia komit di sub direktori dan direktori root. Kode tidak diformat ke standar apa pun yang dapat Anda pikirkan, dan ada beberapa fungsi yang ada tetapi tidak pernah dipanggil.
Jelas dia membuatnya bekerja tetapi tidak rapi, dan itu berarti instalasi, dan pemeliharaan, akan merepotkan.
sumber
Saya pikir perbedaan terbesar ada pada teknik pengkodean. Setiap orang memiliki pendekatan yang sedikit berbeda, tetapi pengembang yang tidak berpengalaman cenderung menghasilkan kode yang:
sumber
Karena Anda menanyakan hal terburuk, maka jawaban saya adalah sebagai berikut:
sumber
Yang terbesar saya adalah mengingat untuk merencanakan fleksibilitas. Di kelas, persyaratannya hampir selalu ditetapkan di awal dan tidak pernah berubah. Dalam perangkat lunak, seringkali sebaliknya: Anda mendapatkan serangkaian persyaratan yang tidak jelas, dan sering berubah (bahkan setiap hari). Hal terbaik yang dapat Anda lakukan untuk membantu ini adalah dengan kode yang fleksibel: kopling longgar, fungsi kecil yang dapat digunakan secara andal dalam berbagai situasi, dan menghindari hal-hal yang sulit dikodekan sebanyak mungkin.
Pada waktunya, Anda mungkin akan belajar a) hal-hal apa yang paling mungkin berubah, dan sebaliknya apa yang kemungkinan tidak akan berubah, dan b) bagaimana mengantisipasi perubahan permintaan dan merencanakannya.
sumber