Pseudocode membantu kita memahami tugas dengan cara agnostik bahasa. Apakah ini praktik terbaik atau pendekatan yang disarankan untuk membuat kodesemu sebagai bagian dari siklus hidup pengembangan? Contohnya:
- Identifikasi dan pisahkan tugas pengkodean
- Tulis kodesemu
- Dapatkan disetujui [oleh PL atau TL]
- Mulai Coding berdasarkan Pseudocode
Apakah ini pendekatan yang disarankan? Apakah itu dipraktikkan di industri?
design
pseudocode
Vimal Raj
sumber
sumber
Jawaban:
Menulis pseudocode sebelum pengkodean tentu lebih baik daripada hanya pengkodean tanpa perencanaan, tetapi jauh dari praktik terbaik. Pengembangan yang digerakkan oleh tes adalah peningkatan.
Yang lebih baik adalah menganalisis domain masalah dan merancang solusi menggunakan teknik seperti kisah pengguna, kasus penggunaan, kartu CRC, diagram, sebagaimana didukung oleh metodologi seperti Cleanroom, RUP, Lean, Kanban, Agile, dll.
Memahami hakikat masalah dan komponen yang Anda gunakan untuk mengimplementasikan solusi adalah prinsip di balik praktik terbaik.
sumber
Saya menggunakan komentar sebagai semacam kode pseudo tingkat sangat tinggi, dalam hal itu saya menulis komentar sebelum saya menulis kode. Saya menemukan bahwa memikirkan seluruh masalah, bahkan pada tingkat tinggi, sangat meningkatkan kode saya.
sumber
Tidak, jangan pseudo-code terlebih dahulu
Ini terlalu banyak overhead. Anda sedang melakukan pekerjaan menulis logika tanpa manfaat. Saya menyarankan salah satu dari yang berikut sebagai gantinya:
Ketiga hal ini menggerakkan Anda langsung ke solusi Anda, tidak seperti pseudo-code. Secara pribadi saya cenderung menggunakan teknik 1 atau 2 tergantung pada ukuran tim. Untuk tim yang lebih kecil (mis. 5 orang atau kurang), pembuatan prototipe berjalan sangat baik. Untuk tim yang lebih besar yang memiliki beberapa kelompok pengembang yang bekerja secara paralel, saya telah menemukan bahwa dokumentasi yang dihasilkan sejak awal dengan teknik 2 berfungsi dengan baik karena memberi Anda sesuatu untuk didiskusikan lebih awal dan membantu Anda menentukan batas-batas komponen yang lebih baik. Saya yakin TDD akan bekerja dengan sangat baik juga, tetapi saya belum bekerja pada tim yang telah berkomitmen untuk proses ini.
sumber
Menurut pendapat saya, pseudo-code hanya memiliki dua tujuan yang valid:
(1) Untuk siswa pemrograman yang perlu mempelajari konsep modularitas dan algoritma, tetapi belum lancar dalam bahasa pemrograman.
(2) Untuk mengkomunikasikan bagaimana sesuatu akan bekerja pada orang non-teknis, atau hanya demi kepentingan dalam pertemuan jenis papan tulis.
sumber
Apakah pseudo-code pendekatan yang disarankan? Untuk programmer pemula, saya katakan ya. Ini membantu programmer baru belajar bagaimana menerjemahkan masalah ke dalam kode tanpa khawatir tentang sintaks yang tepat dari bahasa tersebut. Ini membentuk proses pemikiran dan dapat membantu menanamkan kebiasaan yang berguna (dan saya kira kebiasaan buruk juga). Inilah sebabnya mengapa digunakan di sekolah begitu banyak.
Apakah itu dipraktikkan dalam industri? Dalam pengalaman saya, tidak. Tidak ada yang punya waktu untuk menyelesaikan proyek antara dokumentasi (persyaratan, spesifikasi, papan cerita, kasus penggunaan atau apa pun yang mereka gunakan) dan kode aktual. Secara umum diasumsikan bahwa pemikiran yang cukup telah dimasukkan ke dalam masalah sebelum lampu hijau untuk kode. Pada titik itu, pengkodean proyek lebih penting daripada menambahkan satu lapisan lagi persiapan desain.
sumber
Saya pasti akan merekomendasikan pseudocode. Ini membantu Anda mengklarifikasi apa yang akan Anda lakukan dan mengidentifikasi item yang mungkin Anda lupakan atau potensi masalah. Jauh lebih mudah / lebih cepat untuk memperbaiki kode Anda ketika masih dalam tahap perencanaan daripada menunggu sampai Anda sudah mengkodekan sebagian besar kode Anda.
sumber
Pseudocode dapat berguna jika Anda tidak terbiasa dengan bahasa tersebut, atau jika Anda perlu mengubah konteks mental. Pada kesempatan langka yang saya tulis kodesemu, itu di atas kertas. Kadang-kadang melepaskan tangan Anda dari keyboard dan mencoret-coret kertas dapat membantu mengatasi gangguan mental.
Tetapi sebagai bagian formal dari proses pembangunan? Tidak mungkin. Ini adalah alat yang secara sporadis bermanfaat bagi individu. Ada cara yang lebih baik untuk "tahu apa yang Anda tulis sebelum Anda menulisnya", seperti:
Saya juga menyarankan agar mendapatkan segala jenis persetujuan sebelum Anda mulai menulis kode cenderung menyebabkan lebih banyak kerumitan daripada nilainya. Ulasan desain (pra-implementasi) dapat berguna, tetapi harus pada tingkat yang lebih tinggi daripada algoritma individu.
sumber
Saya akan tidak setuju dengan jawaban sebelumnya dan mengatakan tidak, tetapi dengan peringatan: Anda dapat menyingkirkan psuedocode hanya jika Anda dengan tergesa-gesa mencurahkan isi ulang kode Anda untuk menangani masalah yang muncul. Psuedocode, pada intinya, adalah cara mendefinisikan kode Anda sebelum Anda mendefinisikan kode Anda; ini adalah abstraksi yang tidak perlu dalam banyak keadaan, dan karena kode Anda tidak akan pernah sempurna pertama kali (dan kemungkinan, tidak mengikuti desain psuedocode sampai selesai), sepertinya tidak cocok bagi saya.
sumber
Jika Anda menulis COBOL atau C, pseudocode mungkin bermanfaat karena menulis kode sebenarnya akan memakan waktu lebih lama, dan jika Anda dapat memverifikasi algoritma / persyaratan Anda dari pseudocode, Anda dapat menghemat waktu.
Dalam bahasa yang lebih modern, pseudocode tidak masuk akal. Apa yang akan bekerja lebih baik adalah menulis metode bertopik, dan mengisi logika tingkat atas, dan sedetail yang diperlukan untuk memverifikasi algoritma dan persyaratan, semua ini dalam kode aktual. Anda kemudian dapat menunjukkan kode itu kepada Ketua Tim untuk disetujui, dan kode asli Anda sudah dimulai.
sumber
Satu-satunya waktu saya menggunakan kodesemu dalam 10 tahun terakhir adalah wawancara ketika kami mengerjakan papan tulis dan bahasa tertentu tidak masalah.
Ini tentu membantu untuk berbicara melalui proses / algoritma dalam istilah yang longgar tanpa macet dengan sintaks. Misalnya menulis kelas C ++ yang memiliki properti C #, hanya untuk menggambarkan intinya.
Ini memiliki tempat, tetapi hanya boleh digunakan di mana diperlukan (itu adalah pekerjaan yang Anda akan membuang) dan tentu saja bukan bagian dari proses formal, kecuali jika Anda memiliki standar tipe ISO yang bersikeras itu.
sumber
Bagi saya dan orang-orang yang telah bekerja dengan saya selama beberapa tahun terakhir, kodesemu telah berubah menjadi kode nyata yang tidak sepenuhnya sempurna. kecuali jika Anda bekerja dengan banyak bahasa pada saat yang sama, kebanyakan orang tampaknya mulai berpikir dalam pola umum bahasa utama mereka. Saya telah bekerja di .net toko untuk sementara waktu sehingga coretan papan tulis kebanyakan orang di sekitar kantor cenderung terlihat seperti vb atau c # dengan beberapa tanda baca hilang.
Latihan ini masih berharga ketika memperdebatkan pilihan dan semacamnya, tetapi bahasa agnostiknya cenderung melayang ketika Anda menghabiskan lebih banyak waktu dengan beberapa bahasa.
sumber
Semakin banyak, pseudocode ditulis secara grafis dengan alat-alat seperti UML. Misalnya, coba yUML .
sumber
Kerja bagus. Anda memulai diskusi yang bagus. Pada saya, saya biasa menulis kode pseudo ketika saya sedang belajar pemrograman untuk memahami berbagai loop dan algoritma. Ini lebih dari satu setengah dekade yang lalu. Hari-hari itu, bahkan bahasa pemrograman pun tidak begitu kuat ... dan pemrograman berbasis acara adalah masa depan. Sekarang dengan 4GL dan 5GL, kami berpikir dalam bahasa itu sendiri daripada bahasa Inggris biasa. Ketika kita memikirkan masalah, kita berpikir dalam hal objek dan operasi. Dan sampai itu adalah algo yang kompleks, menulis kode pseudo (atau PSEU-DO-Codes, hanya bercanda) tidak masuk akal. Lebih baik, mewakili solusi secara grafis.
sumber
Tergantung pada bahasa yang digunakan, dan keakraban Anda dengannya.
Banyak bahasa modern seperti Python atau Java sudah sangat dekat dengan pseudocode sehingga menulis beberapa pseudocode ad hoc terlebih dahulu adalah pemborosan, IMHO. Lebih baik lakukan segera menggunakan pendekatan tracer bullet .
Ini masalah yang berbeda jika Anda membuat beberapa level rendah, dekat dengan hal-hal logam, atau belum nyaman dengan bahasa yang Anda gunakan. Maka pseudocode pasti bisa bermanfaat.
sumber
Ada beberapa keadaan di mana pseudocode cenderung pecah dalam pekerjaan saya, yaitu di dunia akademis di mana pemrograman cenderung digunakan sebagai alat atau "dan sekarang kita menyelesaikannya" mengisi di tengah-tengah proyek:
sumber
Ini bukan pertanyaan ya / tidak. Sebaliknya, kita harus bertanya-tanya kapan harus menggunakan pseudo-code. Penting untuk memahami masalah sebelum merancang solusi, dan penting untuk memiliki pandangan yang jelas tentang solusi sebelum Anda mengimplementasikannya. Kode semu dapat digunakan dalam langkah-langkah berikut:
Pseudo-code yang sebenarnya adalah kode yang tepat dalam bahasa tingkat tinggi juga digunakan, biasanya disebut prototyping.
Selain mencapai pemahaman, pseudo-code juga baik untuk komunikasi.
Jika Anda bertanya-tanya apakah Anda harus menggunakan pseudo-code secara teratur, saya pribadi menentang semua jenis aturan kaku. Ini dapat dengan mudah berubah menjadi pemborosan waktu yang membosankan jika digunakan untuk masalah sepele yang dipahami semua orang dalam tim. Menggunakan pseudo-code untuk spesifikasi yang Anda pertahankan sepanjang umur proyek juga bisa mahal dan menawarkan sedikit nilai.
sumber