Příspěvky

Jak jsem dosáhl nečekaného výkonu a škálovatelnosti Zubokliku?

Obrázek
V dnešním článku vám představím, jak v Zubokliku optimalizujeme výkon pomocí Hotwire/Turbo/Stimulus, využíváme nové funkce Ruby 3.3 a Rails 7.2, a dosahujeme bleskových odpovědí při zpracování požadavků uživatelů. Zuboklik je díky těmto optimalizacím rychlý, stabilní a připraven na vysokou zátěž. V Zubokliku se zaměřujeme na rychlost a stabilitu. Jak? Využíváme výhod nových verzí Ruby 3.3 a Rails 7.2 , kombinovaných s rámcem Hotwire/Turbo/Stimulus pro co nejefektivnější načítání stránek a práci se servery. Hotwire/Turbo/Stimulus – žádné zbytečné načítání Dříve byly jednou z výzev u Rails aplikací dlouhé odezvy při generování celé stránky. V Zubokliku ale místo načítání celého rozhraní pokaždé využíváme TurboFrames pro načítání jen těch částí stránky, které se skutečně mění. Například pokud sestra přidá nebo upraví termín, systém aktualizuje pouze danou část stránky. Naše řešení TurboStream nám umožňuje okamžitě zasílat aktualizace přímo do aplikace bez nutnosti obnovovat stránku....

Jak vybudovat objednávkový systém s Ruby on Rails, aneb Technologie za vývojem Zubokliku.

Obrázek
  Vývoj spolehlivého a škálovatelného systému pro objednávání pacientů, jako je Zuboklik , vyžaduje pečlivý výběr technologií. Tento článek představuje technologické postupy, které jsem použil při tvorbě Zubokliku, a ukazuje, jak Ruby on Rails, spolu s několika vlastními řešeními, umožnilo vývoj efektivního nástroje pro zubní ordinace. Monolitická architektura a Background joby s MidgetJobs Zuboklik využívá monolitickou architekturu, což byla vědomá volba, která zjednodušuje strukturu a usnadňuje údržbu. Na rozdíl od mikroservisů tento přístup uchovává celou aplikaci pohromadě, což umožňuje soudržnější integraci všech částí. Všechny background joby se provádějí pomocí vlákna Rails, za využití vlastního gemu MidgetJobs . MidgetJobs je navržen pro práci uvnitř prostředí Rails a umožňuje snadné řízení asynchronních úloh, aniž by bylo potřeba zvláštního workeru nebo další infrastruktury. PostgreSQL a moderní vývojové postupy Pro správu databází Zuboklik používá PostgreSQL, spolehlivo...
Obrázek
  Jak vybudovat malou softwarovou firmu Realizace projektu hybridně Hybridní pracovní prostředí se dnes prosazuje kvůli všelijakým epidemiím a nutnosti pracovat nějakou dobu z domova.  Řídit firmu bez ztráty přehledu a jistoty může být výzva. Největšími strašáky bývá obava, že práce nebude odevzdána včas a v požadované kvalitě. Nebo že se sníží produktivita. To vše leckterého zaměstnavatele odradí. Zaměstnanci pak chodí do kanceláří, aby firma fungovala.  Se správným software pro řízení chodu firmy, mohou pracovat zaměstnanci střídavě, nebo i převážně z domova. K žádnému snížení efektivity při tom nedojde, naopak se zvýší důvěra ve firmu a spokojenost na obou stranách. Rovněž se může ušetřit na nákladech, čase či vybavení.    Samostatnost K tomu, aby mohli zaměstnanci pracovat spolehlivě z domova, musí být samostatní a mít sebekázeň.  Když jsou zaměstnanci samostatní, není potřeba tolik řešit osobní kontrolu jejich práce. Osobně se mi osvědčilo, budov...
Obrázek
Jak vybudovat malou softwarovou firmu Návrh datového modelu Úspěšná softwarová firma musí dodávat úspěšné projekty. Takový software musí být stabilní, dostatečně rychlý a umožňovat další rozvoj. Tím pádem potřebuje kvalitní datový model. Pokud se databáze začne zadrhávat při větším množství dat nebo nejde jednoduše přidat další zákazníkův požadavek, či data neumožňují získal potřebnou informaci je to problém a firma ztrácí důvěru zákazníka. Já se řídí při návrhu nemnoha pravidly která mě provedla všemi těmito zmíněnými úskalími. Pojďme si je probrat. Barevné odlišení druhů dat a vazeb Na následujícím obrázku můžeme na první pohled odhadnout jaké tabulky jsou hlavní, které jsou podpůrné nebo že některé jsou něčím specifické. Je dobré umístit třeba vlevo nahoru i nějaké vysvětlivky co které barva znamená. Tak například na tomto datovém modelu jsou hlavní tabulky oranžové, méně důležité tabulky světle oranžové, podpůrné tabulky zelené, polymorfní tabulky jsou magicky fialové. Spojovací ta...
Obrázek
  Jak vybudovat malou softwarovou firmu Plánování práce a projektů Při řízení lidí je potřeba rozdat úkoly. Úkoly se většinou sdružují do nějakých skupin, a i ty skupiny můžeme seskupit do hromady a vzniká projekt. Budujeme malou SW firmu, je třeba organizovat práci aby firma šlapala. Mě se osvědčili projekty jak pro krátkodobé cíle, tak dlouhodobé cíle - takové vlastně nekonečné projekty. Proberu zde obě varianty, jejich specifika a jak je používáme. Obrázek generován umělou inteligencí ... Konečný projekt Řekněme, že nás zákazník osloví s představou aplikace. Ví v principu co by měla dělat. Občas zabrousí do nějakých detailů, občas chápe věci povrchně, nebo ve zkratce. Našim úkolem bude z těchto informací, které rozhodně nejsou kompletní sestavit nějaký plán práce, který se ale kompletnosti blíží, protože jinak bychom došli při odhadu potřebného času, potřebných lidí a jejich schopností k mylným závěrům.  Obrázek generován umělou inteligencí ... Z neuspořádaných myšlenek chc...
Obrázek
Jak vybudovat malou softwarovou firmu Zaměstnavatel Jak se posunout ze “vše dělám sám” na zaměstnavatele, popíšu v tomto článku a budu čerpat z vlastních zkušeností. Pokud vás zajímá, jako zaměstnance, jak se přeměnit na majitele vlastní firmy, přečtěte si předchozí článek.: “Z programátora podnikatelem”. Když už máte společnost s.r.o., jednou přijde chvíle, kdy je práce již moc a vy byste rádi přijali zaměstnance. Není to vždy snadné svěřit práci někomu jinému. Hlavně chcete, aby kvalita práce zůstala nebo byla ještě lepší.   My nové zaměstnance učíme naše způsoby, udělali jsme jim dokumenty jak co dělat a nedělat. Nováčci začínají psaním testů a učíme je vytváření Pull-Request / Merge-Request a akceptovat naše review. Přijímací pohovor Určitě zde nechci psát, jak dělat správný HR management (Human resource management, česky Personalistika, je to obor, který se zaměřuje na získávání kvalitních lidí pro podnik - tak říká česká Wikipedie).  Chci se zaměřit na jediný aspekt...