Pracuję nad dość dużą i wadliwą aplikacją - a ze względu na sposób, w jaki jest napisany (oszczędzę ci szczegółów, ale narusza zasady w większości obszarów, o których możesz myśleć), jest prawie niemożliwe, aby rozwijać ją bez poważnego refaktoryzacji.
Znacząca część aplikacji została stworzona przez stażystów, n00bs itp .; ale był też programista w randze Master Developer i z całą pokorą kod, który pozostawił, jest również wątpliwy, może w inny sposób, ale nadal.
To prawda, że jego kod zazwyczaj wykonuje zadanie - przez większość czasu - ale zwykle jest tajemniczy, wymyśla koło (np. Duża niestandardowa metoda polegająca na wykonywaniu raczej zwykłej kopii zapasowej bazy danych SQL) itp. Zasadniczo niepotrzebne zamieszanie plus dużo nadinżynierii
I pomyślałem, że bycie wysoko wykwalifikowanym programistą (celowo nie używam słowa „programista”, zakładając, że oznacza to szerszy zestaw umiejętności), jeśli nie towarzyszą mu inne cechy, może faktycznie być trujące.
Zakładając, że to prawda, niektóre z powodów, o których mogłem pomyśleć, są:
- jeśli kodujesz z łatwością, wydaje się (lub w rzeczywistości jest to w krótkim okresie) szybsze znalezienie własnych rozwiązań na miejscu, bez potrzeby sięgania do bibliotek, istniejącej funkcjonalności itp.
- jeśli ktoś ma wystarczające doświadczenie, aby z łatwością zachować mentalny obraz złożonego programu, jest mniej skłonny do dzielenia go na moduły, warstwy itp.
Chodzi mi więc o to, że jeśli biegły programista jest złym programistą, jego płynność nie tylko nie kompensuje tego drugiego, ale w rzeczywistości wyrządza jeszcze więcej szkody.
Co o tym myślisz? Czy to prawda (w jakim stopniu, jeśli tak)?
I.ThinkOf(this).KindOfThing()