Istnieje wiele odpowiedzi, które dotyczą technicznych zalet i wad utrzymywania LOC na niskim poziomie i czy jest to miara jakości oprogramowania o znaczącej jakości. Nie o to chodzi w tym pytaniu. Chodzi o to, jak radzić sobie z zarządzaniem, które kładzie nacisk na naiwne dogmatyczne przestrzeganie określonej ogólnej zasady kodowania.
Niestety, dość często ludzie chwytają się rzeczy, które są dobrą radą, gdy są stosowane we właściwym kontekście i stosowane w sposób pragmatyczny, wyciągają je z tego kontekstu i stosują je dogmatycznie, nie doceniając problemów, które rada ma przede wszystkim złagodzić .
Porady dotyczące utrzymywania LOC na niskim poziomie mają na celu uniknięcie tworzenia metod, które próbują zrobić zbyt wiele za jednym razem, oraz zniechęcenie do tworzenia „klas boga”, które wiedzą zbyt wiele o aspektach projektu, które nie są ich bezpośrednia odpowiedzialność i od których zależą wszystkie pozostałe klasy w systemie. Kolejną zaletą krótszego kodu jest to, że jest on bardziej czytelny, chociaż, jak zauważyłeś, możesz go przesadzić do tego stopnia, że czytelność faktycznie zaczyna cierpieć.
Niska liczba LOC ma oczywiste zalety (małe metody pasują do twojej głowy łatwiej niż duże, mniej rzeczy w kodzie oznacza mniej rzeczy do popełnienia błędu itp.), Ale podlega ona również zasadzie malejących zwrotów. Refaktoryzacja metody 150-liniowej na szereg 20-liniowych to znacznie większa wygrana niż refaktoryzacja metody 10-liniowej na metodę 7-liniową.
Kiedy takie refaktoryzacja odbywa się kosztem jakiegoś innego aspektu dobrego projektowania oprogramowania (takiego jak czytelność), osiągnąłeś punkt, w którym możesz uzasadnić, że tego nie robisz. Usunięcie zmiennych, które nadają kontekst znaczeniu kodu i zastąpienie ich literałami, które tego nie robią, jest bardzo złą rzeczą. Dobry kod prawie nie zawiera literałów. Jednak te zmienne (i nazwane stałe) są wierszami kodu, które nie przyczyniają się bezpośrednio do programu, więc jeśli LOC jest czczony jako jakiś bóg, wówczas takie linie wyjaśniające są na wielkim niebezpieczeństwie, że zostaną przycięte do szybkiej wygranej i niektóre błędne pochwały ze strony kierownictwa.
Uważam, że jesteś wystarczająco mądry, aby to zrozumieć, w rzeczywistości jest to sedno twojego pierwotnego pytania. Problemem nie jest twoje zrozumienie, kiedy redukcja kodu jest dobra, a kiedy nie, problemem jest dogmatyzm w stosowaniu tego, co zwykle jest rozsądną praktyką w sposób bezkrytyczny.
Radzę poświęcić czas na rozmowę z kierownictwem, wyjaśniając swoje stanowisko i dlaczego uważasz, że to, o co jesteś proszony, szkodzi kodowi, a nie pomaga. Staraj się unikać konfrontacji, ale staraj się zachować racjonalność i spokój podczas takiej dyskusji. Ważne jest, aby kierownictwo rozumiało, że programowanie jest działaniem pragmatycznym, a porady dotyczące najlepszych praktyk są przydatne tylko wtedy, gdy są stosowane w sposób pragmatyczny. Najlepsza praktyka jest napisana w książce, nie wyryta w kamieniu, a kiedy jest ona sprzeczna (krótki kod z kodem czytelnym), to do programisty należy decyzja, którą z najlepszych praktyk zastosować. Mamy nadzieję, że są to rozsądni ludzie, którzy doceniają wkład taki jak ten.
Musisz także być trochę odważny, ponieważ jeśli jesteś zmuszany do zmniejszenia LOC tam, gdzie uważasz, że jest to niepotrzebne lub niewłaściwe, to naturalne, że i tak dokonasz zmiany ze względu na spokojne życie. Musisz się temu oprzeć i musisz podjąć decyzję. W sytuacji, gdy kierownictwo jest rozsądne, nie powinieneś dokładnie przestrzegać ich wytycznych, ale powinieneś być w stanie uzasadnić wszelkie okoliczności, w których nie postępujesz.
Niestety, ludzie mogą być irracjonalni, szczególnie jeśli chodzi o ludzi o niższej pozycji w hierarchii, kwestionujących ich decyzje i zasady, które narzucili tobie. Mogą zdecydować, że nie będą rozsądni. Musisz być na to przygotowany. Jeśli potrafisz zademonstrować przypadki, w których najlepsza praktyka LOC wchodzi w bezpośredni konflikt z innymi najlepszymi praktykami i dlaczego szkodzi to produktowi, i jeśli możesz to zrobić w częściach bazy kodu, dla których mieli niewielki lub żaden osobisty udział (więc nie robi tego nie wydają się osobistym atakiem na ich pracę lub pracę, którą nadzorują), to może pomóc wzmocnić twoją argumentację. Ponownie, musisz być przygotowany na usprawiedliwienie się w spokojny, racjonalny sposób i być w stanie „posiadać” argumenty, które wysyłasz.
Jeśli twoje kierownictwo jest rozsądnymi ludźmi, muszą docenić to, co mówisz, ma sens, jeśli możesz przedstawić dowody na poparcie swoich roszczeń.
s/\n/ /g
), co nie znaczy, że będzie nawet zdalnie czytelny