Kontejnerizace: kde začátečníci ztrácejí data i čas
Než napíšete první řádek kódu, potřebujete rozhodnout, v čem budete pracovat. Pro Android je dnes standardem Android Studio, ale existují i alternativy jako IntelliJ IDEA s pluginem nebo VS Code s rozšířeními. Android Studio je ale nejlépe sladěné s nástroji, které budete potřebovat: emulátor, ladicí nástroje, správu závislostí. Nainstalujte ho včetně JDK, které vývojové prostředí vyžaduje. Během instalace nechte zaškrtnuté i SDK pro nejnovější verze systému a pro alespoň jednu starší, abyste mohli testovat na různých zařízeních. Po instalaci si vytvořte virtuální zařízení v AVD Manageru – bez emulátoru se neobejdete, pokud nemáte po ruce fyzický telefon.
Na závěr: začněte jedním testovacím souborem, přidejte pytest do pravidelného spouštění a teprve pak řešte složitější věci, jako jsou fixtures s rozsahem nebo vlastní značky. Největší přínos není v tom, že máte testy, ale že jim rozumíte a umíte rychle najít příčinu selhání. Právě v tom je pytest silný a právě proto se vyplatí ho používat dřív, náBytek na míru než se projekt rozroste.
Jakmile zvládnete základy, přidejte si do projektu jednoduchou perzistenci dat. Může to být úložiště klíč–hodnota nebo malá databáze. Naučíte se tím, jak ukládat stav a jak s ním pracovat při obnovení aplikace. Potom zkuste síťové volání – načtěte veřejně dostupná data a zobrazte je v seznamu. Zjistíte, že práce s vlákny a chybami je stejně důležitá jako samotné zobrazení. Vždy ošetřete výjimky a načítání, jinak aplikace zamrzne.
Nakonec se nebojte číst cizí kód a dokumentaci. Otevřete si vzorový projekt, který dělá něco podobného, a sledujte, For more on návod visit the web site. jak je uspořádaný. Sestavte si vlastní malou aplikaci od začátku do konce, i kdyby to bylo jen poznámky nebo převodník jednotek. Dokončený projekt vás naučí víc než tucet nedokončených. Až budete hotoví, projděte si, co by šlo zjednodušit, a zkuste to předělat. Právě tím se z učení stane skutečná dovednost.
Autentizaci popište tak, aby bylo jasné, jak se token získává, kam se vkládá a jak dlouho platí. Uveďte, co se stane po vypršení platnosti a zda existuje obnovovací mechanismus. Pokud používáte různé role nebo oprávnění, napište, které endpointy vyžadují jakou roli. Vyhněte se tomu, aby oprávnění byla popsána jen větou „platí obvyklá pravidla". To frontend nepoužije a backend to nebude chtít vysvětlovat při každé integraci.
Účinnou vrstvou navíc je omezení práv databázového účtu. Aplikační účet nemá mít právo vytvářet tabulky, vypisovat soubory ani spouštět administrátorské příkazy. Když se útočník dostane přes dotaz, získá jen to, co účet umí. Zároveň je vhodné sledovat neočekávané dotazy, například ty, které vracejí mnoho řádků nebo obsahují klíčová slova, jež aplikace běžně nepoužívá. Monitorování neopraví chybu, ale zkrátí dobu, po kterou únik probíhá.
Sítě a porty jsou dalším častým kamenem. Kontejnery mezi sebou komunikují po názvech služeb, ne přes localhost. Pokud aplikace běží v jednom kontejneru a databáze v druhém, spojení na localhost nefunguje. Použijte název služby definovaný v souboru compose. Mapování portů na hostitele je jen pro přístup zvenčí, nikoli pro vzájemnou komunikaci kontejnerů.
Klíčové je pochopit strukturu projektu. Složka java nebo kotlin obsahuje logiku, složka res obrázky, barvy, texty a rozložení. Soubor AndroidManifest.xml definuje, co aplikace umí a jak zařídit malou kuchynié má oprávnění. Nezačínejte hned s velkým nápadem. Udělejte jednoduchou aplikaci, která po stisku tlačítka změní text nebo spočítá příklad. Tím si osaháte práci s událostmi, stavem a rozložením. Teprve pak přidávejte další obrazovky a navigaci.
Poslední věc, kterou začátečníci podceňují, je sledování běžícího kontejneru. Když něco nefunguje, nestačí se ptát, proč aplikace neběží. Podívejte se na logy, ověřte, zda proces skutečně startuje, a zkontrolujte, jestli kontejner neskončil kvůli chybějící konfiguraci. Nejčastější příčinou je špatně nastavená proměnná prostředí nebo chybějící svazek. Bez čtení logů budete zkoušet náhodné opravy a ztratíte hodiny.
Dockerfile a build cache: kde se ztrácí čas V Dockerfilu záleží na pořadí instrukcí. Každá vrstva se cachuje, ale jakmile se změní jeden řádek, všechny následující se přestaví. Typická chyba je kopírování celého projektu před instalací závislostí. Správně nejdřív zkopírujte soubor se závislostmi, nainstalujte je a teprve potom zbytek kódu. Ušetříte minuty při každé změně. Také se vyhněte příkazu, který v jednom kroku dělá vše – hůř se ladí a cache nefunguje.
CSS vybírá prvky pomocí selektorů. Třída (.nazev) je přesnější než značka (p) a měla by se používat pro opakující se vzhled. Identifikátor (#nazev) patří jen tam, kde je prvek na stránce opravdu jeden. Kaskáda znamená, že pozdější pravidlo přebije dřívější, pokud má stejnou specificitu.Proto se vyhýbej zbytečnému !important — je to past, která se vymstí při další úpravě. Barvy a rozměry se dají psát v px, rem nebo procentech. Pro přizpůsobení různým obrazovkám se hodí relativní jednotky a media queries.