Pertama penafian: Saya tidak benar-benar tahu apakah pertanyaan ini cocok dengan situs web ini, tetapi saya masih menemukan itu pertanyaan yang relevan tidak hanya untuk saya tetapi untuk orang lain yang masih pemula. Jika pertanyaan dapat ditingkatkan agar sesuai di sini, harap tunjukkan komentar int. Jika tidak cocok, beri tahu saya juga dan jika mungkin beri tahu saya di mana ini bisa dibahas karena saya tidak menemukan forum yang bagus untuk ini.
Saya telah belajar memprogram pada tahun 2009 ketika saya belajar PHP. Kemudian pada 2012, saya pindah ke C # dan .NET. Bagaimanapun, pengkodean bukanlah masalahnya, menuliskan algoritma bukanlah masalah saya. Masalah saya yang sebenarnya adalah mengetahui apa yang harus dikodekan untuk mencapai persyaratan dan di mana harus dikodekan.
Sebagian besar kursus di luar sana yang tersedia di web membahas bagaimana - cara menulis kode dalam bahasa tertentu, cara menggunakan beberapa set API, dll. Itu bukan poin saya di sini.
Pada tahun-tahun ini, saya telah membaca banyak hal tentang banyak hal: analisis dan desain berorientasi objek, pola desain, desain berbasis domain, dan sebagainya. Saya mengerti misalnya prinsip-prinsip SOLID, beberapa ide utama DDD seperti perlunya keterlibatan para ahli domain, pengembangan bahasa di mana-mana dan sebagainya. Saya berani mengatakan bahwa saya memiliki latar belakang teoritis setidaknya masuk akal.
Tetapi ketika tiba saatnya untuk berlatih, saya merasa seperti bencana. Beberapa waktu yang lalu saya perlu melanjutkan pengembangan sistem keuangan yang sudah dikembangkan oleh orang lain. Ini semacam "sistem lama" yang dikembangkan dengan C # dan WinForms. Itu adalah pertama kalinya saya memilih proyek dengan kompleksitas domain nyata, dengan banyak aturan bisnis dan sebagainya.
Saya mengaku bahwa ketika saya menerima persyaratan sebagian besar waktu saya berpikir "bagaimana mungkin ini bisa dilakukan?" - Saya tidak tahu bagaimana memulai mengerjakan persyaratan untuk mengetahui apa yang harus dilakukan. Kebingungan utama saya, saya percaya adalah apa yang harus saya kode, kelas apa, antarmuka dan di mana setiap potongan logika, di mana kelas setiap hal harus. Masalahnya adalah saya tidak tahu harus mulai dari mana.
Seringkali, dengan banyak pemikiran saya berakhir dengan beberapa ide, tetapi saya tidak pernah tahu bagaimana menilai apakah ide saya benar atau tidak.
Maksud saya, saya tidak berpikir ini kekurangan teori, seperti yang saya katakan saya sudah membaca tentang banyak hal tentang arsitektur perangkat lunak dan orientasi objek saya direkomendasikan tetapi tidak banyak membantu dalam mengidentifikasi apa yang harus dilakukan dalam praktek .
Jadi bagaimana saya bisa belajar untuk benar - benar melakukan desain berorientasi objek? Apa yang ingin saya pelajari adalah: persyaratan yang diberikan tahu bagaimana memulai mengerjakannya dalam proses yang mengarah pada mencari tahu apa yang harus dilakukan dan di mana masing-masing bagian kode berada. Bagaimana saya bisa belajar menilai apakah ide saya benar atau tidak?
Saya percaya sepenuhnya menjelaskan ini sebagai jawaban di sini tidak mungkin. Apa yang saya cari, bagaimanapun, yang mungkin sesuai dengan gaya situs adalah jawaban hanya memberikan gambaran dan menunjuk beberapa referensi (buku, kursus online, dll) yang dapat digunakan untuk memperluas ide dan benar-benar mempelajari hal-hal ini.