Od lat zmagam się ze wskazówkami dotyczącymi stylu kodu, podobnie jak wielu innych na tym forum. Obejmuje to zarówno przewodniki stylu walki, które uważam za wstrętne, jak i próby zachęcania innych do korzystania z przewodników stylu, aby ograniczyć ich styl, aby był bardziej czytelny jako całość.
Korporacja korzysta ze wspólnego standardu kodowania. Przy opracowywaniu oprogramowania dla firmy należy wziąć pod uwagę wiele ważnych rzeczy, takich jak szkolenie nowych programistów w zakresie pobierania kodu poprzedniej generacji. Pisząc kod, nie zawsze o tym myślisz. W rzeczywistości wielu programistów decyduje się nawet nie brać pod uwagę, w jaki sposób inni mogą chcieć podejść do kodu 5 lub 10 lat po ich odejściu. Przewodnik po stylu kodowania jest sposobem, w jaki korporacja może skoncentrować się na tych 5 i 10-letnich celach, ułatwiając programistom pracę w większym zakresie.
Z drugiej strony przewodniki stylu kodowania są notorycznie niedoskonałe, ponieważ nie jest możliwe opracowanie idealnego stylu kodowania i zapisanie go. Właściwie zaczynasz spotykać się z zabawnymi narożnymi przypadkami, w których matematyczne dowody zaczynają zawodzić, jeśli próbujesz je doskonalić. Wiemy więc, że przewodniki po stylu kodowania są niedoskonałe. Mogą nie koncentrować się idealnie na tym, czego potrzebujemy od 5 do 10 lat.
Gdybyśmy „wymusili” styl kodowania, poświęcilibyśmy wartość teraz dla wartości później. Można by to nazwać „inwestycją”, gdybyśmy byli pewni, że uzyskamy zwrot z naszych wysiłków, ale każdy programista, który pracował ze źle napisanym przewodnikiem po stylu kodowania, może zaświadczyć, że te zyski z „czytelności” są drogo opłacane przez rozpraszających programistów z dala od ich kodu. Z mojego doświadczenia wynika, że istnieje bardzo niewielka liczba przypadków, w których wymuszone style kodowania mają wartość, zwykle w oprogramowaniu dla wyjątkowych lodowców, gdzie oprogramowanie może być używane przez 30 lub 40 lat!
Zamiast tego uważam, że najskuteczniejsze jest potraktowanie przewodnika po stylu kodowania jako manifestu: „Uważamy, że jest to najlepszy styl kodowania dla naszej grupy”. To kilka płynnych myśli udokumentowanych słowami. Słowo „uwierz” jest ważne: jeśli zmieniają się przekonania, przewodniki stylu kodowania powinny się z nim zmieniać.
Właśnie tutaj pojawia się cytat z „silnego osobistego sprzeciwu”. W świecie, który nazwałbym „doskonałym”, piszesz kod, który uważasz za najlepszy, i żyjesz z konsekwencjami. Często lubimy przeoczyć „miękkie” konsekwencje podczas programowania, ale w tym przypadku są one ważne. Nie mam problemu z tym, że piszesz we własnym stylu, jeśli nie masz nic przeciwko, żebym nigdy nie dawał ci niczego ważnego i długotrwałego w rozwoju.
Pomyśl o całym systemie jak o polu golfowym. Styl kodowania toruje łatwą ścieżkę na torze wodnym. Jeśli utrzymasz standard kodowania, upewnimy się, że życie jest tak łatwe, jak to tylko możliwe. Im bardziej popadniesz w zera, stosując własne standardy kodowania, tym bardziej będziesz musiał udowodnić swoją wartość zespołowi.
Jeśli przyjdę w poniedziałek rano i stwierdzę, że spędziłeś cały weekend na rozwiązywaniu problemu, nad którym martwimy się od roku, i zrobiłeś to we własnym „specjalnym” standardzie kodowania, nie powiem ci napraw to. Powiem ci, żebyś wziął prysznic. Jeśli Twój „specjalny” standard kodowania jest wyjątkowo „specjalny”, mógłbym nawet zasugerować programistom poziomu podstawowego „przejrzenie” kodu w celu rozpowszechnienia wiedzy o tym, jak działa Twój kod i od razu wspomnieć, że jeśli coś wydaje się trudne do odczytania, powinien on / ona Posprzątaj to. Dostarczyłeś firmie wystarczającą wartość w ten weekend, że nie warto nawet wspominać o rażących naruszeniach standardów kodowania, które popełniłeś.
Oczywiście ta metafora golfa nie ma sobie równych. Jeśli poproszę cię o wykonanie zadania rangi i pliku, być może dodając nowe pola do jakiejś formy, a ty zdecydujesz się skorzystać z okazji, aby zmienić cały kod wypełniający formularz, aby pasował do twojego określonego stylu, używając kilku podejrzanych znaków, takich jak makra definiujące i jakąś okropną technikę meta-programowania szablonów, której właśnie nauczyłeś się podczas wymiany stosów, zostaniesz poproszony o powrót i naprawienie tego. Zdecydowałeś się działać, to są konsekwencje.
( Oświadczenie: całkowicie napisałem tę implementację is_base_of
rozwiązania trudnego zadania i zarabiałem na każde piekło, które dostałem za to od starszych programistów. Mówię, że było warto. Nadal dostaję radosny bąbel śmiechu za każdym razem spojrzenie na sposób, że kliny wzorzec jak 7 niepowiązanych części C ++ specyfikacji razem zrobić coś niezwykłego. Weź, ty starszych programistów! to jest to, co masz do zabrania boost
na tego konkretnego projektu! )