Editing
Jak správně navrhnout testovací pyramidu
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!
<br>Základem je seznámit se s klávesovými zkratkami pro nejčastější operace. Ve většině IDE najdete funkci „Rename" – obvykle ji vyvoláte klávesou F2 nebo pravým tlačítkem myši. Tento nástroj přejmenuje symbol v celém projektu, nejen v aktuálním souboru. Před potvrzením změny si vždy prohlédněte náhled, který ukazuje všechny dotčené výskyty. Častou chybou je přejmenování pouze v jednom souboru, což vede k nekonzistenci a následným chybám při kompilaci.<br><br>Nauč se pracovat s verzovacím systémem na příkazové řádce. GUI nástroje jsou sice pohodlné, ale příkazy jako commit, branch nebo rebase ti dají větší kontrolu. Typická začátečnická chyba je commitovat do hlavní větve nebo mazat historii – pokud nevíš, co rebase dělá, raději se zeptej. Učení se z chyb je součást procesu, ale zbytečné konflikty můžeš snadno předejít.<br><br>Při vývoji myslete i na chybové hlášky. Nikdy nevypisujte na web přesné znění SQL chyby, které může útočníkovi prozradit strukturu databáze. Místo toho zachycujte výjimky a logujte je do souboru, uživateli zobrazte neutrální zprávu. Dále omezte práva databázového účtu, který aplikace používá. Pokud aplikace nepotřebuje právo DROP TABLE, mějte ho odebráno. V neposlední řadě pravidelně provádějte penetrační testy a používejte automatizované nástroje pro skenování zranitelností, které dokáží najít SQL injection.<br><br>Základní princip ochrany je jednoduchý: nikdy neskládat SQL dotaz z uživatelských vstupů přímým řetězením textu. Typická chyba vypadá takto: dotaz je sestaven jako text a uživatelský vstup je do něj vložen přímo. Místo toho vždy používejte parametrizované dotazy, které poskytují všechny moderní databázové vrstvy. V PHP to jsou prepared statements u PDO, v Javě PreparedStatement, v Pythonu parametrizace v knihovně pro danou databázi. Parametrizace zajistí, že vstup je vždy interpretován jako data, nikoli jako součást SQL příkazu.<br><br>Asynchronní kód bez bolesti Async/await je dnes standardem pro práci s API nebo soubory. Klíčové je pochopit, že await musí být vždy uvnitř async funkce. Častým omylem je použití await mimo async kontext — pak dostanete chybu. Další past: zapomenutí na zpracování chyb pomocí try/catch. Bez něj se při selhání požadavku aplikace chová nepředvídatelně. Vždy obalujte async operace blokem try/catch, nebo použijte .catch() na Promise.<br><br>Útoky typu SQL injection patří mezi nejčastější a nejnebezpečnější zranitelnosti webových aplikací. Útočník vloží do vstupního pole či parametru URL databázový dotaz, který se pak provede na serveru. Pokud aplikace neošetřuje vstupy, může útočník číst, měnit nebo mazat data, a v krajním případě získat plnou kontrolu nad serverem. Následky bývají fatální – od úniku osobních údajů až po úplné převzetí webu.<br><br>Když přijdete na pole a objekty, využijte metody jako map, filter a reduce. Tyto funkce nahrazují tradiční for cykly a usnadňují transformace dat. Například pro získání všech aktivních uživatelů použijete users.filter(u => u.active). Dejte si pozor na to, že map a filter vrací nové pole — nemodifikují původní. Pokud potřebujete změnit jen některé prvky, použijte map s podmínkou. Typická chyba: zaměnění map a forEach — forEach nic nevrací a je vhodný pouze pro vedlejší efekty.<br><br>Další častou chybou je spoléhat na tzv. magické uvozovky nebo na funkce pro escapování, jako je mysql_real_escape_string. Tyto přístupy jsou zastaralé, snadno se obejdou a nezaručují bezpečnost. Navíc při použití vícebajtových znakových sad může escapování selhat. Proto se vyhněte jakémukoli ručnímu sestavování dotazů – jediné správné řešení je parametrizace v kombinaci s validací.<br><br>Přispívání do open source projektů není jen o psaní kódu. Můžeš pomoci s dokumentací, testováním, designem nebo třeba s odpovídáním na dotazy uživatelů. Pro začátek si vyber projekt, který skutečně používáš, a nejlépe takový, který tě baví. Není nutné hned rozumět celému kódu – stačí začít malým krokem.<br><br>Nakonec si uvědomte, že odhad je vždy nejistý. Místo jednoho čísla proto nabídněte rozpětí, například pět až osm dní, a vysvětlete, co by způsobilo posun k vyšší hodnotě. Takový přístup dává zadavateli jasnou představu o rizicích a vám umožní pracovat bez pocitu, že jste v pasti. Odhad se tak stává nástrojem komunikace, nikoli zdrojem stresu.<br><br>Pro práci s objekty je vhodný spread operátor. Umožňuje snadno kopírovat objekty nebo pole: const newObj = ...oldObj, key: 'value' . Pozor na mělkou kopii — pokud má objekt vnořené objekty, tyto sdílí referenci. Pro hlubokou kopii je nutné použít strukturovanou klonování nebo serializaci. Toto je častý zdroj chyb, když se snažíte upravit vnořený stav v Reactu nebo Vue.<br><br>In case you loved this article along with you desire to obtain more details relating to [https://Rikkiepedia.nl/index.php?title=Jak_zvolit_spr%C3%A1vnou_open_source_licenci_pro_v%C3%A1%C5%A1_projekt Rekonstrukce Bytu] kindly go to our website.<br><br>[http://racist.wiki/index.php/Z%C3%A1sady_psan%C3%AD_%C4%8Dist%C3%A9ho_k%C3%B3du_v_JavaScriptu_pro_za%C4%8D%C3%A1te%C4%8Dn%C3%ADky_i_pokro%C4%8Dil%C3%A9 Rekonstrukce Bytu]<br>
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