Učinite redovne izraze ispitivim i razumljivim
Učinite redovne izraze ispitivim i razumljivimTL;DR: Možete razbiti složen regeks validacije na manje dijelove kako biste pojedinačno testirali svaki deo i prijavili točne greške.
TL;DR: Možete razbiti složen regeks validacije na manje dijelove kako biste pojedinačno testirali svaki deo i prijavili točne greške.
Problemi Rješeni
- Hard-to-test regularni izrazi
- Unclear error reporting
- Debugging nightmares
- Maintenance challenges
- Too Hard-to-test regularni izrazi regularni izrazi
- Nejasno prijavljivanje grešaka
- Debugging noćne more
- Izazovi održavanja
- Too dugim linijama i metodama dugim linijama i metodama
- Neophodni izrazi
- Primitivna obsesija Primitivna opsjednutost
- Izolacija greške
- Silo znanja
- Obsoleti komentari Obsoleti komentari
- Greške bez empatije za krajnje korisnike Greške bez empatije
- Analizirajte regex da biste identifikovali njegove logičke komponente.
- Razbijte regex u manji, imenovani pod-zakoni za svaku komponentu.
- Napišite jedinstveni testovi za svaki podzakon kako bi se osiguralo da radi ispravno.
- Kombinirajte ispitane podzakone u punu logiku validacije.
- Refactor kod da obezbedi jasne poruke o grešci za svaki neuspješan dio.
- Analizirajte regex da biste identifikovali njegove logičke komponente.
- Razbijte regex na manje, imenovane pod-ukaze za svaku komponentu.
- Upišite jedinstveni testovi za svaki pod-pattern kako bi se osiguralo da radi ispravno. jedinstveni testovi
- Kombinirajte ispitane pod-ukaze u punu logiku validacije.
- Refactor kod da pruži jasne poruke o greškama za svaki neuspešan deo.
- [x]Semi-automatski
- [x]Semi-automatski [x] Izveštaj
- Testibilnost
- Testabilnost
- [x]Intermediate
- [x]Povremeni [x] Izveštaj
Related Code Miriše
https://hackernoon.com/how-to-find-the-stinky-parts-of-your-code-part-xxv
https://hackernoon.com/how-to-find-the-stinky-parts-of-your-code-part-xxvhttps://hackernoon.com/how-to-find-the-stinky-parts-of-your-code-part-i-xqz3evd
https://hackernoon.com/how-to-find-the-stinky-parts-of-your-code-part-i-xqz3evdhttps://hackernoon.com/how-to-find-the-stinky-parts-of-your-code-part-i-xqz3evd
https://hackernoon.com/how-to-find-the-stinky-parts-of-your-code-part-i-xqz3evdhttps://hackernoon.com/how-to-find-the-stinky-parts-of-your-code-part-xxxvii
https://hackernoon.com/how-to-find-the-stinky-parts-of-your-code-part-xxxviihttps://hackernoon.com/how-to-find-the-stinky-parts-of-your-code-part-xx-we-have-reached-100
https://hackernoon.com/how-to-find-the-stinky-parts-of-your-code-part-xx-we-have-reached-100https://hackernoon.com/how-to-find-the-stinky-parts-of-your-code-part-ix-7rr33ol
https://hackernoon.com/how-to-find-the-stinky-parts-of-your-code-part-ix-7rr33olKorak
Kod uzorka
Prije
funkcija validateURL(url) { const urlRegex = /^(https?:\/\//)([a-zA-Z0-9.-]+\.[a-zA-Z]{2,})(\/.*)?$/; // Criptic i untesteable return urlRegex.test(url); }
funkcija validateURL(url) { const urlRegex = /^(https?:\/\/)([a-zA-Z0-9.-]+\.[a-zA-Z]{2,})(\/.*)?$/; // Criptic i untesteable return urlRegex.test(url); }
Nakon 👉
Invalidno ime: Invalidno ime: Invalidno ime: Invalidno ime: Invalidno ime: Invalidno ime: Invalidno ime: Invalidno ime: Invalidno ime: Invalidno ime: Invalidno ime: Invalidno ime: Invalidno ime: Invalidno ime: Invalidno ime: Invalidno ime: Invalidno ime: Invalidno ime: Invalidno ime: Invalidno ime: Invalidno ime: Invalidno ime: Invalidno ime: Invalidno ime: Invalidno ime: Invalidno ime: Invalidno ime: Invalidno ime: Invalidno ime: Invalidno ime: Invalidno ime: Invalidno ime: Invalidno ime:"Invalid domain.Invalid domain.Invalid domain.Invalid domain.Invalid domain.Invalid domain.Invalid domain.Invalid domain.Invalid domain.Invalid domain.Invalid domain.Invalid domain.Invalid domain.Invalid domain.Invalid domain.Invalid domain.Invalid domain.Invalid domain.Invalid domain.Invalid domain.Invalid domain.Invalid domain.Invalid domain.Invalid domain.Invalid domain.Invalid domain.Invalid domain.Invalid domain.Invalid domain.Invalid domain.Invalid domain.Invalid domain.Invalid domain.Invalid domain.Invalid domain.Invalid domain.Invalid domain.Invalid domain.Invalid domain.InvalVrsta
Sigurnost ️
Ovo refaktoriranje je sigurno ako pažljivo pratite korake.
Testiranje svake komponente osigurava da brzo uhvatite greške.
Zašto je kod bolji? ✨
Refactored kod je bolji jer poboljšava čitljivost, održivost i testiranost.
Razbijanje regexa na manje dijelove olakšava razumevanje onoga što svaki deo radi.
Takođe možete prijaviti određene greške kada validacija ne uspe, što pomaže korisnicima da isprave svoj unos.
Ovo je također odlična prilika da primenite Test-Driven Development tehniku, postupno povećavajući složenost uvođenjem novih pododjeljaka.
Test-Driven RazvojKako to poboljšava bijeciju? ️
Razbijanjem regexa na manje, značajnije komponente, kreirate bliže mapiranje između Real-World zahteva (npr., "URL mora imati valjan protokol") i koda.
Real-WorldOvo smanjuje dvosmislenost i osigurava da kod precizno odražava domen problema.
Ograničenja ⚠️
Ovaj pristup mogao bi dodati nešto više za vrlo jednostavne regex obrasce u kojima bi njihovo razbijanje bilo nepotrebno.
Refaktor sa AI
Možete koristiti AI alate za identifikaciju regex komponenti.
Zatražite od AI-a da objasni što svaki deo regexa radi, a zatim vas vodi u razbijanju na manje, ispitive komade.Na primjer, možete pitati: "Šta ovaj regex radi?" i slijediti sa: "Kako mogu da ga podelim na manje dijelove?".To je 2025, Nijedan programer ne bi trebao napisati novi Regular Expressions više.
Uobičajeni izraziTrebalo bi prepustiti ovaj mehanički zadatak AI.
Predložen prompt: 1. analizirajte regex da biste identifikovali njegove logičke komponente.2. Razbijte regex na manje, imenovane pod-patrene za svaku komponentu.3. Napišite testove jedinica za svaki pod-patron kako biste osigurali da radi ispravno.4. Kombinirajte ispitane pod-patrene u punu logiku validacije.5. Refactor kod da biste dobili jasne poruke o grešci za svaki neuspešan deo.
Predložen prompt: 1. analizirajte regex da biste identifikovali njegove logičke komponente.2. razbijte regex na manje, imenovane pod-patrene za svaku komponentu.3. napišite testove jedinica za svaki pod-patron kako biste osigurali da radi ispravno.4. kombinirajte ispitane pod-patrene u punu logiku validacije.5. Refactor kod da biste dobili jasne poruke o grešci za svaki neuspješan deo.
H&M+H&M+H&M+H&M+H&M+H&M+H&M+H&M+H&M+H&M+H&M+H&M+H&M+H&M+H&M+H&M+H&M+H&M+H&M+H&M+H&M+H&M+H&M+H&M+H&M+H&M+H&M+H&M+H&M+H&M+H&M+H&M+H&M+H&M+H&M+H&M+H&M+H&M+H&M+H&M+H&M+H&M+H&M+H&M+H&M+H&M+H&M+H&M+H&M+H&Istraživanje Istraživanje Istraživanje Istraživanje Istraživanje Istraživanje Istraživanje Istraživanje Istraživanje Istraživanje Istraživanje Istraživanje Istraživanje Istraživanje Istraživanje Istraživanje Istraživanje Istraživanje Istraživanje Istraživanje Istraživanje Istraživanje Istraživanje Istraživanje Istraživanje Istraživanje Istraživanje Istraživanje Istraživanje Istraživanje Istraživanje Istraživanje Istraživanje Istraživanje Istraživanje Istraživanje Istraživanje Istraživanje Istraživanje Istraživanje Istraživanje Istraživanje Istraživanje Istraživanje Istraživanje Istraživanje Istraživanje Istraživanje Istraživanje IstraBez odgovarajućih uputa
Sa specifičnim uputama
Bez odgovarajućih uputa
Bez odgovarajućih uputa
Sa posebnim uputama
S posebnim uputama
Oznake ️
Razdoblje
Povezani faktori
Vidi također
Krediti 🙏
Slika od Gerd Altmann na Pixabay
Gerd AltmannPixabay» HROvaj članak je deo serije Refactoring.