it-swarm-eu.dev

Řešení s vulgárností ve zdrojovém kódu

Jak se lidé vypořádávají s vulgárností ve zdrojovém kódu a komentářích VCS. Ponechat nebo smazat?

A co soft-expletives jako WTF nebo Arrgggh?

Je neprofesionální, urážlivé nebo něco, co má být pokrčeno rameny?

34
sal

Mělo by se to jemně odrazovat

.. nemůžete vědět, kdo uvidí zdrojový kód po celou dobu jeho životnosti.

Přestože je celá část práce frustrována obzvláště složitým nebo starým kusem kódu a chce o tom znít, vkládání do zdrojového kódu neúplné/pronikavé/umění ASCII/špatné vtipy/útočné poznámky je neprofesionální a špatný nápad v mé zkušenosti. Někdy inženýr, který píše komentáře, nevnímá případných účinků, které by jeho komentáře mohly mít - zde jsou jen některé z problémů, které vidím:

  • Vysoký počet expletivů v kódu vydaném veřejnosti jako open-source/vzorový kód.
  • Vtipy ve špatném vkusu způsobují hluboký útok na některé členy týmu, což vede k průmyslovému tribunálu.
  • Zahodit poznámky, které byly ve skutečnosti rasistické/sexistické/gender-ist způsobující lidi být vyhozen.

I když my všichni potřebujeme nějaké odbytiště pro frustraci/zábavu/japonsko, zdrojový kód není místo, kde by se to dalo udělat, IMO. Do smlouvy, stránek nápovědy, plánů nebo jiných odborných dokumentů byste nevkládali přílišné/vtipné/urážlivé komentáře, i když tyto dokumenty lze číst ještě méně často než zdrojový kód.

Pokud se vedoucí týmů o tom dostanou těžce, bude to naštvané, takže řeknu „jemně odradit“ pomocí tichého Wordu s problémovými inženýry a poskytl vhodné ventilační mechanismy, aby mohl Steam, ať už je to Facebook, okamžité zasílání zpráv , vzduchový hokej nebo punč.

Není žádnou obranou tvrdit, že se kompilují komentáře - co JavaScript, nebo jakýkoli jiný dynamický kód na straně klienta?

Zde jsou některé zkušenosti ze skutečného světa, které jsem měl, které utvářely můj názor:

  • Když jsem pracoval v Microsoftu, všiml jsem si, že jeden softwarový inženýr neznal správné hláskování slova „nemohl“ - zmeškal o, la ad - a většinu svého kódu pepřil dlouhými vysvětlením, jak could't dostat X do práce, protože Y osoba způsobovala problém Z. Jeho kód byl skvělý; jeho pravopis nebyl tak dobrý. Stačí říci, že jakýkoli následný recenzent tohoto kódu (např. Já) byl znepokojen, když v kódu viděl velký počet náhodných přísahů. Část tohoto kódu se dále zobrazovala partnerům (spisovatelům ovladačů). Představte si jejich hrůzu, když viděli přísahy. Výpůjčky by v ideálním případě měly být vedoucím projektu v ústní formě (v tomto případě může být osoba Y zapojena do diskuse) nebo možná odevzdat zprávy, ale ne ve zdroji.

  • V jedné společnosti se jednotlivec mluvící v cizím jazyce připojil k převážně anglicky mluvícímu týmu. Napsal komentáře ve svém jazyce a myslel si, že nikdo jiný je nedokáže přečíst. To bylo v pořádku, dokud Babelfish/Google Translate neuvedl pro svůj jazyk možnost „do angličtiny“, kdy zbytek týmu přeložil několik komentářů a byl zděšen špinavými a často hanlivými komentáři, které chlap o společnosti dělal. , jeho tým a spolupracovnice. Neviditelný.

  • V jiné společnosti byl jeden chlápek skutečně zaujat uměleckým dílem ASCII art) a do jeho zdrojového kódu vložil nejrůznější druhy umění, nezkrotil (nebo snad požehnal) recenzenty kódu. Po chvíli se drbal na draky "Z nějakého důvodu, obvykle s nějakým druhem značky. Později se k týmu připojil velšský člověk. Státní znak Walesu je červený drak, takže nový chlap zpočátku na obrázky veselil, ale pak urazil, když někteří z hloupé značky se daly vykládat jako urážlivé. Ano, vyžadovalo se nějaké zprostředkování vedoucího týmu, ale to se nemělo stát.


Jména/specifika odstraněna pro ochranu nevinných.

41
JBRWilkinson

Pokud prodáváte zdrojový kód (tj. Jste autorem komponent), pravděpodobně by tam neměl být.

Pokud se jedná o obezřetnost, pak cokoli, záleží jen na vás.

Pokud vidíte někoho psát hodně WTF, pak je to možná znamení, že byste s nimi měli mluvit o problémech, které mají.

Pokud někdo nasměruje svou agresi na kód jiné osoby, pak by ho mohl obtěžovat a vy byste se měli vypořádat s úplně jinou situací. Možná mají legitimní stížnost a nevědí, jak ji správně vyjádřit. Možná jsou jen blbec.

Nebylo by moudré mít nějaký druh filtru obsahu, ať už píše vývojář, je důležité a říká vám hodně o tom, jak se věci vyvíjejí.

24
Peter Turner

Pracuji pro společnost Fortune 500, která navrhuje, vyrábí a prodává spotřební výrobky, které mají vlastní program µControllers s vlastním kódem. Soudní spory jsou vždy možností, ať už od spotřebitelů, kteří doufají, že se rychle zbohatnou, nebo ze strany konkurentů, kteří se domáhají porušení. Z tohoto důvodu píšeme náš kód a VŠECHNY komentáře s vědomím, že to (pravděpodobně) bude někdy pod kontrolou nepřátelských porotců. To znamená, že názvy proměnných a funkcí by neměly obsahovat podnětné termíny, jako například KILL_CHILD(int process_id). Zatímco účelem této příkladové funkce by mohlo být velmi dobře ukončení dětských procesů, jak by si však nepřátelská porota prohlédla název funkce, pokud bylo dítě žalobce při používání produktu zabito?

Komentáře v kódu mohou být ještě horší. Zatímco důstojný obranný tým by pravděpodobně zvládl vysvětlit, co je dětský proces (z předchozího příkladu) a proč by mohlo být nutné jej ukončit, bylo by téměř nemožné se bránit proti poznámce jako:

// The following section of code is REALLY BAD!!!  I hope
//  it doesn't burn anybody's house down.

Off-hand komentáře jako to byly rozhodující faktory v reálných soudních případech.

Na související téma mohou být názvy projektů také škodlivé, pokud jsou pod mikroskopem intenzivního soudního sporu. Vzpomínáte si na pobouření konzervativních skupin v polovině 90. let, když se zprávy o technologických novinách hlásily „SATAN uvolnil na internetu“?

<rant_mode_off>

Se vším, co bylo řečeno, můžete pro osobní projekty dělat, co se vám ve vašem kódu líbí.

17
oosterwal

Pokud vám to vadí a vy jste hlavní honcho, nechápu, proč jste nemohli implementovat pravidlo o tom. Vy jste po všem vůdci v této hypotetické situaci.

Pokud vám to ale vadí jen vám a nikomu jinému, možná byste to měli sát.

9
Sergio

Možná nebudu tou pravou osobou, na kterou se ptám, protože často používám lehkou vulgárnost.

Myslím, že to většinou záleží na tom, jak je vaše PC (politicky korektní) vaše prostředí.

Pokud kóduji pro oblek-a-kravata společnost, snažil bych se nepoužívat vulgárnost vůbec, ale pokud je to pro hobby projektu nebo něco, co mám tendenci mluvit svou mysl volněji.

Zdá se mi, že v USA a některých dalších zemích jsou lidé mnohem více PC (nebo zaseknutí) než v Nizozemsku, kde žiji a pracuji.

Jako bonus navíc uvádíme několik statistik o vulgárnosti v kódu: http://andrewvos.com/2011/02/21/amount-of-profanity-in-git-commit-messages-per-programming- jazyk /

7
the JinX

Mám sklon souhlasit s tím, že to může být docela neprofesionální, ale každý čas od času usiluje o to, abych se ho nedržel proti ostatním. To znamená, že kódová základna má tendenci odrážet celkovou profesionalitu skupiny, takže vysvětlující naložená kódová základna by mohla odrážet neprofesionální skupinu, a proto může být nutné setkání, aby se ve skupině „uplatnil nějaký polský“. Podobně, pokud se v kódu objeví určité trendy, může to být indikátor obecných problémů ve skupině, které je třeba vyřešit (tj. API, se kterým pracujete, má problémy, které frustrují vývojáře).

Pokud jde o kódovou základnu, obvykle jen upravím příslušný komentář, aby byl bezpečný pro práci, a nechám to na něm. V závislosti na jazyce, se kterým pracujete, je to vždy dobrý nápad, protože nikdy nevíte, co by se mohlo objevit před klientem nebo zákazníkem.

6
rjzii

Je to neprofesionální, urážlivé nebo něco, co se má pokrčit rameny?

Možná všechny tři ... v závislosti na vašem úhlu pohledu.

Je lidskou přirozeností, aby se lidé v určitých situacích vyjadřovali pomocí „barevného jazyka“. V některých kulturách více než v jiných a někteří lidé více než jiní. Tendence je ale univerzální.

Kdybych byl tebou, pokrčil bych to rameny, ledaže by jsi byl ochotný se svými spolupracovníky udělat nepopulární.

Pokud se však zdrojové kódy/komentáře VCS zveřejní mimo vaši organizaci, možná bude chtít vaše vedení zaujmout silnější linii, protože pro firmu je špatné urazit vaše zákazníky.

5
Stephen C

Jedním z problémů s vulgárností je to, že se liší od kultury ke kultuře. V USA mají nevinné věci tendenci „vydechnout“, zatímco v jiných zemích často slyšíte stejný jazyk, jaký byl vyměňován v parlamentních diskusích.

Hloupost v kódu a komentáře k odevzdání je celkem běžné, pravděpodobně kvůli pohledu „nikdo to neuvidí“. Myslím si, že nyní je běžnější, že většina organizací zakázala velikonoční vajíčka.

Osobně si myslím, že věci, které se netýkají zákazníků (například interní materiály pro odevzdání), nejsou tak velkým problémem.

Většinu velkých nadnárodních společností však řídí právní oddělení a „bezpečné pracoviště“ a všechny tyto věci, což znamená, že cokoli, co by mohlo být urážlivé alespoň pro jednu osobu, je problém a potenciální příčina propuštění. Nerad to přiznávám, ale mám sklon se řídit pravidly těch, kdo platí můj plat.

Rychlé řešení tohoto problému je instalace filtru vulgárních výrazů do systému řízení zdroje (jako předběžný skript nebo pravidelná kontrola).

5
Uri

Myslím, že je to v pořádku, pokud to není mimo kontrolu, jako kdyby se tam hodily bomby. Viděl jsem chlapa, se kterým pracuji, napsat scénář mezi dvěma postavami diskutující o různých objektech, které každý představuje. Byl tam víceřádkový komentář, který běžel o 30 řádcích těchto dvou postav, které spolu mluvily sem a tam.

/ * * igor: mám se stát veřejným masérem? * Frankenstein: ah igor, zdědím vaše nejlepší vlastnosti ... * /

Takto to pokračovalo dlouhou dobu. Vytvořil dva objekty s názvem, uhodli jste to: Frankenstein a Igor jako součást nějaké kontroly rozumnosti. Bylo to vlastně velmi kreativní, ale celkem ztráta času. Raději bych viděl několik WTF nebo výstřelků než scénář mezi dvěma objekty C # ...

3

Závisí na kultuře společnosti/klienta. Například, pokud vyvíjíte biblický software, jsou v jakékoli formě nadšenci rozhodně nevítaní. Na druhé straně se vývojáři hry tolik nestarat (nebo jít do jiného extrému).

Vždycky si myslím, že jakékoli komentáře (v kódu nebo zavázání) by měly být žitečné. Některá slova upoutají naši pozornost více než ostatní - určitě si všimneme explikátů, dokonce i jemných odrůd. Může být užitečné upozornit na něco, co je prostě špatné, ale zatím nemáte žádný způsob, jak to vyřešit.

To znamená, že nepoužívám expletivy, ale příležitostně používám věci jako „Doh!“. nebo „Huh?“ což se v duchu příliš neliší. Pokud vás to trápí, promluvte si o tom s pachatelem - nemusí o tom přemýšlet. Pokud vám řeknou, abyste se vydali na túru a máte z toho silně pocit, jděte na vedoucího do příčky. Pokud od manažera nedostanete podporu, budete se muset naučit žít s ním nebo jít jinde.

2
Berin Loritsch

Jak již uvedli ostatní, záleží to na pracovišti a na tom, kdo uvidí zdrojový kód.

Kdybych prodával zdrojový kód, měl bych druhé úložiště pouze vydaných verzí a nedovolil bych tam žádný komentář ke kontrole mimo popis toho, co každá nová verze poskytuje. To, co dělám každý den a všechny moje nesprávné kroky jsou mezi mnou a mým týmem, nikoli mými klienty.

V současné době můj server sestavení hlásí komentáře OMG, WTF, kludge, mess a TODO jako metriku zbývajícího vyčištění, aby tak učinil právě teď, jsou součástí procesu.

1
Bill

Pokud v open source softwaru vidíte vulgární výraz a chcete se ho zbavit, připravte se na možnost Push-back. Nepište pouze tři řádky o chybě a očekávejte, že bude přijata. Napište mini-esej s vysvětlením, proč je vulgární a diskriminační jazyk špatný, a předejměte vyvrácení.

1
Andrew Grimm

No, nejsem si úplně jistý, co dalšího byste měli říci o kódu, jako je tento:

tocommit = (n + (COMMITSIZE/PAGESIZE) - 1) & ~(COMMITSIZE/PAGESIZE - 1);

Tento kód byl stažen ze skutečné, extrémně kruté kódové základny, kterou jsem se v poslední době snažil optimalizovat. (Kód je otevřený zdroj, takže zde neodhaluji tajemství zaměstnavatele ani nic.)

1
dsimcha

Myslím, že je to otázka osobních preferencí. Ty věci mě opravdu neobtěžují, tak bych to asi nechal. Mohl bych dokonce naznačit, kde jsou problémové oblasti v kódu.

Obtěžují vy? Ze skutečnosti, že se ptáte na tuto otázku, hádám, že ano. V tom případě je odstraňte nebo vyčistěte do vhodnějších komentářů o tom, co je špatně.

0
Marcie