Nejcennější zdroj

Nejcennější zdroj

Spoustu věcí lze nahradit nebo získat znovu. Dům, auto, peníze - vše lze nahradit. Existuje ale něco, co je cennějšího, než peníze či zlato. Čas. Čas je skvělý zdroj; všichni ho máme stejně - 24 hodin denně. Není možné mít více, jediné, co je možné, je rozhodovat o jeho využití.

Slyšeli jste někdy lidi říkat "nemám dost času"? Nemyslím tím úkoly a deadlines. Nemluvím o práci, někdy jsou deadlines příliš krátké, úkoly příliš velké a není čas je dokončit. Mluvím o "Chtěl bych se tohle naučit, ale nemám čas."

Mít pravdu

Mít pravdu

Má cenu mít vždycky pravdu? Co to znamená mít pravdu v softwarovém developmentu? Jak důležité je pro leadera mít pravdu? A kdy to všechno začne být arogance? Měli jste někdy co dočinění s někým, kdo musel mí vždy pravdu?

Prozkoumáme pohled developera, leadera a architekta.

Softwarová komplexita

Softwarová komplexita

Komplexita je úhlavní nepřítel softwarového designu a architektury. Primárním úkolem softwarového architekta je odstranit, redukovat a spravovat komplexitu, v tomto pořadí. Ale co když samotná podstata problému, který řešíte, je komplexní? Co potom? Co vůbec znamená managovat komplexitu a co je vůbec komplexita?

Existuje několik typů softwarové komplexity a každý typ vyžaduje jiný přístup.

Co je abstrakce

Co je abstrakce

Vývojáři používají slovo "abstrakce" běžně, nicméně často s omezeným chápáním významu. Pro většinu, koncept abstrakce byl zastíněn jejím použitím v některých jazycích pro označení metody nebo třídy, která musí být děděna a přetížena. Stejně tak "použij abstrakci" pro spoustu developerů znamená "napiš abstraktní třídu".

Abstrakce je jednou z nejdůležitějších technik pro docílení decouplingu a stabilizaci veřejného rozhraní na všech úrovních.

Struktura modulitu

Struktura modulitu

Existuje několik způsobů, jak vytvořit modulit a jeden z nich si dneska ukážeme. Ty důležité části, na které se dneska zaměříme jsou: Aplikační vrstva, Business vrstva, Fasády a Repositáře, Event bus/broker, CQ Router a Utilities.

Pochopení rolí a rozdělení těchto částí je základem pro napsání kódu, který neskončí jako "big ball of mud".

Cesta modulitu

Cesta modulitu

Monolitický styl má špatnou reputaci, nicméně je vhodnou volbou pro menší aplikace. Problémem není nutně monolit, ale spíš způsob jeho implementace.

Proč zvolit monolit na místo distribuované architektury (např. microservices)? Networking mezi jednotlivými komponentami představuje novou sadu problémů. Existují benefity stejně, jako nevýhody.

Modulární monolit - modulit je vhodná volba, jak začít psát aplikaci.

Hodnoty, cíle a loajalita

Hodnoty, cíle a loajalita

"Měli byste být loajální k firmě, sdílet její cíle a přijmout její hodnoty." K tomu nedojde. Nechápejte mě špatně, neříkám "To neudělám", říkám, že to se nestane, nemůže se to stát, není to možné.

Lidé nejsou loajální k firmě, jsou loajální k lidem ve firmě díky kultuře, která je lidmi vytvořena.

Příliš mnoho bludů

Příliš mnoho bludů

Někteří lidé si myslí, že dependency injection by mělo být použité všude a je nejnovější technologií. Podobně, někteří lidé si myslí, že layered architecture vyřeší všechno a další si myslí to samé o microservices.

Někteří lidé si myslí, že serverless je vhodné vždy, další, že vše by mělo být napsané v Rustu na backednu a Vue3 na frontendu.

Někteří lidé si myslí, že stačí na jednoho člověka nalepit Product Owner, na jiného Scrum Master, poslat je na 2denní certifikační kurz, mít standupy, reviews, retrospektivy, používat Jiru a máte agilní team, který praktikuje Scrum.

Toto vše má jeden společný atribut: nepochopení hodnot a principů.

Hodnoty

Hodnoty

Proč děláte to, co děláte? Co vás motivuje k tomu, jít do práce? Podle čeho rozhodujete? Čeho chcete pracovně dosáhnout?

tl;dr - nejsou to peníze.

Pevně věřím, že existují hodnoty, které jsou důležitější než peníze. Hodnoty, které vytvářejí lepší, udržitelnější business model a zároveň generují peníze. Těmi hodnotami jsou: zákazník, team a kvalita; a jdou ruku v ruce.

Používáme cookies a podobné technologie, jako Google Analytics, pro sběr analytických dat. To nám pomáhá pochopit, jak uživatelé používají naše stránky.

Více info

Stránky používají Google Analytics, a analytické služby poskytované společností Google. Google Analytics používá cookies, aby nám tato služba pomohla analyzovat, jak uživatelé používají naše stránky. Informace generované cookies, které se týkají vašeho používání stránek (včetně vaší IP adresy) budou přeneseny a uloženy u společnosti Google. Požíváme tato data pro vytváření reportů o aktivitě a k poskytování dalších služeb, které se týkají těchto stránek.

Analytická data nám pomáhají vylepšovat naše služby. Nepoužíváme je k marketingovým a reklamním účelům. Tato data nepředáváme ani neprodáváme dál.