Sam jestem rzemieślnikiem i w mojej działce ogólny trend idzie w stronę jak najniższej ceny i jak największej "wydajności" , co można osiągnąć jedynie zaniżając jakość. Nie spotkałem się z tym, by znane nazwisko z branży kładło tak duży nacisk na propagowanie dobrego stylu.
Można napisać kod wydajny i czytelny. Jest chyba bardzo niewiele przypadków, gdzie mamy naprawdę duży skok wydajności kosztem czytelności i dotyczy to chyba jakiegoś low-levelowego kodu w branży embedded, gier komputerowych lub ewentualnie HFT. W aplikacjach użytkowych (czyli większość rynku) dodanie narzutu rzędu paru nanosekund to nie jest zwolnienie, które zauważyłby człowiek i warto się skupić na czystym kodzie.
Jak to wygląda u Was? Jaki kod tworzycie i z jakim musicie pracować na codzień? A dokładniej, czy rynek wymaga od Was "wydajności" , czy jakości?
Na co dzień staram się trzymać reguł "Clean Code" przy tworzeniu nowego kodu. Jeżeli kod w review nie spełnia wg mnie reguł "Clean Code" to odrzucam review. W obecnym projekcie mam trochę starego kodu sprzed kilku lat i tam czasem te reguły są niestety łamane. Podczas utrzymywania tego kodu, większość wprowadzanych zmian spełnia już te reguły, a jeśli jest czas na refaktoring i dana klasa ma odpowiednie pokrycie testami, to robimy refaktoring. Jeżeli nie ma pokrycia, to istnieje spore ryzyko, że po zmianach coś się zepsuje i będzie to stanowić problem.
Parę lat temu na jakiejśtam ewaluacji/ocenie w firmie zarzucono mi pisanie kodu niskiej jakości i tak mi to siadło na ambicję, że przeczytałem książki na ten temat i teraz mam tak zrytą banię, że nawet głupie skrypty w bashu dla własnego użytku piszę zgodnie z regułami "Clean Code" i dodaję do nich testy jednostkowe ;-).
Czy jest jakaś tendencja zależna od wielkości firmy, typu branży, typu technologii?
Wg mnie, jeśli zespół programistów jest dobry, to tacy ludzie będą tworzyć dobry i czysty kod niezależnie od wielkości firmy, branży i technologii.
Clean code nie jest utopią. Ludzie, którzy nie trzymają się tych reguł albo ich nie znają, albo ich nie rozumieją albo są nieprofesjonalni. Wystarczy spojrzeć sobie na rozmaite popularne projekty open-source i zobaczyć jak tam wygląda kod, pokrycie testami i jak ludzie nad tym pracują. Da się, tylko trzeba mieć doświadczenie, wiedzę i być ogarniętym.