Editing
Jak začít s verzováním: Git bez bolesti
Jump to navigation
Jump to search
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
Na závěr si osvojte techniku logování. Místo pouhého `print()` zaznamenávejte průběh do souboru pomocí modulu `logging`. Díky tomu zjistíte, kdy a kde skript selhal, i když běží na pozadí. Automatizace je o tom, aby vám práce ubyla – pokud vám skript přináší víc starostí než užitku, vraťte se k jednoduššímu řešení. Začněte malými úkoly, postupně přidávejte složitější logiku a brzy zjistíte, že Python je mocný nástroj, který vám ušetří spoustu času.<br><br>Klíčové je použití normalizovaného stavu Normalizace stavu je další zásadní krok. Pokud vaše asynchronní akce stahují kolekce dat (např. seznam uživatelů), nikdy neukládejte celý seznam do jednoho pole. Místo toho použijte objekt, kde klíčem je ID entity a hodnotou daná data. Udržujte si také samostatné pole ID, které definuje pořadí. Tento přístup výrazně zjednodušuje aktualizace – když přijde odpověď, stačí sloučit objekty, ne hledat v poli. Navíc se vyhnete problémům s duplicitními záznamy při opakovaném načítání stejných dat.<br><br>Další vrstvy obrany: validace a escape Parametrizace je hlavní ochrana, ale ne jediná. Doporučuje se kombinovat ji s validací vstupů. Ověřte, že data odpovídají očekávanému formátu – e-mail musí obsahovat zavináč, číslo musí být číslo a ID musí být celé číslo. Také omezte délku polí a povolené znaky podle typu vstupu. Pokud potřebujete použít dynamické prvky jako názvy sloupců nebo řazení, nelze použít parametry. V takovém případě použijte bílou listinu povolených hodnot a nikdy nedosazujte vstup přímo.<br><br>SQL injection není problém, který by se dal vyřešit jednou provždy. Vyžaduje průběžnou pozornost a kódování s ohledem na bezpečnost. Při každém novém dotazu se zeptejte, zda obsahuje uživatelský vstup, a pokud ano, použijte parametrizaci. Pravidelně aktualizujte databázové ovladače a frameworky, které často obsahují opravy známých zranitelností. Investice do prevence se mnohonásobně vrátí, protože náklady na řešení úniku dat jsou obvykle výrazně vyšší než čas strávený psaním bezpečného kódu.<br><br>Odhad časové náročnosti patří k nejobtížnějším částem softwarového vývoje. I zkušení vývojáři se často mýlí, protože podléhají optimismu a zapomínají na skryté náklady. Základním krokem je rozdělit práci na malé, dobře definované úkoly, které lze jednotlivě odhadnout. Místo snahy o přesný počet hodin u celého projektu se zaměřte na relativní odhady – porovnávejte složitost jednotlivých úkolů mezi sebou.<br><br>SQL injection patří mezi nejčastější a nejnebezpečnější zranitelnosti webových aplikací. Útočník využívá nedostatečné ošetření uživatelských vstupů k tomu, aby do SQL dotazu vložil vlastní příkazy. Díky tomu může číst, měnit nebo mazat data v databázi, obejít přihlášení nebo dokonce převzít kontrolu nad serverem. Prevence přitom není složitá, vyžaduje ale důslednost při psaní každého dotazu, který pracuje s uživatelskými daty.<br><br>Pravidelně porovnávejte odhady se skutečností. Po dokončení úkolu si zapište, kolik času reálně zabral, a proč se lišil od odhadu. Po čase získáte kalibraci, díky které budou vaše odhady stále přesnější. Nepodléhejte iluzi, že odhadování je exaktní věda – je to dovednost, kterou lze trénovat. Důležité je být konzistentní, sledovat metriky a nebát se přiznat nejistotu.<br><br>Když začínáte s C#, nejlepší první projekt je konzolová aplikace. Není to jen o tom, že nepotřebujete žádné grafické rozhraní – hlavní výhoda spočívá v tom, že se soustředíte na logiku a základní jazykové konstrukty. V tomto průvodci si krok za krokem projdete vytvořením jednoduché aplikace, která načte jméno uživatele, převede ho na velká písmena a vypíše pozdrav. Naučíte se přitom pracovat se vstupy, výstupy a základními datovými typy.<br><br>Pozor si dejte i na méně obvyklá místa, kde se SQL injection může schovat. Často se zapomíná na HTTP hlavičky, cookies nebo soubory nahrané uživatelem. Tyto hodnoty také procházejí aplikací a mohou skončit v databázi. Vždy je ošetřete stejně jako formulářová pole. Dále myslete na chybové hlášky – nikdy nevracejte uživateli detailní výpis SQL chyby. Útočník by z něj získal informace o struktuře databáze. Místo toho logujte chyby do souboru a uživateli zobrazte neutrální hlášení.<br><br>Další pastí je zapomínání na okolní prostředí – skript, který běží na Windows, může selhat na Linuxu kvůli odlišným oddělovačům cest. Používejte funkce z `pathlib.Path`, které jsou multiplatformní, a testujte skript na více zařízeních, pokud to je možné. Důležité je také verzování – i jednoduchý skript uložte do Gitu, abyste se mohli vrátit k předchozí funkční verzi, když něco rozbijete. Tento návyk se vám vyplatí u všech projektů.
Summary:
Please note that all contributions to IT-Core are considered to be released under the GNU Free Documentation License 1.3 or later (see
IT-Core:Copyrights
for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource.
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Navigation menu
Personal tools
Not logged in
Talk
Contributions
Create account
Log in
Namespaces
Page
Discussion
English
Views
Read
Edit
View history
More
Search
Navigation
Main page
Recent changes
Random page
Help about MediaWiki
Special pages
Tools
What links here
Related changes
Page information