You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Web-Dev-For-Beginners/translations/sl/7-bank-project/3-data/assignment.md

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:

  1. Preizkusite vse uporabniške tokove: Registracija, prijava, prikaz nadzorne plošče in ravnanje z napakami
  2. Preverite API klice: Preverite, ali funkcija sendRequest() deluje za ustvarjanje in pridobivanje računov
  3. Preverite scenarije napak: Testirajte z neveljavnimi poverilnicami in napakami omrežja
  4. 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.