Zajmuję się aplikacjami biznesowymi, w których wszyscy inni programiści są przyzwyczajeni do robienia podstawowych aplikacji CRUD lub koncentrują się wyłącznie na tworzeniu ładnych / funkcjonalnych interfejsów.
„W sposób, w jaki to robimy, pracownik miałby wszystko, co mógłbyś zrobić z pracownikiem”. I to była prawda. Ta jedna „klasa” zawierała tysiące linii kodu i było tam wszystko, co można zrobić z pracownikiem. Lub, co gorsza, była tabela danych pracowników i każdy programista wymyślił, jak zrobić to, co chciał zrobić w module obsługi zdarzeń.
Wszystkie złe rzeczy związane z tym podejściem były prawdziwe, ale przynajmniej deweloper korzystający z pracownika mógł, bez przechodzenia do innych dokumentów, dowiedzieć się, jak zapisać pracownika do planu opieki zdrowotnej, podwyższyć wynagrodzenie, zwolnić, zatrudnić, przenieść itp. To samo dotyczy dla Managera i wszystkich innych głównych pomysłów. Lub, jeśli korzystali z pracownika inne potrzebne tabele danych, mogą po prostu zrobić, co chcieli.
Tak, był dużo zduplikowanego kodu. Tak, to był bardzo kruchy kod. Tak, testowanie było znacznie trudniejsze niż to konieczne. Tak zmieniającą się funkcjonalnością było wywoływanie strachu, a Kopiowanie Wklej było naturalne ze względu na to podejście.
Ale mogli przynajmniej odkryć, co było dostępne, tworząc jedną klasę lub mogli zrobić to, co trzeba, bez konieczności rozumienia różnicy między interfejsami, klasami abstrakcyjnymi, konkretnymi klasami itp. I nie musieli szukać niczego innego niż metody zwrócone przez intellisense lub znają tabele, w których znajdowały się dane.
Mam googled / binged, a nawet yahoo! D, ale nie znalazłem potwierdzenia tego problemu.
Więc może nie ma problemu i czegoś mi brakuje. Zanurzyłem mózg, próbując znaleźć rozwiązanie, w którym programiści, którzy nie działają w rzeczywistości, mogą łatwo odkryć, jak coś zrobić, bez konieczności odwoływania się do jakichkolwiek zewnętrznych dokumentów lub skanowania nazw klas w różnych komponentach / projekty, aby znaleźć ten, który brzmi jak to będzie działać.
Jedyną rzeczą, jaką udało mi się wymyślić, jest to, że z powodu braku lepszej nazwy, „Tabela treści” nie robi nic więcej, niż zwraca rzeczywiste klasy (a tak naprawdę większość z nich to interfejsy, ale nie mają znać różnicę, a nawet ostrożność), którą inni programiści mogą wykorzystać do wykonania pożądanych zadań. Wciąż kończą się naprawdę dużymi klasami, ale nie ma w nich prawie żadnego zachowania.
Czy istnieje lepszy sposób, który nie wymaga dogłębnej znajomości środkowego poziomu, na którym ma miejsce faktyczna implementacja SOLID?
Zasadniczo pytam, czy istnieje sposób, aby pozwolić programistom typu CRUD nadal być programistami CRUD w bardzo złożonym systemie