Najpierw zastrzeżenie: Naprawdę nie wiem, czy to pytanie pasuje do tej witryny, ale nadal uważam to za istotne pytanie nie tylko dla mnie, ale dla innych osób, które są początkujące. Jeśli pytanie można poprawić, aby pasowało tutaj, proszę zaznaczyć int komentarze. Jeśli to nie pasuje, daj mi również znać, a jeśli to możliwe, daj mi znać, gdzie można to omówić, ponieważ nie znalazłem żadnych dobrych forów na ten temat.
Nauczyłem się programować w 2009 roku, kiedy studiowałem PHP. Później w 2012 roku przeniosłem się do C # i .NET. W każdym razie kodowanie nie jest problemem, zapisywanie algorytmów nie jest moim problemem. Mój rzeczywisty problem polega na tym, aby wiedzieć, co należy zakodować, aby osiągnąć wymaganie, i gdzie należy go zakodować.
Większość kursów dostępnych w Internecie dotyczy tego, jak - jak pisać kod w określonym języku, jak korzystać z niektórych zestawów interfejsów API itp. Nie o to mi chodzi.
Przez te lata dużo czytałem o wielu rzeczach: analiza i projektowanie obiektowe, wzorce projektowe, projektowanie oparte na domenie i tak dalej. Rozumiem na przykład zasady SOLID, niektóre z głównych idei DDD, takie jak konieczność zaangażowania ekspertów w dziedzinie, rozwój wszechobecnego języka i tak dalej. Odważyłbym się powiedzieć, że mam przynajmniej teoretyczne podstawy.
Ale jeśli chodzi o praktykę, czuję się jak katastrofa. Jakiś czas temu musiałem kontynuować rozwój systemu finansowego, który był już opracowywany przez kogoś innego. Jest to rodzaj „starego systemu” opracowanego przy użyciu C # i WinForms. Po raz pierwszy wybrałem projekt o prawdziwej złożoności domen, z wieloma regułami biznesowymi i tak dalej.
Przyznaję, że kiedy otrzymuję wymagania przez większość czasu, myślę „jak, u licha, można to zrobić?” - Nie mam pojęcia, jak zacząć pracę nad wymaganiami, aby dowiedzieć się, co należy zrobić. Uważam, że moje główne nieporozumienia dotyczą tego, co muszę kodować, jakie klasy, interfejsy i gdzie idzie każda logika, na której klasie musi być każda rzecz. Problem polega na tym, że nie wiem od czego zacząć.
Przez większość czasu, z dość dużą ilością przemyśleń, kończę na kilku pomysłach, ale nigdy nie wiem, jak ocenić, czy mój pomysł jest poprawny, czy nie.
Mam na myśli, że nie sądzę, że to brak teorii, ponieważ powiedziałem, że przeczytałem o wielu rzeczach na temat architektury oprogramowania i orientacji obiektu, które mi zalecono, ale nie pomogło to w określeniu, co należy zrobić w praktyce .
W jaki sposób można nauczyć się naprawdę zrobić obiektowego projektowania? Chcę się nauczyć: podane wymagania wiedzą, jak rozpocząć pracę nad nimi w procesie, który prowadzi do ustalenia, co należy zrobić i gdzie należy każdy fragment kodu. Jak mogę nauczyć się oceniać, czy mój pomysł jest poprawny, czy nie?
Uważam, że pełne wyjaśnienie tego jako odpowiedzi tutaj nie byłoby możliwe. To, czego szukam, może być zgodne ze stylem strony, to odpowiedzi, które dają przegląd i wskazanie pewnych referencji (książek, kursów online itp.), Które można wykorzystać do rozwinięcia pomysłów i prawdziwej nauki tych rzeczy.