Pytanie:
Członek zespołu zdecydowanie sprzeciwia się formatowaniu kodu
mguijarr
2019-05-17 16:15:31 UTC
view on stackexchange narkive permalink

Jestem menadżerem małego zespołu programistów (5 inżynierów, w tym ja).

Kilka miesięcy temu, za sugestią innego kolegi, wprowadziliśmy obowiązkowe formatowanie kodu w bazie kodu, dla naszego główny projekt. Nasz projekt jest w Pythonie, a narzędzie formatujące jest czarne (chyba nie ma znaczenia).

Uważam, że warto mieć taki sam „wygląd” kod we wszystkich plikach projektu, dla mnie jest to część kontroli jakości całego projektu. wnioski o scalenie kodu muszą być sformatowane za pomocą narzędzia, w przeciwnym razie nie można ich dodać do oprogramowania.

Od tego czasu, kolega zawsze narzeka i wyraża sprzeciw wobec tej decyzji, ilekroć nadarzy się okazja.

Jak poradziłbyś sobie z taką sytuacją?

Co byś odpowiedział na „formatowanie kodu to totalnie bzdury ", " to jest jak kolory, niektórzy ludzie lubią czerwony, inny niebieski to wszystko ", " ogranicza moją wolność ", " sprawia, że ​​odczytanie kodu jest bardziej skomplikowane bez wartości dodanej " itp.?

Komentarze nie służą do rozszerzonej dyskusji;ta rozmowa została [przeniesiona do czatu] (https://chat.stackexchange.com/rooms/93828/discussion-on-question-by-mguijarr-team-member-is-vehemently-against-code-format).
Możesz chcieć [edytować], aby wyjaśnić, że nie ma faktycznych czasochłonnych problemów z edycją kodu lub sprawdzaniem (mam problemy z formatowaniem, którego nie można rozsądnie ustawić na domyślne w moim IDE - nie jestem fanemdodawania spacji ręcznie, aby uczynić formatter / sprawdzanie stylu szczęśliwym).Odpowiedzi jasno wskazują, że patrzysz na problem interpersonalny, a nie na rzeczywisty problem, który przedstawiłeś.
Jedną z rzeczy, które mogą pomóc nam lepiej zrozumieć Twoją sytuację, jest to, czy omawiałeś tę decyzję ze swoim zespołem przed jej wdrożeniem.Kiedy mówisz „wprowadziliśmy obowiązkowe formatowanie kodu”, czy masz na myśli „my, zespół zdecydowaliśmy się ...” czy „jako kierownik zespołu, zdecydowałem, że nasz zespół…”?Czy prowadziłeś konstruktywne dyskusje ze swoim zespołem przed wprowadzeniem zmiany formatu, a jeśli tak, to czy Twój „główny programista” zgłosił wówczas jakieś zastrzeżenia?Jeśli tak, czy wysłuchano ich sprzeciwów?A może pewnego dnia wyciągnęli coś tylko po to, by stwierdzić, że wszystko zostało pod nimi sformatowane?
Warto wiedzieć, co dokładnie oznacza * formatowanie *, jak szczegółowe jest formatowanie?Chociaż absolutnie pomocne jest posiadanie tego samego wcięcia, pozycji nawiasów klamrowych i tym podobnych, jest to absolutne byki @ @t i wcale nie pomaga narzucanie dokładnej liczby pustych wierszy we wszystkich możliwych do wyobrażenia sytuacjach, takich jak komentarze lub funkcje, lub także w środkuFunkcje.Dla mnie racja lub błąd jest silnie związany z takimi szczegółami.Czy mógłbyś dodać przykłady?
@puck OP używają czarnego, który jest bardzo rozsądnym sposobem formatowania kodu.Pracownik narzeka na taki styl strasznie nierozsądny.
Czy rzeczywiście uzgodnisz styl kodu, a następnie narzędzie stworzy taką opcję?Może zacznij od domyślnego czarnego, a następnie omów, czy konieczne są jakieś zmiany (ponieważ używanie tego samego, co wszyscy inni, jest ogólnie dobrym pomysłem)?
26 odpowiedzi:
Neo
2019-05-17 16:32:38 UTC
view on stackexchange narkive permalink

Jak byś sobie radził w takiej sytuacji?

Po miłym pocieszeniu go, co już zrobiłeś, czas stanowczo powiedzieć im, aby sobie z tym poradzili . To nie jest kod jednostki, ale firmy. Jako menadżer potrzebujesz, aby Twój zespół mógł jak najbardziej zadbać o kod i nowe dodatki, które dodasz do zespołu w przyszłości.

”formatowanie kodu to totalnie b *** $ hit "

Jako programista, w firmach, w których brałem udział, egzekwowane są pewne standardy formatowania. Jako główny programista spodziewałbym się, że będą fanami.

„To jak kolory, niektórzy ludzie lubią czerwony, a inny niebieski, to wszystko”

Jako Twój menedżer lubię czerwony, radzę sobie z nim.

„ogranicza moją swobodę”

Formatowanie kodu nie wpływa na swobodę tworzenia eleganckiego rozwiązania. Wzywam B.S. na tym, i Ty też powinieneś.

„sprawia, że ​​kod jest bardziej skomplikowany do odczytania bez wartości dodanej”

Ummmm nie. To sprawia, że ​​zastanawiam się, czy Twój główny programista jest w ogóle liderem ....

Powtarzając - Ty wyznaczyłeś standard, jako menedżer lub zespół, to nie ma znaczenia. Potencjalny klient musi wejść na pokład z nim lub może iść dalej .

Komentarze nie służą do rozszerzonej dyskusji;ta rozmowa została [przeniesiona do czatu] (https://chat.stackexchange.com/rooms/93786/discussion-on-answer-by-mister-positive-vehemently-against-code-formatting).
@Eyal - Czasami bycie tylnym tyłkiem osła to jedyny sposób na rozmowę z pracownikiem, który jest całym osłem.(Innymi słowy, tyłek za tyłek).
Dla mnie, jeśli nie ma konkretnych uwag dotyczących stylu formatowania, którego pracownik nie lubi (tabulatory vs. spacje, liczba spacji na tabulację [co, na marginesie, jest tak naprawdę problemem tylko wtedy, gdy spacje są wybierane nad zakładkami], umieszczanie nawiasów, praktyki kontynuacji linii itp.), są one po prostu trudne ze względu na trudności.OP nie wskazał, że pracownik miał jakąś konkretną krytykę na temat obecnego narzędzia, a jedynie ogólne formatowanie.
Uparta osoba jest niezwykle użyteczna * po nawróceniu * i może stać się bezużyteczna, gdy * zostanie zmuszona *.Są chwile, kiedy to drugie jest konieczne, ale jest to świetny sposób na zniszczenie produktywności i motywacji.Pierwsza z nich jest zwykle bardziej konstruktywna - dobra inwestycja * dla zespołu i menedżera * w perspektywie średnioterminowej, jeśli zostanie wykonana dobrze.Możliwe jest odstraszenie kogoś, kogo * można by nawrócić z odpowiednią finezją i zrozumieniem * i kto byłby potężnym atutem.Tak więc sympatyzuję z tym, do czego zmierza ta odpowiedź, ale -1 za to, że nawet nie uznam drugiej strony tego kompromisu.
Prowadzenie nie jest graczem zespołowym.Zawsze znajdujemy się w sytuacjach, w których mamy nieporozumienia.Jeśli nie możesz dostosować się do życzeń zespołu lub kierownictwa, zawsze możesz odejść.
Przede wszystkim formatowanie kodu i podświetlanie składni to dwie różne rzeczy i powinny być omówione oddzielnie.W USA podświetlanie składni można uwzględnić w dostosowaniach ADA dla potrzeb wyświetlania o wysokim kontraście.Po drugie, wszystkie nowoczesne środowiska IDE można spersonalizować w celu ponownego formatowania i podświetlania w locie oraz ponownego formatowania kodu do standardu firmy w momencie zatwierdzenia.Najlepszą odpowiedzią powinno być przyjęcie standardu firmy ORAZ zapewnienie wsparcia i pozwolenia dla programistów na personalizację wyświetlania kodu w celu zwiększenia czytelności na ich stacjach roboczych.Czasami Szef potrzebuje tyłka, ale nie tym razem.
Głosowałem negatywnie, ponieważ argumenty w tej odpowiedzi odnoszą się do ogólnej konieczności spójnego _ stylu kodowania_, podczas gdy w PO został podniesiony konflikt dotyczący narzucenia _ określonego narzędzia_.Czuję, że to nie to samo: styl kodowania niekoniecznie wymaga obowiązkowego narzędzia.
berry120
2019-05-17 17:02:28 UTC
view on stackexchange narkive permalink

Szczerze mówiąc, moja reakcja byłaby następująca:

Bob, doceniam opinie, ale jako zespół zdecydowaliśmy, że używamy czarnego jako naszego obowiązkowego narzędzia do formatowania kodu, i ta decyzja jest ostateczna. Rozumiem, że to nie twoje osobiste preferencje, ale obawiam się, że będziesz musiał nauczyć się z tym pracować.

Ale gdybym chciał zaangażować się w dyskusję?

„formatowanie kodu to kompletna bzdura”

To niezbyt konstruktywna opinia, czy mógłbyś być bardziej szczegółowy?

jak kolory, niektórzy lubią czerwony, a inny niebieski, to wszystko ”

Oczywiście, ale standaryzacja tych„ kolorów ”jest bardzo pomocna i musieliśmy wybrać jeden!

„ogranicza moją wolność”

Podobnie zgadza się z wyrażeniem zgody na pisanie kodu w tym samym języku i wersji tego języka, ale czy możesz sobie wyobrazić chaos, gdybyśmy tego nie zrobili ?

„utrudnia to odczytanie kodu bez wartości dodanej”

To nieprawda. Po chwili czytania kodu w tym formacie nie będzie to w ogóle bardziej skomplikowane - w rzeczywistości będzie to łatwiejsze przeczytać (wartość dodana), ponieważ będziesz musiał się tylko nauczyć jeden styl w całym projekcie. Oznacza to również, że różnice są znacznie bardziej czytelne dla PR, możemy dołączyć innych deweloperów i przyspieszyć ich pracę, a deweloperzy nie będą się przejmować tym, jaki rodzaj formatowania może wyglądać trochę ładniej w danej sytuacji. / p>

Żeby było jasne, jeśli jego opinia była konstruktywna - powiedzmy o formacie „Nie sądzę, aby czarny był nam pomocny z powodów x, y i z, ponieważ większość naszych kod podąża za stylem kodowania bc, z którym Black radzi sobie słabo, czy zamiast tego rozważałeś (inne narzędzie) ”, to jest to bardzo inny scenariusz. Wtedy powinieneś dołożyć wszelkich starań, aby zaangażować się w dyskusję, aby potwierdzić jego obawy i współpracować z nim w rozwiązywaniu ich.

`ale obawiam się, że jeśli chcesz pozostać w tym zespole` W głowie może mi się to wydawać, ale zdecydowanie nie powiedziałbym tego w ten sposób, przynajmniej na początku.Ten facet wydaje się być kimś, kto może szybko eskalować, a to sformułowanie prawdopodobnie sprawi, że eskalacja będzie szybsza.Użyłbym czegoś bardziej w stylu: „Rozumiem, że to nie jest twoje osobiste preferencje, ale musiałem dokonać wyboru dla zespołu i to wszystko”.Myślę, że głównym celem jest pomóc wszystkim zrozumieć korzyści i dołączyć do grupy.Jeśli nadal będzie się buntował, podkręcisz język.
@JeffC Tak, to słuszna uwaga.* Miałem na myśli *, że jest to niepodlegające negocjacjom, kiedy on tam pracuje, ale czytając to z powrotem, wydaje się to o wiele bardziej konfrontacyjne, niż zamierzałem to zabrzmieć ...!
„ale jako zespół zdecydowaliśmy, że używamy czarnego jako naszego obowiązkowego narzędzia do formatowania kodu”, OP nigdy nie stwierdził, że była to decyzja zespołu.
@Akavall „na podstawie sugestii innego kolegi ** wprowadziliśmy **…” Podkreśl moje, i to sprawia, że brzmi to dla mnie jak decyzja zespołu.Jeśli tak nie jest, to (pomyślałbym oczywiście) po prostu odrzuć fragment „jako zespół”.Reszta odpowiedzi nadal obowiązuje.
„Wprowadziliśmy” nie oznacza, że decyzja o jego wprowadzeniu została podjęta przez zespół, mogła, ale nie musiała.Byłbym ostrożny, twierdząc, że coś było decyzją zespołu, podczas gdy tak naprawdę nie było.
@Akavall Myślę, że jest oczywiste, że każda sugerowana odpowiedź powinna zostać zmieniona, aby pasowała do sytuacji.Jak powiedziałem powyżej, jeśli nie jest to decyzja zespołowa, porzuć „jako zespół”.To powinno być dość oczywiste, podobnie jak zmiana nazwiska kolegi, jeśli nie jest to „Bob”!
Jeśli chodzi o formatowanie kodu, to całkowicie zależy od dokładnego * sposobu * ponownego formatowania.Jeśli na przykład automatycznie zmienia definicje funkcji z powrotem na styl K & R, może mieć rację.Albo robić okropne rzeczy, żeby zmieścić się w granicach 80 znaków, albo skracać nazwy zmiennych.Próba znalezienia tego, co mu się nie podoba w standardowym formacie, może być przydatna dla PO.
@Graham Absolutnie.Jeśli jego opinia brzmiała: „to automatycznie zmienia definicje funkcji z powrotem na K&R, i to nie jest pomocne”, to jest to konstruktywna krytyka i powinieneś z nim współpracować, aby sprawdzić, czy istnieje obejście lub może inne narzędzie, które lepiej pasowałoby do zadania.Ale to milę od argumentów „to byki ** t i zmniejsza moją wolność”, które widzimy w PO.
@berry120 Jako ktoś, kto spędził bardzo dużo czasu grając według zasad MISRA, całkowicie się z tym zgadzam.Wolność w kodowaniu jest generalnie przeceniana.Lubię mieć zaczepy bezpieczeństwa na rzeczach, które mogłyby strzelić mi w stopę.:)
Postanowiłem przyjąć tę odpowiedź - mogę zaakceptować tylko jedną, nawet jeśli jest tak wielu innych, którzy mają dobre strony.Decyzja o automatycznym, obowiązkowym formatowaniu kodu została podjęta za zgodą pozostałych członków zespołu (poza jednym, to…).Inni są jednak młodsi.Użyłem słowa „główny programista”, ponieważ ma on duży obraz projektu i jest starszy, ale jestem też programistą w zespole ... Z pewnością moja podwójna rola czasami utrudnia sprawę.Dzięki za pomoc!
Niektóre komentarze ode mnie dotyczące Black'a mogą być takie, że * nie * podoba mi się to, jak formatuje wszystko - wymusza podwójne cudzysłowy, ale wybiera cokolwiek - ale zrezygnuję z tego dla * spójności *.Niemal całkowity brak konfigurowalności oznacza, że nie możesz toczyć tych wszystkich drobnych kłótni o to czy tamto, jest to `` weź to lub zostaw ''.
_ „musieliśmy wybrać jeden!” _ tylko sprawia, że myślę _ „Jestem daltonistą, a Ty ustandaryzowałeś kolory, które utrudniają czytanie, dlaczego nie uwzględniono moich potrzeb?.Ta odpowiedź polega na tym, aby skłonić opornego programistę do dostosowania się, czyniąc i tak już wrogie środowisko jeszcze bardziej wrogim.Bycie menadżerem nie polega na utrzymywaniu pasów do czasu poprawy morale, ale na usuwaniu barier, które uniemożliwiają ludziom wykorzystanie ich potencjału.Zobacz [Peopleware] (https://en.wikipedia.org/wiki/Peopleware:_Productive_Projects_and_Teams).
wasmachien
2019-05-17 17:26:32 UTC
view on stackexchange narkive permalink

Chciałbym przekonać go o pozytywnych skutkach jednolitego formatowania kodu. Różnice Git stają się znacznie łatwiejsze do zrozumienia, gdy zatwierdzenie n i zatwierdzenie n + 1 mają takie samo formatowanie. Łatwość konserwacji staje się łatwiejsza, zakładając, że formater egzekwuje dobre praktyki. W końcu tworzenie oprogramowania dla firm to sport zespołowy.

Jeśli twój program do formatowania kodu umożliwia definiowanie reguł, zapytaj go, czy są jakieś reguły, których nie lubi, i rozważ omówienie ich ze swoim zespołem.

Największą zaletą łatwiejszych do przyswojenia różnic jest to, że teraz koncentrujesz się tylko na faktycznych różnicach w kodzie i nie musisz poświęcać swojej ograniczonej uwagi poznawczej na nieistotne zmiany formatowania.Lub, biorąc pod uwagę pytanie o Python, zmiany formatowania, które mogą być nieistotne lub nie.Nasz zespół rozpoczął zatwierdzanie tylko formatowania, po którym następuje faktyczne zatwierdzenie zmiany kodu, aby uniknąć tego samego problemu.
+1, pracowałbym z tobą.Ta odpowiedź jest jedyną, która nie próbuje przekonywać pracownika, że wdrożenie jest właściwą drogą, ale że ** cel ** jest rzeczą, o której należy pamiętać.Oferując swój wkład, może przyczynić się do najlepszego rozwiązania.Odpowiedzi takie jak „Powiedz mu, żeby to wciągnął lub odszedł” to śmieci.To nie jest przywództwo.
„Różnice Git stają się znacznie łatwiejsze do zrozumienia, gdy zatwierdzenie n i zatwierdzenie n + 1 mają takie samo formatowanie”.z drugiej strony stają się znacznie trudniejsze do strawienia, gdy jesteś zmuszony zmienić wcięcie dużego bloku kodu, aby dodać lub usunąć warunek.
Czuję, że jest to bardziej inteligentna emocjonalnie odpowiedź.Mój kierownik techniczny walczył z naszym menedżerem w zakresie pewnych standardów procesowych, ale zwykle zgadzają się na wypróbowanie go przez kwartał i kontynuowanie rozmowy.Podejście „Wessij to i sobie z tym poradzić” nie jest moją filiżanką herbaty, nawet jeśli pracownik jest tym, który ma złe nastawienie.Jako menadżer musisz wznieść się ponad to i nie schylać do tego poziomu.
+1 za pytanie, czy ma pomysły na poprawę.Zawsze jest całkiem możliwe, że mogą istnieć uzasadnione powody, dla których określony standard kodu nie jest idealnie dopasowany, więc czasami warto rozważyć zmiany, ale tylko wtedy, gdy istnieje dobry powód, dla którego poprawia on czytelność i strukturę, jeśli jednak myśli o formatowaniu kodunie przyniesie korzyści, przypuszczam, że nie będzie miał sugestii.
To.Poszukałbym również obsługi IDE (natywnej lub wtyczki), która przeformatuje kod do określonego stylu lub nawet lepiej do kilku stylów.Pozwól programistom pracować tak, jak chcą.Ostatnim krokiem przed zatwierdzeniem jest „formatowanie kodu do standardu”.
@PeterGreen, Jedną z pięknych rzeczy, które można zrobić z git, jest przepisanie historii, tak aby wszystko było w formie Blackened * od pierwszego zatwierdzenia *.Zrób to i dodaj ciągłe egzekwowanie, a nie będziesz miał żadnych zmian bez znaczenia semantycznego w historii ... nigdy.
@ivanivan To byłby drugi ostatni krok.Ostatnim krokiem jest oczywiście przetestowanie go, aby upewnić się, że nadal działa.
@PeterGreen, nie zatwierdzisz formatowania i zmiany w tym samym zatwierdzeniu.Do tego służą zatwierdzenia formatujące.
Mark Booth
2019-05-17 23:10:50 UTC
view on stackexchange narkive permalink

Jak poradziłbyś sobie z taką sytuacją?

Spróbowałbym zrozumieć oporny punkt widzenia programistów. Mogą mieć dobre strony, które sprawiają, że ignoruję.


Zaimplementowaliśmy automatyczne formatowanie w naszej bazie kodu kilka lat temu i nie powodowało to końca problemów, częściowo ze względu na sposób, w jaki zostało wprowadzone , ale głównie ze względu na sposób, w jaki wpłynęło to na nasz przepływ pracy. Spowodowało to tak dużo dodatkowej pracy przy naprawianiu konfliktów scalania, że ​​w końcu wyłączyliśmy wiele aspektów automatycznego formatowania, więc automatycznie poprawiało tylko rzeczy, które nie powodowały więcej problemów niż rozwiązały. Przeszliśmy również przez wszystkie ustawienia i uwzględniliśmy tylko te, na które wszyscy się zgodzili.

Jednym z problemów z automatycznym formatowaniem jest nie tylko „standaryzacja” złego formatowania, ale także „standaryzacja” dobrego formatowania.

Automatyczny program formatujący nie może odróżnić przypadkowo dodanej podwójnej spacji od podwójnej spacji dodanej, aby element w jednej linii był wyrównany z elementem innej linii. To wizualne skojarzenie może znacznie ułatwić czytanie kodu, ponieważ może być znacznie bardziej oczywiste, że dwie rzeczy w dwóch wierszach są ze sobą powiązane.

Jeśli zamierzasz zaimplementować automatyczne formatowanie, potrzebujesz całego zespołu aby w to wejść.

Musisz zastosować formatowanie globalnie, w gałęzi i scalić w tej gałęzi dopiero, gdy wszyscy będą mieli okazję sprawdzić, jaki to ma wpływ na ich przepływ pracy, zgłosić swoje zastrzeżenia i uzgodnić dalszą drogę.

Większość ludzi kupiłaby automatyczne usuwanie białych znaków z końców linii, niewielu ludzi chciałoby, aby ich ostrożne ręczne dzielenie linii dla czytelności było bezmyślnie ponownie podzielone na niespójny bałagan. -formatowanie narzędzi generuje.

Podejrzewam, że ten programista jest zdenerwowany, ponieważ jest dumny ze swojej pracy, spędził dużo czasu, aby jego kod był jak najbardziej czytelny i łatwy w utrzymaniu, a to automatyczne formatowanie zniszczyło całe ich starannie dopracowane formatowanie.

Mimo, że składnia Pythona już nakłada szereg wymagań na formatowanie, nadal pozostawia dużą swobodę dla indywidualnego programisty.

Krótko mówiąc. Posłuchaj zastrzeżeń swoich programistów, być może uda Ci się ulepszyć bazę kodu dla każdego. Jak mówi PEP 8 - Przewodnik po stylu dla kodu w Pythonie

Głupia konsekwencja to hobgoblin małych umysłów

To jest na początku przewodnika z bardzo dobrego powodu.


Biorąc pod uwagę komentarz jrh, czasami ludzie określają programowanie jako „ bardziej ze sztuki niż z nauki ”, wyśmiewajcie się, ale nie zgadzam się, jeśli chodzi o miękkie aspekty kodowania. Programy nie tylko rozmawiają z kompilatorem / interpretatorem, ale także z programistami, którzy być może będą musieli naprawić, ulepszyć lub utrzymać ten kod w przyszłości.

Aby rozwiązać problem VGR s komentarz, nie sądzę, by to dobre miejsce na krytykę czarnego. Nie korzystałem z tego narzędzia, ale czytając opis, widzę tam głównie dobre rzeczy, zwłaszcza jeśli chodzi o długoterminową konserwację i zróżnicowanie (zmora złożonych połączeń).

To nie pomaga, jeśli Cały zespół nie chce jednak używać tak surowego i bezkompromisowego automatycznego formatowania.

Wydaje się, że jest to jedyna część PEP 8, którą ludzie ignorują (ok, ok, to, a wiele osób doszło do wniosku, że 80 znaków to śmieszny anachronizm).Pionowo wyrównane podobne części linii są lepsze.Walcz ze mną.
Limity 80 znaków są popularne nie dlatego, że miały je 30-letnie terminale, ale dlatego, że w ten sposób znacznie wygodniej jest zobaczyć na pierwszy rzut oka, co robi kod, gdy tylko skanujesz go oczami.Długie linie zabijają czytelność.Przewodniki typograficzne dotyczące tekstu zwykle zalecają 45-70 znaków w linii.Często formatuję bloki komentarzy do szerokości około 60 linii, ponieważ uważam, że jest to najlepszy punkt pod względem czytelności.
Ta odpowiedź dotyka niektórych ważnych problemów z elementami formatującymi automatycznie, które rzadko są uwzględniane;Uważam, że ostrożne użycie niestandardowych białych znaków, które nie wpływają na funkcjonalność, jest „ukrytą funkcją” programowania i czasami może naprawdę pomóc.Jedyne kontrargumenty, przeciwko którym kiedykolwiek słyszałem, brzmią mniej więcej „no cóż, spędzasz więcej czasu na tworzeniu układu niż na formatowaniu”, ale nigdy nie uważałem tego rodzaju pracy za marnotrawstwo.spędzać wiele godzin, robiąc to ...
... i chyba podam konkretny przykład: 1) Czy ktokolwiek twierdziłby, że listy wypunktowane z wcięciami w Stack Exchange nie są przydatne?2) Czy wszyscy woleliby, gdyby usunęli to ze względu na „standaryzację”?3) Oto próbka tego, jak by to wyglądało.Wydaje mi się, że wolałbym, aby programiści mieli takie same zasoby, jak pisarz (w praktyce wiem, że rozmiary czcionek i pogrubienie / kursywa byłyby problematyczne);Usuń spacje na końcu linii i wymuszaj wcięcia tabulatorów i spacji, jasne, ale nie jestem fanem usuwania narzędzi do dobrego prezentowania pomysłów.
Chociaż masz kilka dobrych punktów, nie znalazłem w pytaniu żadnej wzmianki o automatycznym formatowaniu.Jestem zdecydowanym zwolennikiem standardów kodowania, ale gardzę automatycznym formatowaniem, ponieważ wynik jest zwykle kiepski.Jak i gdzie dostosować się do standardów (takich jak najlepszy sposób na przerwanie linii), to zadanie najlepiej pozostawić ludziom.mguijarr może wymusić standardy kodowania bez użycia automatycznego formatowania.
-1 Workplace.SE to obsługa ludzi, a nie rozwiązania techniczne.Odpowiedź Wasmachiena opisuje przynajmniej, jak wykorzystać tę technologię, aby przekonać osobę.
Nie widzę, w jaki sposób Twój komentarz pomaga mi poprawić moją odpowiedź. @Chris,. Moje główne punkty dotyczą ludzi, a moje uwagi techniczne służą tylko wzmocnieniu potrzeby komunikacji.
-1
Konkretna odpowiedź znajduje się u góry @Chris,, której trudno przegapić.Reszta to potwierdzające dowody z osobistych doświadczeń związanych z sytuacją podobną do sytuacji, w której deweloper jest „zarządzany”.
@MarkBooth Właściwie trudno go przegapić.Twoja rada to dwa małe zdania w bardzo długiej odpowiedzi.Ale inni wydają się sądzić, że to właściwa odpowiedź, więc na tym zostawię.
„Jeśli zamierzasz wdrożyć automatyczne formatowanie, cały zespół musi to kupić”.- to!Korzyści z tego wynikają, gdy wszyscy to robią.Możesz chcieć, aby łańcuch narzędzi kompilacji sprawdzał źródła w czasie kompilacji (i kończyło się niepowodzeniem, jeśli nie są one poprawnie sformatowane) lub narzędzie kontroli wersji sprawdza w czasie wypychania.
OliverRadini
2019-05-17 19:31:27 UTC
view on stackexchange narkive permalink

Jeśli mam piekarnię, mogę chcieć, aby moi piekarze używali bochenka o standardowej wielkości. Ułatwia to np. Zakup worków na chleb. Mogę mieć stałą cenę za bochenki, które robię.

Moi piekarze mogą uważać, że ogranicza to ich kreatywność. Niektórzy mogą chcieć zrobić bardzo małe lub bardzo wysokie bochenki chleba.

Inni piekarze mogą uważać, że wolą dużo większy bochenek.

Nie oznacza to, że ich nie ma. t ważne powody do ustanowienia standardu.

Jednak niektórzy piekarze mogą chcieć zwrócić uwagę, że rozmiar bochenka, o który prosiłem, nie pasuje do piekarnika. Byłbym bardzo rozsądnym właścicielem piekarni, gdybym słuchał tych piekarzy.


Członek Twojego zespołu już teraz dostosowuje się do szerokiego zakresu standardów, które mogą ograniczać ich kreatywność i zaprzeczać ich preferencjom. Do tego dochodzi praca w zespole. Nie oznacza to, że nie powinieneś wyznaczać standardów, ale prawdopodobnie rozsądnie jest pozwolić i zachęcić do konstruktywnej, niepowodującej zakłóceń opinii.

Podoba mi się analogia.Uważaj, że został skradziony do użytku w przyszłości!
Ta analogia trochę mnie gubi, ponieważ niesformatowany kod * działa * tak samo jak sformatowany, czego nie można powiedzieć o chlebie.Mały bochenek nie spełni pracy dużego bochenka.Naprawdę trudno jest porównać tę koncepcję do namacalnego, fizycznego dobra.
@Geobits Okrągły bochenek działa tak samo jak prostokątny bochenek, ale zdecydowanie wymaga różnych toreb.
Myślę, że jest to dobra odpowiedź, ponieważ pokazuje, że to, czego prawdopodobnie brakuje w pytaniu, jest przyczyną standardu formatowania kodu.A przynajmniej nie ma zgody co do znaczenia standardu.
@user1234567890abcdef Tak, ale to wciąż różne bochenki, podczas gdy z kodem produkt końcowy nie jest inny.Formatowanie kodu jest bardziej podobne do tego, aby wszyscy piekarze rozmieścili swoje obszary robocze w ten sam sposób, aby były wymienne i każdy wiedział, gdzie wszystko jest, jeśli musi pracować w innym miejscu.Nie jest to też idealna analogia, ale bliżej mi do głowy.
@Geobits - Kilka lat temu wystąpił poważny błąd SSL w niektórych programach Apple, który spowodował usterkę w formatowaniu kodu (tj. Pisanie dwóch wierszy kodu pod instrukcją if).Przykład może być chybiony, nie pamiętam dokładnych szczegółów, ale był to dość głupi błąd w kodowaniu.Chodzi o to, że standardy kodu służą celowi.
Ta analogia rozpada się, ponieważ oczekuje się, że wyjście programistów będzie miało wysoki stopień oryginalności, podczas gdy chleb ma być jednolity.Jest miejsce na debatę, czy program formatujący kod powinien _zawsze_ przesłonić osąd ludzkiego programisty (zakładając, że kod stworzony przez człowieka jest w miarę zgodny z przewodnikiem po stylach, a wariancje mają swoje uzasadnienie).
Bardzo nie lubię analogii w programowaniu.Mogą wydawać się pomocne, ale zazwyczaj łatwiej jest mówić w kategoriach programowania, gdy twoją grupę docelową stanowią programiści.
@Ramhound True, ale zostałby przechwycony tylko wtedy, gdyby nieprawidłowe formatowanie spowodowało błąd.OP używa narzędzia, które automatycznie formatuje nieprawidłowo sformatowany kod.
@Marc.2377 To super;Bardzo lubię analogie w programowaniu, w sobie, gdzie ma to sens.Nie wydaje mi się, żeby to pytanie dotyczyło programowania, ale standardów w pracy
@PeteCon Cieszę się, że mogłem służyć!
@Geobits Myślę, że _funkcja_ chleba jest trochę trudna do zdefiniowania, ale prawdopodobnie _funkcje_ są takie same, chociaż masz rację, analogia tak naprawdę nie rozciąga się zbyt daleko.Myślę jednak, że jest to sedno tego pytania
@200_success Zdecydowanie nie zgadzam się z tym;kod, który ludzie piszą, w ogóle nie wymaga oryginalności;produkt końcowy może wymagać oryginalności.Klientów nie obchodzi, czy Twój kod źródłowy jest oryginalny, czy nie
@Geobits Źle sformatowany kod może działać, ale trudniej będzie z nim pracować w przyszłości.To samo dotyczy różnych rozmiarów chleba.Utalentowana osoba może być w stanie pracować z mniejszym rozmiarem chleba, ale jeśli rozmiary chleba pozostaną takie same dla szerszego grona pracowników, może nad nim pracować w porównaniu z kilkoma wysoko wykwalifikowanymi osobami.To samo dotyczy źle sformatowanego kodu, ponieważ utalentowana osoba może być w stanie z nim pracować, ale dla dużej grupy odbiorców może to nie być takie łatwe, gdyby każdy miał jakiś standard.
Pieczenie chleba o standardowej wielkości to praca na akord.Programowanie nie jest pracą na akord, chyba że jesteś w tym naprawdę zły.
@Brian Obawiam się, że nie zgadzam się, że pieczenie chleba to „praca na akord”.Nie jestem też pewien, czy widzę, jak różnica w rodzaju pracy wpływa na stosowalność standardów jakości.
@Donald Brzmi jak https://nakedsecurity.sophos.com/2014/02/24/anatomy-of-a-goto-fail-apples-ssl-bug-explained-plus-an-unofficial-patch/ W rzeczywistości ponowne formatowanie wymagałoby _helped_złap błąd, ponieważ przesunąłby drugi punkt w lewo pod if.
Zdaję sobie sprawę, że ponowne formatowanie by go złapało.
Czar
2019-05-17 17:14:33 UTC
view on stackexchange narkive permalink

„formatowanie kodu to kompletna bzdura”

Nawet jeśli miało to jakiś punkt (a nie ma), czarno-białe stwierdzenia, takie jak ta, często wskazują na bardzo niedojrzałe zrozumienie:

  • jak radzić sobie z narzędziami programistycznymi i omawiać ich zalety i wady w zrównoważony i kontekstowy sposób (czyli zawodowo )
  • jak radzić sobie w pracy zespołowej

Potrzebujemy profesjonalnych i konstruktywnych opinii, a nie fanatycznych aksjomatów.

"to jest jak kolory, niektórzy ludzie lubią czerwony, inny niebieski, to wszystko" / "ogranicza moją wolność"

Nie, to nie jest jak kolory. Chodzi o czytelność i o wspólne standardy .

Osoby zgłaszające tę skargę podążają ścieżką samolubstwa i nie zdają sobie sprawy z wartości dodanej wspólnych standardów w radzeniu sobie z kodem, a przede wszystkim w zrozumieniu kodu innych ludzi i sprawieniu, by zrozumieli swój.

Fakt, że każdy ma swoje własne preferencje, wręcz przeciwnie, jest dokładnie silny > powód, dla którego powinieneś mieć standardy kodowania, od komentarzy, przez nazewnictwo, po formatowanie.

Poświęcanie swoich „osobistych preferencji” musi być często wykonywane dla lepszej, dobrej pracy zespołowej wszystko polega na kompromis dla najlepszego wyniku.

Wyobraź sobie, że:

  • programista A ma swój standard
  • programista B używa innych standardów formatowania
  • nowy programista „C” musiałby czytać kod w dwóch różnych stylach
  • D w trzech… i tak dalej.

To staje się zagmatwane i męczące, ponieważ Twój mózg musi dostosowywać się do różnych stylów i nieustannie przełączać się między nimi . W przypadku jednego wspólnego standardu wystarczy dostosować się raz . We współdzielonych projektach, nawet jeśli open source , egzekwujesz standardy z bardzo ważnych powodów.

A jeśli edytują ten sam plik / klasę? Czy skończy się na różnych stylach kodowania?

„utrudnia to odczytanie kodu bez wartości dodanej”

Myślę, że to, co napisałem powyżej, wystarczy jako odpowiedź na ten kompletny nonsens.


Edycja: proszę spojrzeć także na odpowiedź @ nitarshs, daje to inny interesujący punkt widzenia z punktu widzenia psychologii grupowej, który wydał mi się interesujący.

@NathanHughes nie, może złe sformułowanie, nie jestem rodzimym użytkownikiem języka angielskiego.Chciałem powiedzieć „ludzie, którzy z taką łatwością walą w narzędzia”.
nitarshs
2019-05-17 18:57:50 UTC
view on stackexchange narkive permalink

Być może główna przyczyna problemu nie jest związana z formatowaniem kodu, ale czymś innym ?

Z mojego doświadczenia wynika, że ​​ta sytuacja wyraźnie pokazuje, że odmawiająca osoba nie wyraziła siebie w sposób dojrzały i racjonalny, bez znaczenia, czy ma rację, czy nie.

Nie jestem pewien, jak długo dana osoba była z tobą i zespół, ale naprawdę uważam, że powinieneś lepiej znać skłonność danej osoby, aby wiedzieć, jak radzić sobie w takich sytuacjach.

Zauważyłem, że nawet racjonalni ludzie zachowują się irracjonalnie, gdy nie są z czegoś zadowoleni. Nawet oni mogą nie zdawać sobie sprawy z prawdziwej przyczyny swoich irytacji.

Lub po prostu możliwe, że dana osoba jest z natury niedojrzała, w takim przypadku możesz ją zignorować, o ile tylko ona działają prawidłowo.

Może zabierz je na drinka / kolację i poświęć im trochę uwagi i uwagi. Powinieneś otworzyć się przed nimi i pozwolić im się otworzyć. Spróbuj lepiej poznać swoich kolegów z drużyny i pozwól im lepiej poznać siebie i resztę zespołu.

Mogą mieć bardzo jasne pojęcie, na czym polega inny problem i czuć, że to nie do nich należy poruszanie go.
Możliwy.W takich przypadkach po prostu zignoruj ich komentarze.
davnicwil
2019-05-17 19:33:32 UTC
view on stackexchange narkive permalink

Tu nie chodzi o formatowanie kodu. Chodzi o bycie dobrym i skutecznym menedżerem oraz egzekwowanie podjętej przez siebie decyzji dotyczącej sposobu pracy zespołu - co, jak powiedziałeś, jest brane pod uwagę i może ogólnie przynieść korzyści zespołowi.

Myślę, że problem najlepiej ilustruje usunięcie szczegółów z Twojego pytania:

Jestem kierownikiem małego zespołu programistów

- - Podjąłem decyzję w sprawie szczegółów tego, jak pracujemy -

Od tego czasu kolega zawsze narzeka i wyraża sprzeciw wobec tej decyzji

To problem ludzi - najtrudniejsza część bycia menedżerem. Kuszące jest, aby spróbować zająć się treścią skarg, ponieważ są to znajome, wygodne terytorium i można się z nimi spierać - w pewien sposób obiektywnie.

Ale oprzyj się tej pokusie, ponieważ to, co naprawdę musisz zrobić, to powiedzieć temu członkowi zespołu, bezpośrednio i jednoznacznie, że musi zaakceptować decyzję i przestać o niej dyskutować.

To osobiste, niewygodne, ale robienie tego jest częścią pracy i tego, czego chce i oczekuje reszta zespołu, zapewniam cię.

Co więcej, przyczyną jest prawdopodobnie problem ludzi.Podczas gdy ten kolega protestuje przeciwko * rezultatowi * zmiany, w rzeczywistości może sprzeciwić się sposobowi, w jaki zmiana została wprowadzona, lub innym aspektom zmiany.W takim przypadku formatowanie jest tylko czerwonym śledziem, prawdziwym problemem jest coś innego, a rozwiązaniem jest omówienie z nim różnych rzeczy, ustalenie prawdziwego problemu i rozwiązanie go.
Jeśli jesteś _dobrym i skutecznym menedżerem_, to _ wymuszanie podjętej decyzji_ nigdy nie powinno być konieczne.
Zarządzanie autorytarne może być skuteczne w niektórych środowiskach, ale w przypadku pracowników umysłowych rzadko tak jest.Jeśli jesteś dumny ze swojej pracy, to bycie zarządzanym w skali mikro, unieważnianie decyzji lub ignorowanie opinii może być poważną przeszkodą dla produktywności i kreatywności.Kiedy gówno uderza w wentylator, twój kierownik powinien trzymać parasol, gdy go naprawiasz.
@MarkBooth całkowicie się z tym zgadza.Zakładam tutaj, że jest to decyzja, która została podjęta z myślą o opiniach większości zespołu - oczywiście, jeśli więcej niż tylko ta osoba jest temu przeciwna lub jeśli po wypróbowaniu jej w praktyce jego obiekcje mają sens i zmienia Twoje /myśli innych członków zespołu, to oczywiście powinieneś ponownie ocenić decyzję.
Nie jestem tego taki pewien.Biorąc pod uwagę „sugestię innego kolegi” i „znajduję wartość” w innym miejscu, założyłem, że „wprowadziliśmy” używał [Royal my] (https://en.wikipedia.org/wiki/Royal_we).Powszechną cechą autorytarnego zarządzania jest to, że dyktaty pojedynczego menedżera są okryte fałszywym lub gazowanym konsensusem.„Nie pamiętasz, że wszyscy zgodziliśmy się na to na ostatnim spotkaniu?”, „Nie, zasugerowałeś, wyjaśniłem, dlaczego to nie zadziała i powiedziałeś, że omówimy to później”.Może po prostu robię się cyniczny na starość.* 8 ')
gnasher729
2019-05-17 21:16:19 UTC
view on stackexchange narkive permalink

W ogóle nie chodzi o formatowanie kodu. Chodzi o najgorszą możliwą formę mikrozarządzania. Za każdym razem, gdy dokonywane jest zatwierdzenie, głupi bezmyślny mikro-menedżer zmienia kod w głupi sposób mikrozarządzania. A ten programista jest wkurzony. (Wygląda na to, że niektórzy tego nie zrozumieli - kiedy mówię „mikro-menedżer”, mówię o narzędziu do formatowania kodu).

Twój zysk i Twoje zespoły na tym wszystkim są nie do odróżnienia od zera. Twoja strata polega na tym, że pokłóciłeś się, zmarnowałeś czas i wkurzyłeś kogoś, kto do tej pory był przyzwoitym programistą. W najlepszym przypadku stracisz jego wsparcie i zaangażowanie. W najgorszym przypadku całkowicie stracisz cennego członka zespołu.

Po prostu wyłącz narzędzie i gotowe. Spowodował i spowoduje więcej szkód, niż jest to warte. Po prostu zdecyduj: czy chcesz pokazać, że masz największe xxxx do pomachania, czy chcesz, aby zespół był szczęśliwy i wykonał pracę?

Spójne formatowanie kodu znacznie ułatwia pracę z kodem innych osób i ułatwia porównywanie.Moim zdaniem chodzi o profesjonalizm i pracę zespołową, a nie o mikrozarządzanie.Nigdzie nie jest powiedziane, że menedżer dokonuje zmiany kodu, to programista powinien dokonać zmiany kodu przed zatwierdzeniem.
Myślę, że robisz kilka nieuzasadnionych założeń: zysk wynosi zero, a osoba, o której mowa, była przyzwoitym programistą, którego utracone zaangażowanie wynika z konieczności wydajniejszej pracy z resztą zespołu.Myślę, że też nie jest poprawne: w większości projektów efektywność wygrywa (np. Przegląd kodu wymaga mniejszego rozszyfrowania czyjegoś „kreatywnego” stylu), az dźwięków tego wynika, że ta osoba ma już problemy z pracą w zespole i jest toraczej to niż przyczyna.
Celem narzędzia do formatowania kodu jest * wyeliminowanie * całego wybierania nitek, które ma miejsce podczas przeglądów kodu.Nie ma tu żadnego zaangażowania mikro-menedżera;program formatujący kod wykonuje swoją pracę i to wszystko.
@DanielRoseman Jeśli masz recenzentów kodu, którzy szukają dziury w formatowaniu kodu, masz prawdziwy problem.I nie wiem, czy nie wyraziłem tego wystarczająco jasno - narzędziem do formatowania kodu jest mikro-menedżer.
@gnasher729 nie, to podpórka dla tych kolegów, którym nie przeszkadza dostarczanie czysto sformatowanego kodu.Jeśli on sam to zrobi, narzędzie nie zrobi żadnych zmian.Oczywiście, że nie.Jest to więc sposób na uniknięcie dyskusji, gdy ktoś inny widzi zmiany cofające całe przyjemne formatowanie i brudzenie przeglądu kodu.
Biorąc to pod uwagę, może być tak, że to narzędzie lub formatowanie, które robi, wykonuje swoją pracę w zły sposób.Ale to kolejna kwestia z posiadania takiego narzędzia w ogóle.
Nie byłbym w stanie zliczyć całkowitego czasu straconego na naszą nieudaną próbę wprowadzenia automatycznego formatowania do naszej starej bazy kodu sprzed kilku lat.Nawet teraz musimy poświęcić czas na naprawianie sporadycznych konfliktów scalania z powodu zmian dokonanych w tym czasie.
Porównywanie ** standardów formatowania ** do ** mikrozarządzania ** jest błędne na wielu poziomach.
Czy naprawdę lubisz ręcznie formatować kod?Całkowicie uzależniłem się od automatycznego formatowania, którego używamy w pracy.Jest to uciążliwe zadanie, które z przyjemnością zostawiam zautomatyzowanemu narzędziu.Jestem za stary, by zawracać sobie głowę upewnianiem się, że zawsze poprawnie formatuję każdą linię źródłową.
ivan_pozdeev
2019-05-18 17:15:57 UTC
view on stackexchange narkive permalink

Kilka miesięcy temu, za sugestią innego współpracownika, wprowadziliśmy obowiązkowe formatowanie kodu w bazie kodu

Od tego czasu kolega zawsze narzeka i wyraża sprzeciw wobec tej decyzji

Podstawowy problem nie wynika z samej decyzji, ale z faktu, że opinia tego współpracownika nie została wzięta pod uwagę przy podejmowaniu decyzji, która ma na niego duży wpływ. Czy zostało to odpowiednio przedyskutowane, z dokładną oceną wszystkich za i przeciw (dotyczy to również automatycznej części egzekwowania), czy po prostu podjęliście decyzję jednostronnie, „ponieważ osobiście mi się to podoba”? Praktyka pokazuje, że osoba z większym prawdopodobieństwem będzie bronić decyzji grupowej, jeśli czuje, że jej opinia została wysłuchana i wzięta pod uwagę, nawet jeśli ostatecznie nie wpłynęła ona na decyzję.

Uciebila
2019-05-17 16:32:15 UTC
view on stackexchange narkive permalink

Realistycznie rzecz biorąc, ludzie opuszczają zespoły. Korzystanie z takich stylerów ułatwia innej osobie podjęcie projektu w przyszłości i zrozumienie faktycznej treści, zamiast mówić w czasie, aby zrozumieć jej formatowanie.

Spróbuj pozytywnie zareagować na ich użycie. Na przykład „elementy formatujące kod to bs”, „cóż, łatwiej jest znaleźć proste błędy w kodzie, jeśli wiesz, jak powinien wyglądać” itp. Jeszcze lepiej, jeśli mogą one być bezpośrednio związane z projektem / zespołem.

Gdyby był to więcej niż jeden członek zespołu, zasugerowałbym zorganizowanie spotkania wyjaśniającego, dlaczego to narzędzie formatujące jest używane, jakie przynosi korzyści i dlaczego jest tak ważne, aby Twoi programiści go używali. Ludzie nie lubią zmian, jeśli nie rozumieją ich przyczyn.

Zgadzam się.Właściwy kod powinien wyglądać dobrze, a zły kod powinien wyglądać źle.A siła w tym tkwi w tym, że ludzki mózg, będąc maszyną do znajdowania wzorców i tworzenia znaczeń, będzie analizować wzorce kodu, które widzi w kółko, a następnie budować „sens”, gdy coś nie wygląda dobrze, zwszystko to dzieje się bez świadomego wysiłku.Ostatecznie błędy są wychwytywane lub nawet nie są zapisywane, ponieważ „zły kod wygląda źle”.Gdy zespół nie jest spójny, każdy inny członek będzie doświadczał fałszywych „ostrzeżeń” o niewłaściwym kodzie, tylko po to, by odkryć, że to tylko różnica w formatowaniu.To źle.
@CodeSeeker: dobrze powiedziane.
senox13
2019-05-17 19:02:20 UTC
view on stackexchange narkive permalink

Daleko od pełnej odpowiedzi, ale jest jeden punkt, który mnie przytłacza. Formatowanie kodu w twoich zatwierdzeniach w żaden sposób nie musi być tym samym formatowaniem kodu, które jest używane w IDE programisty, gdy pracują na lokalnej kopii repozytorium. Nie wiem, czy kiedykolwiek pracowałem nad wspólnym projektem, w którym każdy programista nie miał sformatowanego kodu tak, jak chciał. Stosowanie formatowania po zatwierdzeniu jest dość łatwe do skonfigurowania za pomocą haków git.

Całkowicie zgadzam się z tą odpowiedzią.Odpowiedzią są haczyki przed zatwierdzeniem.Inne narzędzia VC mają podobne elementy sterujące.Najbardziej podstawowym zastosowaniem jest zapewnienie spójnych zakończeń linii w mieszanych środowiskach programistycznych.Deweloper może robić, co mu się podoba, ale hak do zatwierdzania zapewnia „czyste” zatwierdzenie.
To jest dokładnie to, o czym myślałem, sposób, w jaki formatuję kod, bardzo różni się od tego, jak inni programiści z mojej grupy formatują swoje.Kiedy otwierają mój kod w swoim IDE (zwykle używamy VS Code do treści internetowych i VS Studio do komputerów stacjonarnych), pojawia się on w ich formacie.Wprawdzie nie piszemy Pythona, który wymaga rygorystycznej obsługi wcięć, ale nie ma powodu, dla którego formatowanie kodu danego dewelopera powinno mieć jakiekolwiek znaczenie dla tego, jak inni formatują swoje.
@delliottg: Tak, a użycie takiego autoformatatora może rozwiązać problem Pythona, w którym kod napisany przez kogoś, kto używa dosłownych tabulatorów do wcięć, rozpada się w edytorze z różnymi odstępami tabulacji.
I mamy dokładnie to, jeden z naszych starszych programistów lubi używać spacji dla wcięć, wolę tabulatory, ale nie przeformatowuję jego kodu, aby usunąć spacje, a on nie zmienia moich tabulatorów na spacje.(Pamiętaj, że nie używamy Pythona ani innych języków z wcięciami).Od czasu do czasu kłócimy się o to, ale dla nikogo z nas nie jest to na tyle poważna sprawa, że chcemy ją wymusić za pomocą lintera lub innego narzędzia.
Nie jestem pewien, czy osoby, które to sugerują, są faktycznie programistami pracującymi z kodem.Automatyczne formatowanie sprawia, że łączenia, numery linii i różnice stają się koszmarem.
Jared Smith
2019-05-17 19:21:52 UTC
view on stackexchange narkive permalink

Prowadzisz szczerą rozmowę o tym, co oznacza słowo „profesjonalizm”.

Twój „główny programista” zachowuje się jak nadąsane dziecko. Może posiadać umiejętności techniczne lidera, ale oczywiście brakuje mu umiejętności zawodowych lidera. Chodzi o coś więcej niż tylko pisanie kodu: umiejętności techniczne są koniecznymi , ale nie wystarczającymi warunkiem tego stanowiska. Bycie liderem oznacza, przynajmniej dla mnie, zrozumienie, że nie chodzi o ciebie . To nie oznacza, że ​​nie negocjujesz i nie popierasz siebie, oznacza to , że nie pasujesz do rzeczy, które są najlepszymi praktykami w branży nawet jeśli prywatnie myślisz, że to bzdury (patrzę na ciebie, JIRA).

Zacząłbym od stwierdzenia, że ​​musi to przezwyciężyć dyplomatycznie, a potem przejść do mówiąc to w sposób niedyplomatyczny, a następnie przejdź do PIP. Już zmarnowałeś zbyt dużo swojego cennego czasu na napad złości kogoś innego.

EDYTUJ na podstawie rozmowy w komentarzach

Jeden komentator słusznie wskazuje, że autorytet szefa technicznego może mieć zostały niesprawiedliwie osłabione, powodując niezadowolenie. Chociaż z pewnością zgadzam się, że tak może być, narzekanie na narzędzie w miejscach publicznych jest nieprofesjonalną i niedopuszczalną reakcją na sytuację . Podważaniem należy się zająć bezpośrednio i prywatnie .

Znałem kilku programistów, którzy nie mogli zrozumieć potrzeby spójnych standardów kodowania.Jeśli tego nie rozumieją, gwarantuję, że będą inne ważne rzeczy dotyczące programowania, których nie będą w stanie zrozumieć.Nie ma na to lekarstwa.
@Ed Plunkett: Ale jest różnica między konsekwentnym a dobrym.Znałem ludzi, którzy stosują idealnie spójne formatowanie kodu, co sprawia, że ich kod jest prawie nieczytelny - przynajmniej dla mnie.Może ich mózgi działają inaczej?
@jamesqf „Konsekwentny” w tym sensie, że cały zespół robi to w ten sam sposób, najlepiej w sposób (PEP3 w przypadku OP), który jest powszechny w branży i łatwo zrozumiały dla nowych członków zespołu.W moim zespole w języku C # używamy wartości domyślnych VS.Nie jest to mój ulubiony, ale bardzo przejrzysty i bardzo zbliżony do uniwersalnego - co jest o wiele lepsze niż tylko spełnianie moich prywatnych standardów estetycznych.
@jamesqf Faceci z „mózgiem działa inaczej” to ci z nieuleczalnymi problemami ze zrozumieniem, o których wspomniałem.Lubią być trudni.W branży pełnej taktownie „nieneurotypowych” ludzi, można ich spotkać.
[PEP 3] (https://www.python.org/dev/peps/pep-0003/) to _Guidelines for Handling Bug Reports_ @EdPlunkett, Myślę, że miałeś na myśli [PEP 8] (https://www.python.org/dev / peps / pep-0008 /), a [black] (https://github.com/python/black) wykracza * daleko * poza PEP 8.
@MarkBooth.Prawidłowo, to była literówka.Dzięki.Chodziło mi o to, że OP nie narzuca jakiegoś dziwnego, arbitralnego zestawu konwencji formatowania.
Po spojrzeniu na [czarny] (https://github.com/python/black) formatowanie, które wymusza *, jest * dość dziwne @EdPlunkett.Z pewnością nigdy nie widziałem, aby ktokolwiek pisał ręcznie kod, który wygląda jak format, który generuje, i obsługuję produkt, który zawiera wbudowany interpreter języka Python - więc widzę wszelkiego rodzaju dziwne i cudowne Python wygenerowane przez użytkownika.Tak się składa, że akceptuję zmiany, które wprowadza, w teorii, ale nie można oczekiwać, że każdemu spodoba się to od razu, bez szansy na przyzwyczajenie się do potencjalnych korzyści, jakie zapewnia.
@MarkBooth argument nie dotyczy zalet tego konkretnego formatu (lub jego braku), którego współpracownik OPs jest przeciwny posiadaniu standardowego formatowania, kropka.Nie jestem wielkim fanem PEP 8 pod kilkoma względami, ale cóż, nie chodzi o mnie.Argumenty o tym, który * styl formatowania jest lepszy, dotyczą paska (lubię je tak samo, jak następny uparty sod), a nie sali konferencyjnej.
Prawdopodobnie powinno to zostać przeniesione do [czatu] @JaredSmith, ale chodziło mi o to, że użycie _black_ nie jest niekontrowersyjną decyzją, widzę, co bardzo wymusza na niektórych ludziach.Z pewnością nie powinno się tego zrobić bez zaangażowania głównego dewelopera projektu.Przede wszystkim PO nigdy nie powinien był znaleźć się w takiej sytuacji.
@MarkBooth zgadza się z tobą w sprawie czatu.Nie jestem pewien (po przeczytaniu twojej odpowiedzi), że się z tobą nie zgadzam, nie mamy wystarczających informacji, aby to ocenić.Ale * zdecydowanie * pracowałem z programistami, którzy mimo groźby rozwiązania umowy nalegali na ich własne dziwne, nieczytelne formatowanie, ponieważ cytuję, „to jest to, do czego jestem przyzwyczajony i nie chcę zmieniać”.Jeśli deweloper ma uzasadnione zastrzeżenia, jest sposób, aby je zrobić.Ale po odczytaniu tonu pytania wydaje mi się, że bardziej przypomina to syczącą sprawę niż dokładnie przemyślaną.
Podejrzewam, że „syczenie” nastąpiło dopiero po tym, jak główny deweloper już nieuzasadniony podważał swoją władzę.Pamiętaj, że słyszymy to tylko z punktu widzenia PO, więc najlepsze, co możemy zrobić, to czytać między wierszami.Teraz chodzi o kontrolę szkód, a to oznacza słuchanie, a nie dyktowanie im, czym jest „profesjonalizm”, ani mówienie o działaniach dyscyplinarnych, tak jak wydaje się to robić w tej odpowiedzi.Mówiąc o tym, możesz chcieć zdefiniować, co masz na myśli, mówiąc „przejdź do PIP”.Przypuszczam, że masz na myśli „Plan Doskonalenia Zawodowego”, ale nie mam pewności.
@MarkBooth tak, plan poprawy wydajności.I nie, teraz zdaję sobie sprawę, że * nie * zgadzam się z tobą: * nawet jeśli * autorytet został nieuzasadniony podważony (i masz rację, może tak być), wołasz o tym * bezpośrednio * i * prywatnie *.Nie robisz tego, narzekając na to narzędzie publicznie.Wzywam shenanigans.
@EdPlunkett Włączając sekcję PEP 8 (zakładam, że miałaś na myśli 8), która mówi: „Głupia konsekwencja to Hobgoblin małych umysłów”?
@immibis Dziękuję.Ten komentarz tak doskonale oddaje cały światopogląd.
Joshua
2019-05-18 02:29:00 UTC
view on stackexchange narkive permalink

Widzę dużą różnicę między naleganiem na dobrze sformatowany kod a narzuceniem automatycznego formatowania na checkin.

W mojej pracy mamy pewnego rodzaju polecenie formatowania kodu, które jest ładowane do IDE , ale kiedy wszystko idzie naprawdę źle, naprawdę możemy coś z tym zrobić, ponieważ nic nie będzie próbowało zastosować go ponownie w czasie dokonywania zmian .

Jestem gotów uwierzyć, że masz prawdziwy problem głównego programisty, który celowo robi rzeczy tak, aby były trudniejsze do odebrania, ale jest całkowicie możliwe, że to, co naprawdę się tutaj dzieje, to autoformatter psuje ręcznie formatowane bloki, w których język został zagięty więc potrzebuje innego formatu pasującego do struktury, którą faktycznie ma, a nie tego, co uważa parser.

Tych przypadków nie można odróżnić od postu. W zależności od tego, co się dzieje, możesz lub nie być w stanie porozmawiać z innymi programistami i dowiedzieć się, co to jest. Uważaj jednak na postawę „Uważam, że jest lepiej, bo tak robi szef”; nie zostanie z tobą rozmowa, ale widziałem już, jak to spada.

Właściwie jest możliwe, że każdy ma z tym problem i wszyscy pozwalają temu facetowi być rzecznikiem. Może uda ci się się tego dowiedzieć.

Ale robiąc swoją należytą staranność, jeśli okaże się, że jest na wycieczce władzy, czas się go pozbyć.

A jeśli stwierdzisz, że to właśnie ty jesteś na fali potęgowej, możesz pomyśleć o tym, jak wpłynie to na wydajność Twojego zespołu w przyszłości.
scatter
2019-05-17 17:14:07 UTC
view on stackexchange narkive permalink

Ostatecznie, jak powiedziały inne odpowiedzi, jako menedżer masz prawo po prostu narzucić styl kodowania, a jeśli komuś się to nie spodoba, może zrezygnować. Jednak prawdopodobnie nie jest to dobre dla morale ani zaangażowania, a pracownik, który niechętnie narzuca swój okrągły kod w stylu kwadratu, prawdopodobnie nie jest szczęśliwy ani produktywny.

W tym celu najlepszy sposób działania prawdopodobnie przekonałoby ich, że posiadanie spójnego stylu w bazie kodu jest korzystne. Niektóre odpowiedzi przedstawiły już pewne punkty, ale są artykuły, a właściwie całe książki, które przemawiają za. Mają rację, że to jak kolory - każdy ma swoje ulubione, ale gdyby każdy programista UI pracujący nad projektem po prostu wybrał swój ulubiony kolor do projektowania, produkt końcowy wcale nie wyglądałby dobrze.

Kilka dobrych artykułów, które właśnie znalazłem dzięki szybkiemu wyszukiwaniu:

Dancrumb
2019-05-18 19:01:12 UTC
view on stackexchange narkive permalink

Zakładam, że Twoje opinie o komentarzach głównego programisty są dokładne.

To nie są komentarze kompetentnego głównego programisty. Mówię to jako doświadczony programista i menedżer inżynierów oprogramowania.

Informacje zwrotne są niekonstruktywne i bardzo niedokładne. Główny programista, który nie rozumie wartości standardów formatowania, jest głównym programistą, który nie rozumie dynamiki inżynierii zespołowej.

Jest całkiem możliwe, że mają uzasadnione obawy i mógłbym zacząć od tę perspektywę. Jesteś ich menadżerem; pomóż im dobrze wykonywać swoją pracę.

Po pierwsze, prywatnie zadzwoń do nich, przekazując Ci ich kiepskie opinie. Słabo wykonują swoją pracę, jeśli tylko kvetchują.

Następnie pokaż, że jesteś otwarty na praktyczne informacje zwrotne na temat tego, jak ulepszyć implementację standardów kodowania, jeśli Twój programista je posiada. Jeśli potrzebują czasu, aby dowiedzieć się, jak najlepiej to wyrazić, daj im to.

Jeśli nie mają nic konkretnego, powiedz im, żeby wzięli udział w programie i przestali narzekać. To nie tylko bezproduktywne. Jest to szkodliwe dla zespołu.

Powinieneś także zacząć zwracać uwagę na ich ogólne wyniki jako lidera zespołu. Czy faktycznie zapewniają przywództwo pozostałym członkom zespołu, czy po prostu są osobami, które są w pobliżu najdłużej? Takie osoby mogą naprawdę osłabić produktywność zespołu, jeśli działają po prostu jako strażnicy wzrostu (co teraz robi ta osoba).

Sugerowałbym, że najbardziej prawdopodobnym wyjaśnieniem jest menadżer podczas podróży władzy, przedstawiający to, co mówi lider zespołu, w jak najbardziej negatywnym świetle.Na przykład wydaje mi się, że jest bardzo mało prawdopodobne, aby jakikolwiek programista powiedział, że „formatowanie kodu jest nonsensem”, ponieważ tak naprawdę nie masz innego wyboru, jak tylko go sformatować, ale ktoś mówi, że „narzędzia do formatowania kodu są bezsensowne”, w to wierzę.
Z pewnością jest to możliwe, ale na pewno słyszałem, jak starsi inżynierowie mówili najbardziej głupie rzeczy o „ograniczeniu ich wolności”, podczas gdy tak naprawdę mają na myśli: „Nie mogę zawracać sobie głowy rozważaniem innych osób, które będą patrzeć na ten kod”
bremen_matt
2019-05-17 23:02:40 UTC
view on stackexchange narkive permalink

Z pragmatycznego punktu widzenia uwielbiam formatowanie kodu po prostu dlatego, że znacznie ułatwia ono porównywanie kodu. Ułatwi to również wypychanie, ponieważ jeśli wszyscy używają tego samego programu formatującego kod, to w zasadzie dodanie głupiej, nieistotnej zmiany do pliku nie spowoduje, że git pomyśli, że kod się zmienił.

Osobiście nie jestem szalony, jeśli chodzi o wygląd kodu, ale korzyści opisane powyżej bardziej niż pomagają mi to przeoczyć.

-1 To nie odpowiada na pytanie.Tak, formatowanie kodu jest fajne, ale OP już to wie.
Peter
2019-05-20 03:16:40 UTC
view on stackexchange narkive permalink

Wiele innych odpowiedzi dotyczy tego, czy formatowanie kodu jest tego warte, czy nie. To jest całkowicie nieistotne dla tego pytania.

Tu chodzi o komunikację, a nie o przekonanie go, że standardowe formatowanie kodu jest świetne. Zrób krok do tyłu. Musisz przekazać:

  • Co próbujesz osiągnąć. *
  • Jak planujesz mierzyć sukces.

Ta dodatkowa informacja pozwoli im spojrzeć na sprawy z Twojego punktu widzenia, co często wystarcza, aby ich uspokoić. Druga część (mierzenie sukcesu) jest konieczna, aby wykazać, że rzeczywiście włożyłeś w to przemyślenie i ułatwiasz im zaufanie. Pozwala im również znaleźć alternatywy lub modyfikacje zasad, które spełniają zarówno Twoje żądania, jak i ich żądania.

Jeśli to się nie powiedzie, istnieją 2 główne sposoby radzenia sobie z pracownikami, którzy nie zgadzają się ze zmianą polityki: p>

  • Posłuchaj ich. Są opłacanymi profesjonalistami i ich obawy mogą być ważniejsze niż myślisz.
  • Zamknij ich. „To jest decyzja. Wiem, że ci się to nie podoba i słyszałem Twoje obawy, ale teraz chcę, abyś to zaakceptował i pracował z zespołem”.

* Nie chodzi o listę korzyści, chodzi o Twoją motywację do wprowadzenia zmiany. Może chcesz wzmocnić zespół i dlatego zdecydowałeś, że zespół zdecyduje o standardach kodu i formatowaniu. Może właśnie wdrożyłeś sugestię z góry. Może planujesz wiele zmian w zakresie automatyzacji i / lub analizy, które przyniosą korzyści ze standardowego formatowania. Może chcesz użyć standardowego formatowania, aby lepiej sprzedać swój zespół przełożonym. Może wypchnąłeś standardowe formatowanie tylko dlatego, że je lubisz.

Flater
2019-05-17 18:35:42 UTC
view on stackexchange narkive permalink

formatowanie kodu to kompletna bzdura

Można to łatwo obalić, biorąc przykładowy kod (nieznany deweloperowi), usuwając wszystkie znaki nowej linii, tabulatory i redukując wiele pojedyncze spacje i poproszenie pracownika, aby powiedział, co robi kod.

To jest jak kolory, niektórzy ludzie lubią czerwony, a inny niebieski to wszystko.

Tak. Tak jest w przypadku prawie każdego sporu dotyczącego programowania. Tabulatory a spacje, nawiasy w stylu C lub egipskie nawiasy… Ale odpowiedź jest zawsze taka sama: niektórzy lubią jeździć po lewej stronie, inni lubią jeździć po prawej stronie. Jedno i drugie jest w porządku, ale pozwolenie na oba jednocześnie prowadzi do szaleństwa.

Lub, jeśli naprawdę chcesz użyć jego analogii przeciwko niemu: ale użycie niebieskiego i czerwonego razem daje fiolet, co oznacza, że ​​ nikt nie dostaje tego, czego chce.

Podjęto decyzję wykonawczą o wyborze tego formatu. Twój pracownik nie ma uprawnień do unieważnienia tej dyskusji. Koniec opowieści. Nie poddawałbym się dalej tej linii pytań.
Zawsze jestem otwarty na konstruktywną informację zwrotną, ale argument twojego pracownika jest argumentem twardości, nie jest konstruktywny. Nie pozwól im zmienić tego w rywalizację o bycie najbardziej upartym. Nawet jeśli wygrasz, sygnalizujesz swoim pracownikom, że upór jest dopuszczalnym sposobem wyrażania sprzeciwu.

Nie oznacza to, że nie możesz mu pomóc, jeśli jest to po prostu kwestia braku doświadczenia. Może znajdziesz zautomatyzowany program formatujący, który będzie mógł wpisać swój własny format i przekonwertować go.

Powiedziałem ludziom, którym się udało, że nie obchodzi mnie czytelność ich kodu, zanim go sprawdzą. Nie oczekuję, że w każdej sekundzie będą w pełni przestrzegać wskazówek dotyczących stylu. Dopóki kod zostanie wyczyszczony przed włączeniem do gałęzi, jest to dopuszczalne. Często zaczynam od szybkiego i brudnego kodu i oczyszczam go dopiero, gdy zacznę działać. Niektórzy ludzie pracują w ten sposób i to jest w porządku, o ile na końcu nie pomijają wymaganego czyszczenia.

zmniejsza to moją wolność

Nikt nie może robić, co chce. Konieczność płacenia pracownikom również ogranicza swobodę firmy.

Wysiłek potrzebny do sformatowania kodu od samego początku zwróci dywidendy, gdy ktoś inny będzie musiał przeczytać jego kod.

Biorąc pod uwagę uwagi tego pracownika, podejrzewam, że prawdopodobnie narzekał na formatowanie kodu lub konwencje nazewnictwa innych ludzi. Zwróć uwagę, że inni poczują to samo, jeśli chodzi o jego formatowanie i nazywanie. Jednolitość oznacza, że ​​każdy może czytać kod każdego, niezależnie od tego, czy jest to osobiste preferencje każdego.

sprawia, że ​​czytanie kodu jest bardziej skomplikowane bez wartości dodanej

To trudniej mu teraz czytać, ponieważ nie jest do tego przyzwyczajony. Im bardziej opiera się zmianie, tym dłużej będzie z nią walczył. Decyzja została podjęta, to się dzieje, koniec historii.

Skoncentruję się na tym, że pracownik został poinformowany o nowym formacie i oczekuje się, że będzie go teraz przestrzegać. Jeśli nie zastosują się (lub nie włożą prawdziwego wysiłku), wszelkie opóźnienia spowodowane odrzuceniem ich żądań ściągnięcia spadają na ich barki.


Żądania scalenia kodu muszą być sformatowane za pomocą tego narzędzia, w przeciwnym razie nie można ich dodać do oprogramowania.

Mówiąc „nie można”, masz na myśli, że jest to niedozwolone lub niemożliwe (np. recenzent zawsze odrzucaj prośbę)?

Jeśli to drugie, tego potrzebujesz. Jeśli programista nie przestrzega reguł formatowania, jego żądania nie są akceptowane, a wszelkie opóźnienia wynikające z tego są jego odpowiedzialnością, co skutkuje złą oceną wydajności.

Jeśli to pierwsze, to Ty ' naprawdę polegać na tym, że każdy świadomie będzie uczestniczył w systemie, który działa tylko wtedy, gdy wszyscy to robią. Obecnie masz do czynienia z kimś, kto się trzyma. Możliwe, że się powstrzymuje, ponieważ wie, że nie egzekwujesz tego, a tylko prosisz.

Więc ślepo wierzysz w to, co powiedział ci OP.Wyraźnie zawodzi jako menedżer i chce tutaj wsparcia, więc nie wierzę, że którykolwiek z jego cytatów jest dokładny.
@gnasher729: To nie jest kwestia wiary.SE nie ma formatu, który pozwala kontrahentowi opowiedzieć swoją stronę, a następnie pozwala nam na arbitraż między dwiema przeciwnymi stronami.Format pytań i odpowiedzi nieodłącznie wiąże nas z treścią zadanego pytania.Mogę odpowiedzieć tylko na zadane pytanie, jego zastosowanie w prawdziwym życiu jest całkowicie zależne od tego, jak bardzo samo pytanie jest ugruntowane w prawdziwym życiu.Chociaż jest to powszechnie oczekiwane, nie ma prawdziwego zabezpieczenia przed fikcyjnymi lub fałszywie przedstawionymi sytuacjami.
@gnasher729: Po drugie, za pomocą jakiej miary oceniasz OP jako „nieudacznika jako menedżer”?Nie są pewni, jak podejść do pracownika, który, zgodnie z doświadczeniem OP, opiera się konwencji zespołowej bez żadnego innego powodu niż niechęć do adaptacji.W jaki sposób próba rozwiązania problemu i zdobycie dodatkowego wglądu jest równoznaczna z porażką jako menedżer?Czy przechodzisz do wszystkich pytań opublikowanych w SO / SE i zwracasz uwagę na niekompetencję każdego PO, ponieważ nie znają odpowiedzi na swoje pytanie?
Stilez
2019-05-17 19:33:56 UTC
view on stackexchange narkive permalink

Jesteś menadżerem, więc spróbujmy zarządzać nim (i tym), a nie tylko go oszukiwać lub postrzegać jako problem:

„John , moim obowiązkiem jest uczynić to tak prostym, jak to tylko możliwe, dla wszystkich i dla przyszłych pracowników, a nie tylko dla niektórych dzisiejszych pracowników. ”

„ Gdy większość programistów przegląda kod, jest to szybsze, jeśli mogą pewne rzeczy za pewnik, takie jak sposób wykonania kodu i sposób ujednolicenia niektórych rzeczy. Jeśli kiedykolwiek będzie potrzeba, aby ktoś przeanalizował kod [Zewnętrzny audyt kodu? Odpowiedzialność? Należyta staranność?] silny>, lepiej, jeśli jest ustandaryzowany. Masz rację, że niektórzy tacy jak niebieski, a inni tacy jak czerwony, a poza pracą, oboje możemy kodować w dowolny sposób. Ale pisząc kod, który zespół ma do utrzymania, a przyszli inżynierowie muszą szybko i dokładnie to zrozumieć, wierzę, że standaryzacja pomoże, a ja przewodzę zespołowi - nie ty, nie Bob, nie Alice, więc muszę wykonywać tego rodzaju telefony, jeśli czuję potrzeba - a ja tak. ”

„ Kiedy w przyszłości zaczniesz zarządzać takimi projektami, możesz wykonać telefon, który Ci się podoba i oczekiwać, że inni podążą za Twoimi wskazówkami. Ale mam nadzieję, że kiedy to zrobisz - i jesteś dobry, więc prawdopodobnie [komplement nigdy nie zaszkodzi, jeśli to prawda, jeśli nie pominiesz] - że ponownie się rozważysz i zobaczysz korzyści, jakie daje, nawet jeśli narzuca dyscyplinę, w której nie widzisz żadnego sensu, w tej chwili. ”

„ Wierzę, że zaoszczędzi to niewielką ilość czasu w codziennej pracy, kiedy kod jest ponownie tworzony. zmniejszy liczbę błędów i uważam, że jest to profesjonalne. Chciałbym, żebyś to uszanował, nawet jeśli się z tym nie zgadzasz ”.

Należy pamiętać, że główny programista prawdopodobnie wie lepiej niż menedżer, jak skutecznie tworzyć kod.
MattR
2019-05-17 21:38:35 UTC
view on stackexchange narkive permalink

Białe znaki są w rzeczywistości częścią składni python . Czytelność jest już zaprojektowana w języku. W rzeczywistości python ma własne zalecenia dotyczące formatowania kodu. Sprawdzone metody, konwencje nazewnictwa itp. Nazywa się to PEP (dokładniej PEP8). Zacznij tam! Znajomość PEP to coś, co mogą dodać do swojego CV!

Jak poradzisz sobie w takiej sytuacji?

Myślę, że czterech innych programistów jest po prawej po stronie tego argumentu i możesz się tutaj mylić. Szczerze przyjmij opinie swoich pracowników i weź je sobie do serca. Postaw się na ich miejscu. Jeśli wypłata opiera się na wynikach, a to narzędzie je zmniejsza, zasadniczo bierzesz od nich pieniądze .

Myślę, że następnym dobrym krokiem jest podjęcie decyzji, czy nadal używać tego narzędzia. Jeśli uważasz, że jest to korzystne, wyjaśnij dlaczego . Na przykład, jeśli użytkownik końcowy / klient daje lepsze recenzje lub przyszłe projekty, ponieważ kod jest piękny - powiedz to swoim pracownikom! To oznacza więcej pieniędzy w kieszeni!

Pamiętaj, że Twoje wskaźniki KPI dotyczące zapewniania jakości mogą nie odpowiadać opisowi stanowiska członków Twojego zespołu. Spraw, aby Twój zespół miał poparcie dla swoich projektów. Zrób to coś, z czego są dumni. Kiedy silne poczucie własności jest normą w miejscu pracy - gwarancja jakości jest czymś naturalnym.

Tylko jeden programista w zespole sprzeciwia się spójnemu formatowaniu, a nie czterech.Wspomniane narzędzie OP [czarne, wymusza PEP8] (https://www.mattlayman.com/blog/2018/python-code-black/).Nierealistyczne jest twierdzenie, że spójne formatowanie kodu zmniejsza czyjąkolwiek wydajność.Wręcz przeciwnie: wartość spójnych nawyków dotyczących kodowania (* łącznie z * formatowaniem) polega na łatwości utrzymania.Wydajność programisty nie jest funkcją tego, ile instrukcji if może wpisać w danej godzinie.
@EdPlunkett To zabawne, że mówisz „wymusza PEP8”, ponieważ jedna sekcja PEP8 mówi, że nie powinno się tego egzekwować.Dlatego egzekwowanie PEP8 nie jest w rzeczywistości zgodne z PEP8.
@immibis Jesteś darem, przyjacielu.Absolutny prezent.Nigdy nie wiedziałem, że suwerenne obywatelstwo zostało przeniesione do Pythona.
@EdPlunkett nominuję to za najbardziej bezsensowny komentarz miesiąca.
Na samym szczycie PEP8: _Głupia konsekwencja to Hobgoblin Little Minds_!
Dragan Juric
2019-05-19 18:38:18 UTC
view on stackexchange narkive permalink

Warto rozważyć dwie dodatkowe kwestie.

  1. Pytasz o czarno-białą odpowiedź na problem w skali szarości. Twoje zasady formatowania kodu mogą być rozsądne, mogą być złagodzone, Nitpicking. Widziałem różne zasady. Przede wszystkim więc sprawdź, czy wymagane reguły formatu kodu są rozsądne, czy nie.
  2. Czy formatowanie kodu i wszystkie standardowe reguły kodu zostały właśnie narzucone z góry, czy też zostały uzgodnione przez programistów z zespołu - tych, którzy faktycznie piszą kod i czytają / używają go od innych? Dobrą praktyką może być ustalenie zestawu standardowych reguł kodowania przez komisję - tylko raz, a następnie te zasady są egzekwowane. Jeśli większość deweloperów się na to zgodzi, to masz duże szanse, że te zasady będą rozsądne, a jeśli ktoś narzeknie, to jest to problem. Jeśli reguły zostały po prostu narzucone dekretem jednej osoby ... możesz mieć tam problem.
  3. Alternatywą jest znalezienie narzędzia do inspekcji / formatowania kodu, które jest mniej więcej standardem branżowym dla używanego języka. Na przykład dla C # używam Resharper. Wtedy decyzja będzie bezstronna, a formatowanie może być wykonane mniej więcej automatycznie w edytorze, w trakcie pisania kodu. Jeśli Resharper jest szczęśliwy, jestem szczęśliwy. Znajdź coś takiego dla Pythona.

Moja osobista zasada, kiedy przewodzę zespołowi, to naleganie na ścisłe zasady tylko wtedy, gdy wygląda czyjś kod naprawdę brzydkie ... a gdyby tak się stało, moglibyśmy spojrzeć na głębszy problem niż tylko formatowanie kodu. Problem, który zaczyna się od HR i zatrudniania niewłaściwej osoby, w przeciwnym razie, jeśli kod wygląda mniej lub bardziej przejrzyście i uporządkowany, a jego architektura / projekt jest dobry, szukanie dziury w formatowaniu często sprawia więcej kłopotów niż jest to warte.

Mateusz Stefek
2019-07-04 10:23:49 UTC
view on stackexchange narkive permalink

Spójność to słaby argument. Dla osoby, która nie zgadza się z określoną regułą formatowania, może się wydawać, że jest problem z mikrozarządzaniem lub żądnym władzy architektem. Formatowanie prawie nigdy nie ma znaczenia - „jest jak kolory, niektórzy lubią czerwony, a inny niebieski”.

Prawdziwą zaletą reguł automatycznego formatowania jest to, że programiści nie tracą czasu na omawianie rzeczy, które nie mają znaczenia. Zbyt dużo czasu poświęca się na przeglądanie kodu w komentarzach o wcięciach. Znacznie więcej mocy mózgowej powinno być skoncentrowane na rzeczywistych problemach z kodem.

Przedstaw deweloperowi termin Bikeshedding . Wyraźnie zaznacz, że uważasz jego komentarze za wielki wkład w projekt szopy rowerowej. Marnuje czas innym. Jest złym graczem zespołowym. Zostanie użyty przeciwko niemu podczas oceny.

Koenigsberg
2019-10-22 20:56:45 UTC
view on stackexchange narkive permalink

Oprócz innych odpowiedzi, które już całkiem nieźle omawiały temat The Talk - metodologia wprowadzania formatowania do procesu, czy Bobowi się to podoba, czy nie:

Przeprowadź przegląd kodu za pomocą zasada czterech oczu w każdym żądaniu scalenia. Twój master powinien być modyfikowany tylko za pomocą zaakceptowanej prośby o scalenie, w żaden inny sposób. Wszystkie prośby o scalenie muszą zostać poddane kontroli jakości, tj. inny członek zespołu musi przejrzeć kod. Wymuś formatowanie i pozwól odrzucać MR Boba z powodu nieprawidłowego formatowania kodu.

Jeśli Bob odmówi spełnienia, jego prośby o scalenie utkną w zawieszeniu. Na pytanie „dlaczego funkcja XY nie została wykonana, mimo że termin już dawno minął?”, Bob może odpowiedzieć: „Robiono to już od jakiegoś czasu, ale został odrzucony przez kolegę Y”. Możesz argumentować, że to się nie robi. Do tego służy kontrola jakości. Współpracownicy muszą odrzucić takie prośby i zmienić przypisanie Boba, wtedy jego zadaniem jest sobie z tym poradzić.

Zachowanie w ten sposób ma różne stopnie agresji, więc jeśli chcesz, aby ton był jak najbardziej przyjazny, uważaj, jak to wdrażasz. Niemniej jednak - i tak powinieneś dokonać przeglądu kodu.

Prywatnie - rzekome stwierdzenia Boba dotyczące przydatności formatowania skłaniają mnie do myślenia, że ​​prawdopodobnie nie nadają się do roli głównej lub po prostu brakuje im określonego wykształcenia w niektórych obszarach . Być może znają kod źródłowy, ale z powodu braku najlepszych praktyk pomogli przekształcić go w gigantyczny bałagan i tylko oni znają ścieżkę przez chaos. Takie rzeczy są niebezpieczne, ponieważ możesz stać się bardzo zależny od jednej osoby, ponieważ Twój kod źródłowy staje się coraz trudniejszy do utrzymania.

heapOverflow
2019-05-17 18:01:07 UTC
view on stackexchange narkive permalink

Myślę, że w tym przypadku możliwe byłoby dodanie haka git, który zmienia format kodu na pożądany przez zespół przy zatwierdzaniu, i inny (używany tylko przez nich), który zmienia format kodu na format jeden pożądany przez członka zespołu podczas aktualizacji.

Jeśli członek zespołu tak bardzo to odczuwa, może to być również dobra okazja, aby dowiedzieć się więcej o programie formatującym kod i narzędziach git, a także o całej wiedzy, która może się przydać później.

Wielkie nie.Jest podatny na niespójności i nie ma możliwości, aby cały zespół musiał dostosować się do bezpodstawnych narzekań jednego singla.
Podoba mi się twój pomysł, ale jest po prostu zbyt wiele rzeczy, których narzędzia nie mogą naprawić (np. Cokolwiek w komentarzach, jak przykładowy kod w adnotacjach autodoc, każda nowsza składnia, dla której nie została poprawiona itp.).Nie warto * stale * dwukrotnie sprawdzać kodu przestępcy i przechodzić przez wiele niepowodzeń weryfikacji kodu przy każdym żądaniu ściągnięcia.
Nie wiem, jak istotne jest dla Pythona, ale kiedyś mieliśmy narzędzie (bardziej ograniczone do porównywania / scalania), które było świadome składni języka i robiło różnice w składni.
Brzmi to absurdalnie podatnie na błędy, a typ kolegi wydaje mi się kimś, kto sprzeciwiałby się każdemu kodowaniu lub autokorekty (tj. Nie jest konsekwentny we własnym stylu).To nie jest wykonalne.
-1 To jest Workplace.SE, a nie StackOverflow.Powinieneś przynajmniej opisać, w jaki sposób technologia rozwiąże problem „ludzi”.
Sascha
2019-05-18 15:03:15 UTC
view on stackexchange narkive permalink

Istnieje wiele odpowiedzi, które koncentrują się na dobrych argumentach technicznych. Podsumowując: zespół podjął rozsądną decyzję, jak postępować, a jedna osoba odrzuca decyzję zespołu i wskazówki kierownika.

Rozmowa, którą chciałbym mieć, jest bardziej podobna do: czy właśnie zadzwoniłeś moje instrukcje i decyzja zespołu "bzdury"? Czy naprawdę narzekałeś, że otrzymywanie wynagrodzenia za pracę „ogranicza Twoją wolność”? Zdecydowanie sugeruję, abyś teraz sprawdził ładnie sformatowany kod, a ja umówię się na spotkanie z działem HR w celu omówienia szacunku dla Twojego pracodawcy, menedżera i zespołu.

Więc mówisz, że decyzja jest właściwą decyzją, ponieważ pochodzi z góry i szacunek powinien tam być?Powiedziałbym, że nie, dokładnie nie tak powinny działać firmy technologiczne, kodery powinny być przekonane o tym, co robią i jak, a nie zmuszane.To byłoby bardzo nieproduktywne, a nawet niebezpieczne.
@Mayou36 Nie, ja mówię: nazywanie narzędzi zespołowych „bzdurą” jest poza zasięgiem profesjonalnej komunikacji, zwłaszcza jeśli nie masz solidnych argumentów.A stwierdzenie, że wytyczne w pracy „ograniczają twoją wolność” to trochę dziwne rozumienie umowy o pracę.Szczególnie w przypadku czegoś, co faktycznie jest tematem zespołowym.
@Mayou36 może opublikujesz komentarz do złej odpowiedzi.Ta odpowiedź dotyczy politycznej / interpersonalnej strony problemu i nie zawiera żadnego osądu w kwestii technicznej: jest uważana za „rozsądną”, ponieważ została uzgodniona tylko przez kierownictwo i zespół.
Nie, Mayou ma rację.Zatrudniając programistę (lub kogokolwiek innego), każdy pracownik otrzymuje darmowy mózg.Jeśli będziesz ich dręczyć - a ta odpowiedź byłaby zastraszaniem, nawet jeśli niektórzy uważają ją za słuszną / uzasadnioną - szkodzisz morale i produktywności.Inni będą wiedzieć, że zareagujesz w ten sposób i między tobą a zespołem powstanie przepaść, a rzeczy, które musisz usłyszeć, nie zostaną ci powiedziane, ze szkodą zarówno dla ciebie, jak i dla zespołu.Źli menedżerowie wymuszają wcześnie.Dobrzy menedżerowie próbują współpracować i zachowują twarde linie, kiedy są naprawdę potrzebni z powodu pilności lub z powodu innych ...
... podejścia zawiodły.Ale pomimo rozmów w PO, nie widzę w pytaniu nic, co sugerowałoby, że ten punkt został osiągnięty, ponieważ nie opisano żadnej próby rzeczywistego i odpowiedniego zarządzania sytuacją.OP pyta, jak sobie z tym teraz poradzić.Tak więc reakcja na zastraszanie jest przesadą i rozmawiałbym z każdym menedżerem, którego widziałem, niszcząc jego zespół, gdybym zobaczył to bez naprawdę dobrego powodu - który jeszcze nie istnieje: i wykorzystując tę sytuację jako sposób napoprawić swoje umiejętności zarządzania ludźmi - i sprawdzić, czy nie czają się jakieś problemy kulturowe.
@Stilez: Informowanie pracownika, że w pewnym momencie niesubordynacja i odrzucenie pracy zespołowej może mieć konsekwencje zawodowe, nie jest zastraszaniem.Nazywanie „bzdur” za to, co mówią twoi współpracownicy.
„W pewnym momencie”… I w ten sposób.To bardziej sposób niż informacja sprawia, że postrzegam to jako zastraszanie.Te same informacje można podać na wiele sposobów, a problem można rozwiązać na wiele sposobów.Eskalacja do domniemanego zagrożenia po prostu nie jest potrzebna ani pomocna dla PO, jak opisano, a odpowiedź nie wydaje się odpowiednią oceną tego, gdzie jest ten punkt, i nie wykazuje zrozumienia zarządzania - umiejętności miękkich i budowania zespołu.Możesz wygrać kłótnię siłą, ale nadal możesz stracić swój zespół, dobrą wolę, współpracę i (na dłuższą metę) wojnę.Ta odpowiedź zmierza w tym kierunku.
Jeśli chodzi o „zespół podjął rozsądną decyzję, jak postąpić”, mam wrażenie, że to nie zespół jako całość podjął tę decyzję, ale raczej menedżer, który podjął decyzję i chce naszej rady, jak to zrobićnarzucić to swojemu zespołowi.Stąd problem.
@Paolo,, o to mi chodzi, gdyby zespół _zespół_ i kierownictwo zgodziły się na to, stanowczo odradzałbym używanie słowa „Jestem twoim przełożonym” jako argumentu, aby skłonić go do pójścia za nim.To jest jak „ultima ratio”, które powinno zapobiegać uszkodzeniom, a nie jako koncepcja biznesowa, a przede wszystkim nie dla programistów.Weź go na swoją stronę, nie każ mu nic robić.
@Stilez: nie, zastraszanie wyglądałoby następująco: Przed drużyną powiedz „Idź, spakuj swoje rzeczy i zrezygnuj. Nie mamy miejsca na pieprzenie specjalnych kucyków”.
Nie. * Możesz * pomyśleć, że tak nie jest.Rób takie rzeczy rutynowo, a Twoi pracownicy opowiedzą inną historię, kiedy wrócą z pracy do domu.I to jest historia, która się liczy, nie możesz dokonać redefinicji GWB, że waterboarding tak naprawdę nie jest torturą, ani stwarzanie tego rodzaju gróźb (które są tym, czym są), ponieważ twoja podstawowa odpowiedź nie jest tak naprawdę zastraszaniem.Będą postrzegać to jako takie, a Twoja drużyna będzie przegrana.Nie stosuj się do nękania, nawet jeśli nie uważasz, że to właściwe słowo.
@Stilez:, zapewniam cię, że reszta zespołu zazwyczaj ceni, jeśli podejmiesz działania dyscyplinarne lub usuniesz łobuzów (i tak, myślenie, że nazwanie opinii zawodowej innych ludzi „bzdurą” nie jest zastraszaniem, ale OTOH rozważastrzały ostrzegawcze za zastraszanie).
Pytanie brzmi, kto jest tyranem w tej sytuacji?Główny deweloper, którego autorytet w projekcie został właśnie podważony i (nieco) zrozumiale zareagował negatywnie na wiadomości, czy też menedżer, który teraz szuka sposobów, aby ich deweloper dostosował się do ich oświadczeń?Tylko dostęp do jednej strony historii sprawia, że trudno to nazwać.Z tego, co wiemy, komentarze cytowane przez PO mogły zostać wygłoszone przez głównego dewelopera nieoficjalnie, prywatnie, w barze po pracy.Kontekst jest wszystkim, a my po prostu nie wiemy.
Mark: Albo wcale.Ponieważ większość cytatów wygląda jak niewielkie zmiany w bardzo rozsądnych stwierdzeniach.


To pytanie i odpowiedź zostało automatycznie przetłumaczone z języka angielskiego.Oryginalna treść jest dostępna na stackexchange, za co dziękujemy za licencję cc by-sa 4.0, w ramach której jest rozpowszechniana.
Loading...