Nejlepší odpověď
Zajímavá otázka. Pojem „řemeslné zpracování“ pro mě znamená něco o způsobu psaní skutečného kódu, spíše než o návrhu systému na vyšší úrovni. Řekl bych, že dobře zpracovaný kód dělá toto:
- Sleduje externí standardy
- Sleduje interní standardy
- Používá dobré vzory
- Je čitelný
Dodržuje externí standardy. Pokud má vaše skupina standardy kódování, řiďte se jimi. Pokud tak neučiníte “ Standardům se nelíbí, stále je dodržujte.
Dodržuje interní standardy. To znamená, že kód by měl být interně konzistentní. Metody, které dělají podobné věci, by měly být stanoveny stejným způsobem. Pokud jedna metoda odpovídá vzoru:
if (success) {
doSomething();
} else {
handleError();
}
nemáš jinou metodu, která začíná:
if (!success)
{
handleError();
Používá dobré vzory. Tím mám na mysli spíše kódovací vzory než návrhové vzory. Váš kód by měl používat idiomy vhodné pro daný jazyk. (Například pro správu paměti v C ++ použijte scoped\_ptrs.) Mělo by se vyhnout zjevným neefektivnostem, jako je dodatečné iterátory C ++ nebo vytváření objekty, které nejsou použity v každé cestě kódu.
Je čitelný. Ostatní technici přečtou váš kód a vy znovu načtete to za několik let. Kód by měl být co nejsnadněji srozumitelný. Všechny výše uvedené položky se primárně zabývají čitelností a minimalizací neočekávaných prvků v kódu. Vaši čtenáři by se měli zabývat logikou vašeho kódu, ne snahou zjistit, proč byl použit nestandardní konstrukt. Pokud existuje nestandardní konstrukt, měli by vaši čtenáři vědět, že tam je z nějakého důvodu, ne proto, že jsi udělal chybu. (Přemýšlejte o svém kódu jako o kusu nábytku. Povrch by měl být hladký a pokud po něm přejdete rukou, neměli byste chytit třísku. Jakákoli nesrovnalost by tam měla být z nějakého důvodu.)
Čitelnost je také zlepšena rozumnou metodou a názvy proměnných a vhodnými komentáři. Nepřekračujte hranice komentování. Pokud je to zřejmé, neobtěžujte se to vysvětlit. Mějte ale nějaký přehled, aby čtenář znal kontext. (Může být zřejmé, že kód transformuje vstup X na výstup Y, ale pomáhá, pokud má čtenář nějakou představu o tom, proč je to nutné.)
Odpověď
Manažeři jsou jako batolata. Chtějí, co chtějí, a chtějí to TEĎ ! Ale na rozdíl od batolat si manažeři napůl zapamatovali Harvard Business Review články, které uvádějí (bez uvedení odkazů), aby ospravedlnili své požadavky. Naučili se řadu argumentů, které některým vývojářům brání.
Říkají: „Nemůžeme si dovolit to udělat správně. Musíme to dostat na tržnici HNED TEĎ ! “. Není to pravda, víš. Pokud vrhnou svůj špagetový kód do výroby, mají nyní šanci naštvat své startovní zákazníky, ale kód nelze škálovat. Znamená to jen, že se jejich firma chvíli zhroutí, než se zhroutí.
Říkají: „Našim zákazníkům nabízíme beta verzi.“ Myslí to tím, že chtějí, abyste vydali dokonalý a pro zákazníka příjemný kód dříve, než byste to udělali jinak, jen proto, že souhlasili s tím, že jej nazvete programem beta testování. Je to magické myšlení, jako víra v Santa Clause.
Říkají: „Slibuji, že kód přepíšeme později, pokud uvolníte svůj mizerný a nedokončený kód TEĎ ! “ Nezní to jako „Vyčistím si pokoj později, tati, jestli můžu sledovat televizi a jíst sladké občerstvení HNED ?“ Problém je v tom, že později nikdy nepřijde. Každý den má manažer možnost buď přidat nové funkce, nebo vyčistit nepořádek v místnosti, která je jejich kódovou základnou. Hádejte, kterému dávají přednost. A hádejte co, místnost je pořád nepořádnější, takže úklid bude trvat déle a déle. Je těžší pracovat (vytvářet nové funkce) také kvůli tomu nepořádku.
Nakonec řeknou: „Do této kódové základny jsme investovali příliš mnoho. Přepsat bude trvat příliš dlouho. Potřebujeme funkce HNED ! “ Pouze každá funkce trvá dvakrát nebo třikrát déle, než se kóduje, kvůli nepořádné místnosti, kterou vývojáři softwaru nazývají technický dluh.
Dobří vývojáři, jako trpěliví a milující rodiče, musí šílenství zastavit. Musí pevně trvat na tom: „Promiň lásko, ale tvůj HBR článek říká:„ Příjmy dříve budou lepší, všechny ostatní věci jsou stejné . “Musíte si to přečíst pečlivěji.Všechny ostatní věci se nerovnají, pokud se hromadí technický dluh. Co kdybychom upřednostnili funkce a možná pro vás bude něco, co byste mohli prodat dříve. “
Musíte být dospělí a rozdělit jim to, že neexistuje nic jako Santa Claus a žádné dokonalý, pro zákazníka příjemný kód, dokud nebudou odstraněny všechny chyby a nebudou implementovány všechny funkce.
Musíte jim říct: „Nemůžeme si dovolit ne k používání osvědčených postupů. Žijeme nebo umíráme, ale musíme pro život dělat určité věci, jako je psaní testů a dokumentace. To není možnost. “
Musíte se usmát a říct:„ Tento kód nikdy nepřepíšeme. Vím, že to myslíte dobře, ale pokud jde o opravu kódu nebo přidání nových funkcí, vím, co řeknete. To je to, co vždy říkáte. “
Tím, že jste pevným rodičem, pomůžete svému nadřízenému vyrůst do podoby obchodního vůdce pro které by chtěl pracovat.