Saya tidak punya pilihan selain bekerja sendiri, dan tidak dapat menemukan solusi yang memadai untuk memeriksa pekerjaan saya, memeriksa kewarasan, meminta seseorang untuk melakukan brainstorming ide, mendiskusikan praktik terbaik dan sebagainya.
Saya pikir saya akan mendapat jawaban melalui artikel Jeff Atwood: Dalam Pemrograman, One Is The Loneliest Number , yang terbaik yang bisa saya temukan pada subjek, tetapi ternyata hanya mengulangi pertanyaan saya.
Saya tahu situs Stack Exchange seperti ini, dan Peninjauan Kode adalah jawaban potensial yang jelas, tetapi karena banyak yang akan menghargai, ini JAUH dari ideal:
Walaupun saya tidak dapat membuat daftar semua jebakan, seringkali, merumuskan pertanyaan dan memasukkannya ke dalam masalah yang mandiri seringkali membutuhkan begitu banyak pekerjaan sehingga pada saat Anda sudah mempersiapkannya dengan cukup, Anda telah menjawab pertanyaan Anda sendiri lebih lanjut waktu daripada yang seharusnya diambil sebaliknya. Selain itu, menyembunyikan detail untuk mengajukan pertanyaan yang jelas menghilangkan kemungkinan seseorang menemukan masalah yang tidak Anda pikirkan. Selain itu, walaupun saya tidak bisa mengikutinya, respon dari percakapan bebas tidak dapat ditandingi oleh segala bentuk diskusi internet tekstual yang dapat saya pikirkan. Terakhir tetapi tidak kalah pentingnya, saya tidak ingin memposting seluruh proyek saya untuk dunia untuk melihat sisa kekekalan, untuk alasan yang jelas.
Apakah ada jawaban selain membayar konsultan untuk memeriksa kode saya?
Jawaban:
Saya telah berada di posisi Anda dan saya pikir tidak ada solusi yang mudah. Membayar konsultan untuk memeriksa kode Anda bukanlah cara yang baik untuk menghabiskan uang. Jika masalah Anda adalah bahwa Anda merasa kesepian dan tidak memiliki siapa pun untuk diajak bicara tentang pemrograman maka saya tidak dapat membantu Anda di sana tetapi jika Anda benar-benar tertarik untuk meningkatkan kualitas kode Anda maka hal terbaik untuk dilakukan adalah mengaturnya samping dan kembali ke sana dalam seminggu atau lebih. Jika kodenya benar-benar buruk maka itu akan menjadi jelas karena Anda tidak akan dapat memahaminya dan Anda dapat mulai refactoring untuk masuk akal. Setelah beberapa iterasi dari proses ini, Anda akan mulai memperhatikan pola kode yang membuat kode mudah dipahami dan kualitas kode Anda akan meningkat.
sumber
Tidak.
Saran saya bergabunglah dengan grup pengembang \ pengguna lokal, dan bicarakan ide Anda dengan orang lain. Bicara tentang desain Anda. Tanyakan kepada orang lain bagaimana mereka telah mendekati masalah tertentu.
Jika mereka memverifikasi desain Anda, bahkan tanpa melihat kode Anda, itu harus cukup baik.
sumber
Ada beberapa teknik pemeriksaan mandiri seperti pengembangan yang digerakkan oleh tes yang dapat membantu memberikan umpan balik. Ketika menjadi sulit untuk dilakukan, Anda tahu arsitektur Anda kemungkinan rusak.
Masalah terpecahkan. Anda tidak perlu umpan balik eksternal pada setiap baris kode untuk meningkatkan, hanya sampel yang baik di persimpangan utama di jalan, dan hati-hati memeriksa di titik-titik di antaranya.
Anda harus melupakan gagasan bahwa Anda dapat mempertahankan tingkat kualitas yang sama dengan bekerja sendiri dalam jumlah waktu yang sama dengan seseorang yang bekerja dalam tim. Ada alasan orang bekerja dalam tim. Berita baiknya adalah Anda tidak memiliki konflik tentang keputusan desain. Berita buruknya adalah Anda tidak memiliki konflik tentang keputusan desain. Semoga waktu ekstra yang Anda habiskan untuk mempertahankan kualitas agak diimbangi dengan keuntungan bekerja sendiri.
sumber
Saya akan merekomendasikan melakukan sebanyak mungkin jejaring di konferensi dan grup pengguna lokal. Saya tahu banyak pengembang yang menembakkan kode sanitized bolak-balik melalui email atau im sepanjang waktu hanya untuk tetap tajam dan melihat-lihat algoritma bersama. Tidak, ini bukan percakapan tatap muka, dan ya itu kadang-kadang menyusahkan untuk membersihkan kode, tetapi tinjauan 20 kode pesan instan dari waktu ke waktu bisa sangat berguna, terutama ketika Anda sangat membutuhkan sepasang mata yang kedua.
sumber
Saya dalam situasi yang sama dan saya sangat bergantung pada Stack Overflow untuk mendapatkan umpan balik pada pertanyaan-pertanyaan degil. Saya juga menemukan berdasarkan benar-benar harus menuliskan deskripsi masalah yang jawabannya sering menjadi jelas. Dalam hal praktik terbaik, saya adalah pengembang .Net dan saya menggunakan ReSharper yang akan menawarkan saran alternatif praktik yang baik untuk kode yang saya tulis (yang kadang-kadang saya abaikan saja - ini bisa sedikit bertele-tele). Dan alat lain yang bermanfaat adalah FxCop yang akan melakukan analisis kode statis dan menyoroti setiap masalah yang tidak cocok dengan aturannya.
Kalau tidak, terserah Anda untuk membaca dan tetap mengikuti perkembangan praktik saat ini. Saya suka Morning Dew Alvin Ashcraft untuk tautan ke apa yang baru dan lebih baik di dunia .Net.
sumber
Saya sarankan mencoba membuat (atau menemukan) grup pengguna kecil. Jadikan kode Anda tersedia, dan buat semua orang berkomitmen untuk membuatnya berfungsi - setengah jam atau lebih setiap hari.
sumber
Umpan balik yang membangun dari pengalaman saya adalah bahwa selama tahun-tahun awal pengembangan Anda akan sangat penting meskipun tidak wajib bahwa pengembang yang berpengalaman meninjau kode Anda untuk meletakkan dasar. Setelah berpengalaman, Anda dapat mengikuti pendekatan yang disarankan oleh @ davidk01 yaitu Meninjau kode Anda sendiri secara berkala untuk meningkatkan kualitas kode.
sumber
Saya tidak tahu detail situasi Anda, tetapi di mana saya sekarang ada banyak siswa yang berpengalaman untuk lebih dari senang bekerja sebagai magang dan belajar sesuatu.
Mungkin terdengar pekerjaan ekstra bagi Anda untuk menangani mereka dan mengajari mereka ini dan itu, tetapi kami sudah ada di sana ketika kami pertama kali memulai dan saya kira ini giliran kami untuk membayar kembali.
Mereka bukan ahli dan kadang-kadang mereka mungkin menyesatkan Anda, tetapi biasanya mereka menantang segalanya dan penuh dengan ide dan bagus untuk diskusi di mana Anda harus mempertahankan setiap detail kode Anda.
sumber
Saya mengalami hal yang sama untuk> 75% pertanyaan yang saya posting.
Namun, itu bukan argumen untuk tidak repot-repot melakukannya. Ini adalah debugging bebek karet yang efektif. Anda menemukan jawaban untuk pertanyaan yang menurut Anda mungkin muncul sebagai jawaban atas pertanyaan Anda; yang berarti Anda memikirkan masalah dari sudut pandang orang yang berbeda; yang berarti Anda memikirkan masalah dari semua arah yang mungkin; yang merupakan cara terbaik untuk menemukan cacat.
Paling-paling, Anda telah membuktikan secara meyakinkan bahwa Anda jelas tidak dapat memikirkan jawabannya di sini. Pada "terburuk", Anda akhirnya menjawab pertanyaan Anda sendiri. Pikirkan kutipannya, karena ini tidak buruk sama sekali. Itu mungkin sedikit waktu tidak efisien, tetapi menyelesaikan masalah secara perlahan lebih baik daripada dengan cepat memutuskan untuk tidak mengatasi masalah . Anda akan lebih cepat menyelesaikan masalah pada akhirnya.
Inti masalah:
Ketika saya adalah seorang pengembang pemula, saya berurusan dengan halaman eror ASP.Net banyak kali. Saya perlu Google pesan untuk mencari tahu apa yang salah. mungkin butuh beberapa jam sebelum saya mendapatkan solusi yang tepat. Saya pada dasarnya membuat setiap kesalahan dalam buku ini dan kemudian harus berurusan dengan konsekuensi harus men-debug masalah.
Sekarang, ketika kesalahan muncul, saya sudah tahu "tersangka biasa" apa yang bisa menyebabkan masalah. Daftar mental saya "tersangka biasa" secara efektif didasarkan pada masalah yang paling banyak saya alami selama karier saya. Tanpa terlebih dahulu melakukan pekerjaan kaki yang tidak efisien dari Googling selama berjam-jam, saya tidak akan pernah membuat daftar mental ini . Tetapi sekarang karena saya memiliki daftar mental itu, saya lebih cepat dalam pemecahan masalah.
Saya agak tidak setuju di sini. Anda benar bahwa komunikasi internet kurang responsif, tetapi Anda (menurut saya) salah bahwa ini buruk bagi Anda.
Sebagai pengembang tunggal, Anda akan bergantung pada debugging bebek karet. Bahan utama untuk membuat RDD berfungsi adalah bahwa Anda mengantisipasi pertanyaan yang mungkin dimiliki bebek karet untuk Anda. Anda jelas tidak bisa mengandalkan apa yang sebenarnya dikatakan oleh bebek karet.
Ketika berhadapan dengan sistem pesan yang lambat (memposting di StackOverflow atau berkomunikasi dengan menulis surat), Anda secara inheren diberi insentif untuk memastikan bahwa Anda melakukannya dengan benar pertama kali. Karena perlu memperbaiki kesalahan akan menjadi proses yang lambat dan sulit.
Sebagai perbandingan, pertimbangkan sistem pengiriman pesan cepat (percakapan, pengiriman pesan instan), Anda dapat segera memperbaiki sesuatu. Kemampuan untuk mengoreksi sesuatu dengan cepat membuat orang kurang mendapat insentif untuk memastikan bahwa itu benar.
Empat kasus dalam poin:
Gagasan yang mendasari di sini adalah bahwa sistem pertukaran yang sulit mendorong orang untuk melakukan pertukaran yang benar dan diperiksa fakta . Beratnya hukuman (= proses koreksi yang sulit) mengajarkan Anda untuk tidak membuat kesalahan.
Saat Anda membuat MCVE , Anda tidak harus membuatnya dan mempostingnya di pertanyaan. Pertama-tama Anda harus membuatnya sendiri , sehingga Anda dapat mengisolasi masalahnya. Dan kemudian, ketika Anda berpikir masalahnya tidak dapat dikurangi lagi, dan Anda masih tidak melihat penyebabnya; maka Anda memiliki pertanyaan yang valid untuk StackOverflow.
Inti masalah:
Saya selalu memiliki Visual Studio kedua yang berjalan dengan aplikasi konsol sederhana bernama Sandbox. Setiap kali saya mengalami masalah teknis, saya menyalin kode yang menyinggung ke dalam kotak pasir dan mulai bermain-main dengannya.
Dalam 90% kasus, saya menemukan penyebab masalah karena kotak pasir membantu saya melihat kode yang menyinggung tanpa terganggu oleh konteks sekitarnya (atau, misalnya, ketidakpastian tentang nilai yang datang untuk bagian kode yang berbeda.
Dalam 10% kasus lainnya, saya memiliki kode minimal untuk mereproduksi masalah, yang berfungsi sebagai contoh cuplikan sempurna untuk diposkan di StackOverflow.
Ketika Anda sudah memiliki MCVE, Anda seharusnya tidak memiliki banyak informasi pribadi (atau perusahaan) di dalamnya. Jika ya, karena kodenya minimal, mudah untuk mengubah nama menjadi contoh foo / bar / baz yang lebih mendasar.
sumber