To może być trudne pytanie kilka lat temu, ale obecnie IMO nie jest już trudne do wyeliminowania przypadkowej złożoności.
Co w pewnym momencie powiedział o sobie Kent Becks: „Nie jestem świetnym programistą; jestem tylko dobrym programistą o wielkich nawykach”.
Warto podkreślić dwie rzeczy, IMO: uważa się za programistę , a nie architekta, a jego uwaga koncentruje się na nawykach, a nie wiedzy.
Jedynym sposobem na rozwiązanie trudnych problemów jest Feynman. Opis niekoniecznie jest bardzo łatwy do zrozumienia, więc opiszę go. Głowa Feynmana była nie tylko pełna wiedzy, ale także umiejętności jej stosowania. Gdy masz zarówno wiedzę, jak i umiejętności korzystania z niej, rozwiązanie trudnego problemu nie jest ani trudne, ani łatwe. To jedyny możliwy wynik.
Istnieje całkowicie niemagiczny sposób pisania czystego kodu, który nie zawiera przypadkowej złożoności, i jest w większości podobny do tego, co zrobił Feynman: zdobądź całą wymaganą wiedzę, przyzwyczaj się do jego uruchomienia, zamiast po prostu odkładać go na bok. w pewnym zakątku mózgu, a następnie napisz czysty kod.
Teraz wielu programistów nie jest nawet świadomych całej wiedzy wymaganej do napisania czystego kodu. Młodsi programiści mają tendencję do odrzucania wiedzy o algorytmach i strukturach danych, a większość starszych programistów ma tendencję do zapominania o niej. Lub duża notacja O i analiza złożoności. Starsi programiści mają tendencję do odrzucania wzorów lub zapachów kodu - lub nawet nie wiedzą, że istnieją. Większość programistów dowolnej generacji, nawet jeśli znają wzorce, nigdy nie pamiętają, kiedy dokładnie używać i sterować częściami. Niewielu programistów z dowolnego pokolenia stale ocenia swój kod pod kątem zasad SOLID. Wielu programistów miesza w każdym miejscu wszystkie możliwe poziomy abstrakcji. Na razie nie znam innego programisty, który stale ocenia swój kod pod kątem smród opisanych przez Fowlera w jego książce o refaktoryzacji. Chociaż niektóre projekty korzystają z niektórych narzędzi pomiarowych, najczęściej stosowanym miernikiem jest złożoność, czy innego rodzaju, podczas gdy dwa inne wskaźniki - łączenie i spójność - są w dużej mierze ignorowane, nawet jeśli są bardzo ważne dla czystego kodu. Kolejnym aspektem, który prawie wszyscy ignorują, jest ładunek poznawczy. Niewielu programistów traktuje testy jednostkowe jako dokumentację, a jeszcze mniej jest świadomych, że trudne do napisania lub nazwania testy jednostkowe są kolejnym smrodem kodu, który zwykle wskazuje na zły faktoring. Niewielka mniejszość zdaje sobie sprawę z mantry projektowania opartego na domenie, aby model kodu i model domeny biznesowej były jak najbardziej zbliżone do siebie, ponieważ rozbieżności z tym związane będą powodować problemy w przyszłości. Wszystkie te kwestie należy cały czas brać pod uwagę, jeśli chcesz oczyścić kod. I wiele innych, których teraz nie pamiętam. najczęściej używaną metryką jest złożoność, tego rodzaju lub innego, podczas gdy dwie inne metryki - sprzężenie i spójność - są w dużej mierze ignorowane, nawet jeśli są bardzo ważne dla czystego kodu. Kolejnym aspektem, który prawie wszyscy ignorują, jest ładunek poznawczy. Niewielu programistów traktuje testy jednostkowe jako dokumentację, a jeszcze mniej jest świadomych, że trudne do napisania lub nazwania testy jednostkowe są kolejnym smrodem kodu, który zwykle wskazuje na zły faktoring. Niewielka mniejszość zdaje sobie sprawę z mantry projektowania opartego na domenie, aby model kodu i model domeny biznesowej były jak najbardziej zbliżone do siebie, ponieważ rozbieżności z tym związane będą powodować problemy w przyszłości. Wszystkie te kwestie należy cały czas brać pod uwagę, jeśli chcesz oczyścić kod. I wiele innych, których teraz nie pamiętam. najczęściej używaną metryką jest złożoność, tego rodzaju lub innego, podczas gdy dwie inne metryki - sprzężenie i spójność - są w dużej mierze ignorowane, nawet jeśli są bardzo ważne dla czystego kodu. Kolejnym aspektem, który prawie wszyscy ignorują, jest ładunek poznawczy. Niewielu programistów traktuje testy jednostkowe jako dokumentację, a jeszcze mniej jest świadomych, że trudne do napisania lub nazwania testy jednostkowe są kolejnym smrodem kodu, który zwykle wskazuje na zły faktoring. Niewielka mniejszość zdaje sobie sprawę z mantry projektowania opartego na domenie, aby model kodu i model domeny biznesowej były jak najbardziej zbliżone do siebie, ponieważ rozbieżności z tym związane będą powodować problemy w przyszłości. Wszystkie te kwestie należy cały czas brać pod uwagę, jeśli chcesz oczyścić kod. I wiele innych, których teraz nie pamiętam. podczas gdy dwa inne wskaźniki - sprzężenie i spójność - są w dużej mierze ignorowane, nawet jeśli są bardzo ważne dla czystego kodu. Kolejnym aspektem, który prawie wszyscy ignorują, jest ładunek poznawczy. Niewielu programistów traktuje testy jednostkowe jako dokumentację, a jeszcze mniej jest świadomych, że trudne do napisania lub nazwania testy jednostkowe są kolejnym smrodem kodu, który zwykle wskazuje na zły faktoring. Niewielka mniejszość zdaje sobie sprawę z mantry projektowania opartego na domenie, aby model kodu i model domeny biznesowej były jak najbardziej zbliżone do siebie, ponieważ rozbieżności z tym związane będą powodować problemy w przyszłości. Wszystkie te kwestie należy cały czas brać pod uwagę, jeśli chcesz oczyścić kod. I wiele innych, których teraz nie pamiętam. podczas gdy dwa inne wskaźniki - sprzężenie i spójność - są w dużej mierze ignorowane, nawet jeśli są bardzo ważne dla czystego kodu. Kolejnym aspektem, który prawie wszyscy ignorują, jest ładunek poznawczy. Niewielu programistów traktuje testy jednostkowe jako dokumentację, a jeszcze mniej jest świadomych, że trudne do napisania lub nazwania testy jednostkowe są kolejnym smrodem kodu, który zwykle wskazuje na zły faktoring. Niewielka mniejszość zdaje sobie sprawę z mantry projektowania opartego na domenie, aby model kodu i model domeny biznesowej były jak najbardziej zbliżone do siebie, ponieważ rozbieżności z tym związane będą powodować problemy w przyszłości. Wszystkie te kwestie należy cały czas brać pod uwagę, jeśli chcesz oczyścić kod. I wiele innych, których teraz nie pamiętam. Kolejnym aspektem, który prawie wszyscy ignorują, jest ładunek poznawczy. Niewielu programistów traktuje testy jednostkowe jako dokumentację, a jeszcze mniej jest świadomych, że trudne do napisania lub nazwania testy jednostkowe są kolejnym smrodem kodu, który zwykle wskazuje na zły faktoring. Niewielka mniejszość zdaje sobie sprawę z mantry projektowania opartego na domenie, aby model kodu i model domeny biznesowej były jak najbardziej zbliżone do siebie, ponieważ rozbieżności z tym związane będą powodować problemy w przyszłości. Wszystkie te kwestie należy cały czas brać pod uwagę, jeśli chcesz oczyścić kod. I wiele innych, których teraz nie pamiętam. Kolejnym aspektem, który prawie wszyscy ignorują, jest ładunek poznawczy. Niewielu programistów traktuje testy jednostkowe jako dokumentację, a jeszcze mniej jest świadomych, że trudne do napisania lub nazwania testy jednostkowe są kolejnym smrodem kodu, który zwykle wskazuje na zły faktoring. Niewielka mniejszość zdaje sobie sprawę z mantry projektowania opartego na domenie, aby model kodu i model domeny biznesowej były jak najbardziej zbliżone do siebie, ponieważ rozbieżności z tym związane będą powodować problemy w przyszłości. Wszystkie te kwestie należy cały czas brać pod uwagę, jeśli chcesz oczyścić kod. I wiele innych, których teraz nie pamiętam. mantrą, aby model kodu i model domeny biznesowej były jak najbliżej siebie, ponieważ rozbieżności z pewnością będą powodować problemy w przyszłości. Wszystkie te kwestie należy cały czas brać pod uwagę, jeśli chcesz oczyścić kod. I wiele innych, których teraz nie pamiętam. mantrą, aby model kodu i model domeny biznesowej były jak najbliżej siebie, ponieważ rozbieżności z pewnością będą powodować problemy w przyszłości. Wszystkie te kwestie należy cały czas brać pod uwagę, jeśli chcesz oczyścić kod. I wiele innych, których teraz nie pamiętam.
Chcesz napisać czysty kod? Nie wymaga magii. Po prostu dowiedz się wszystkiego, co jest wymagane, a następnie użyj go do oceny czystości kodu i dokonaj refaktoryzacji, aż będziesz zadowolony. I ucz się dalej - oprogramowanie to wciąż młoda dziedzina, a nowe spostrzeżenia i wiedza są zdobywane w szybkim tempie.