6.8 KiB
Naloga za prestrukturiranje kode in dokumentacijo
Cilji učenja
Z dokončanjem te naloge boste vadili ključne veščine razvoja programske opreme, ki jih profesionalni razvijalci uporabljajo vsakodnevno. Naučili se boste organizirati kodo za boljšo vzdržljivost, zmanjšati podvajanje z abstrakcijo in dokumentirati svoje delo za prihodnje razvijalce (vključno z vami!).
Čista, dobro dokumentirana koda je ključnega pomena za resnične projekte spletnega razvoja, kjer sodeluje več razvijalcev in se kode sčasoma razvijajo.
Pregled naloge
Datoteka app.js vaše bančne aplikacije se je znatno povečala z dodajanjem funkcionalnosti za prijavo, registracijo in nadzorno ploščo. Čas je, da to kodo prestrukturirate z uporabo profesionalnih razvojnih praks za izboljšanje berljivosti, vzdržljivosti in zmanjšanje podvajanja.
Navodila
Preoblikujte trenutno kodo v app.js z uporabo teh treh osnovnih tehnik prestrukturiranja:
1. Izvlecite konfiguracijske konstante
Naloga: Ustvarite razdelek za konfiguracijo na vrhu datoteke z večkrat uporabnimi konstantami.
Navodila za implementacijo:
- Izvlecite osnovni URL strežniškega API-ja (trenutno je trdo kodiran na več mestih)
- Ustvarite konstante za sporočila o napakah, ki se pojavljajo v več funkcijah
- Razmislite o izvleku poti do strani in ID-jev elementov, ki se pogosto uporabljajo
Primer strukture:
// Configuration constants
const API_BASE_URL = 'http://localhost:5000/api';
const ROUTES = {
LOGIN: '/login',
DASHBOARD: '/dashboard'
};
2. Ustvarite enotno funkcijo za zahteve
Naloga: Zgradite večkrat uporabno funkcijo sendRequest(), ki bo odpravila podvajanje kode med funkcijama createAccount() in getAccount().
Zahteve:
- Obdelava tako GET kot POST zahtev
- Vključitev ustreznega ravnanja z napakami
- Podpora različnim URL končnim točkam
- Sprejemanje opcijskih podatkov za telo zahteve
Smernice za podpis funkcije:
async function sendRequest(endpoint, method = 'GET', data = null) {
// Your implementation here
}
3. Dodajte profesionalno dokumentacijo kode
Naloga: Dokumentirajte svojo kodo z jasnimi, koristnimi komentarji, ki pojasnjujejo "zakaj" za vašo logiko.
Standardi dokumentacije:
- Dodajte dokumentacijo funkcij, ki pojasnjuje namen, parametre in vrnjene vrednosti
- Vključite komentarje znotraj kode za kompleksno logiko ali poslovna pravila
- Združite povezane funkcije skupaj z naslovi razdelkov
- Pojasnite kakršne koli nejasne vzorce kode ali rešitve specifične za brskalnik
Primer sloga dokumentacije:
/**
* Authenticates user and redirects to dashboard
* @param {Event} event - Form submission event
* @returns {Promise<void>} - Resolves when login process completes
*/
async function login(event) {
// Prevent default form submission to handle with JavaScript
event.preventDefault();
// Your implementation...
}
Merila uspešnosti
Vaša prestrukturirana koda naj prikazuje te profesionalne razvojne prakse:
Izjemna izvedba
- ✅ Konstante: Vse magične nize in URL-je so izvlečene v jasno poimenovane konstante
- ✅ Načelo DRY: Skupna logika zahtev je združena v večkrat uporabno funkcijo
sendRequest() - ✅ Dokumentacija: Funkcije imajo jasne JSDoc komentarje, ki pojasnjujejo namen in parametre
- ✅ Organizacija: Koda je logično združena z naslovi razdelkov in doslednim formatiranjem
- ✅ Ravnanje z napakami: Izboljšano ravnanje z napakami z uporabo nove funkcije za zahteve
Zadostna izvedba
- ✅ Konstante: Večina ponavljajočih se vrednosti je izvlečenih, z nekaj preostalimi trdo kodiranimi vrednostmi
- ✅ Faktorizacija: Osnovna funkcija
sendRequest()je ustvarjena, vendar morda ne obravnava vseh robnih primerov - ✅ Komentarji: Ključne funkcije so dokumentirane, čeprav bi lahko bile nekatere razlage bolj izčrpne
- ✅ Berljivost: Koda je na splošno dobro organizirana, z nekaj področji za izboljšanje
Potrebne izboljšave
- ❌ Konstante: Veliko magičnih nizov in URL-jev ostaja trdo kodiranih po celotni datoteki
- ❌ Podvajanje: Pomembno podvajanje kode ostaja med podobnimi funkcijami
- ❌ Dokumentacija: Manjkajoči ali neustrezni komentarji, ki ne pojasnjujejo namena kode
- ❌ Organizacija: Koda nima jasne strukture in logičnega združevanja
Testiranje prestrukturirane kode
Po prestrukturiranju se prepričajte, da vaša bančna aplikacija še vedno deluje pravilno:
- Preizkusite vse uporabniške tokove: Registracija, prijava, prikaz nadzorne plošče in ravnanje z napakami
- Preverite API klice: Preverite, ali funkcija
sendRequest()deluje za ustvarjanje in pridobivanje računov - Preverite scenarije napak: Testirajte z neveljavnimi poverilnicami in napakami omrežja
- Preglejte izhod v konzoli: Prepričajte se, da med prestrukturiranjem ni prišlo do novih napak
Smernice za oddajo
Oddajte svojo prestrukturirano datoteko app.js z:
- Jasnimi naslovi razdelkov, ki organizirajo različne funkcionalnosti
- Dosledno formatiranje in zamik kode
- Popolno JSDoc dokumentacijo za vse funkcije
- Kratek komentar na vrhu, ki pojasnjuje vaš pristop k prestrukturiranju
Bonus izziv: Ustvarite preprosto datoteko za dokumentacijo kode (CODE_STRUCTURE.md), ki pojasnjuje arhitekturo vaše aplikacije in kako različne funkcije delujejo skupaj.
Povezava z resničnim svetom
Ta naloga odraža vrsto vzdrževanja kode, ki ga profesionalni razvijalci redno izvajajo. V industrijskem okolju:
- Pregledi kode ocenjujejo berljivost in vzdržljivost, kot pri tej nalogi
- Tehnični dolg se kopiči, ko koda ni redno prestrukturirana in dokumentirana
- Sodelovanje v ekipi je odvisno od jasne, dobro dokumentirane kode, ki jo lahko razumejo novi člani ekipe
- Odpravljanje napak je veliko lažje v dobro organiziranih kodnih bazah z ustreznimi abstrakcijami
Veščine, ki jih tukaj vadite - izvlekanje konstant, odpravljanje podvajanja in pisanje jasne dokumentacije - so temeljne za profesionalni razvoj programske opreme.
Omejitev odgovornosti:
Ta dokument je bil preveden z uporabo storitve za prevajanje AI Co-op Translator. Čeprav si prizadevamo za natančnost, vas prosimo, da upoštevate, da lahko avtomatizirani prevodi vsebujejo napake ali netočnosti. Izvirni dokument v njegovem maternem jeziku naj se šteje za avtoritativni vir. Za ključne informacije priporočamo profesionalni človeški prevod. Ne odgovarjamo za morebitna nesporazumevanja ali napačne razlage, ki izhajajo iz uporabe tega prevoda.