Koncepti
Brojevi tjedana i zašto su kalendarski pogrešni
Svaka ustanova numerira svoje nastavne tjedne, gotovo nijedna ne numerira ih kao kalendar, a u toj razlici živi iznenađujuće mnogo zabune.
Dva različita broja s istim imenom
Pitajte kalendar koji je tjedan i dobit ćete ISO broj tjedna: tjedan 1 je tjedan koji sadrži prvi četvrtak u siječnju, a do početka akademske godine na sjevernoj hemisferi nalazite se negdje oko tjedna 36 do 40.
Pitajte ured za raspored isto pitanje i dobit ćete posve drukčiji broj. Tjedan 1 je prvi nastavni tjedan godine, gdje god u kalendaru padao, i sve se računa od njega. To je broj ispisan na rasporedu, broj u obrascu za rezervaciju prostorije i broj koji dva kolege koriste kad dogovaraju susret u tjednu 9.
Ta dva broja nikad nisu ista, osim ako nastavna godina ustanove slučajno ne počinje u prvom tjednu siječnja, što će reći: nikad. A budući da se oba zovu broj tjedna, softver koji tiho proizvede pogrešan proizvodi nešto što izgleda potpuno uvjerljivo.
Kako izgleda kad pođe po zlu
Ne izgleda kao pogreška. Izgleda kao stranica s brojem na vrhu, a broj je pogrešan za različit iznos u svakoj ustanovi — jer svaka počinje godinu na drugi datum.
Zato je skupo. Rušenje se prijavi za sat vremena. Naslov koji glasi Tjedan 36 kad ga svi u zgradi zovu Tjedan 2 prijavi se tjednima kasnije, netko tko je pretpostavio da je krivo razumio sustav, a ne da je sustav krivo razumio njega — a u međuvremenu su ljudi dolazili u prostorije na temelju toga.
Pravilo koje to izbjegava je kratko: broj tjedna se čita, nikad računa. Ustanova odlučuje gdje je tjedan 1; zadatak softvera je izvijestiti što je ustanova odlučila, a ne izvesti vlastiti broj iz datuma.
Tjedan 1 nije uvijek prvi tjedan koji postoji
Ustanovama rutinski trebaju datumi prije njihove nastavne godine: dvotjedna uvodna faza, razdoblje popravnih ispita, ljetna škola koja pripada godini koja završava. Umjesto ponovnog numeriranja svega — što bi tiho promijenilo značenje svakog rasporeda, svake rezervacije i svake poruke ikad poslane o tjednu 9 — razumno je proširiti kalendar unatrag, u nulu i negativne brojeve.
Prvi put to čudno zvuči, a drugi put je posve ispravno: tjedan 1 zadržava značenje koje je oduvijek imao, a dva tjedna prije njega su tjedan −1 i tjedan −2. Imamo ustanove čija tablica tjedana seže daleko u negativno i daleko preko kraja nastavne godine, a sve između adresira stvarni datum.
Sve što programski čita raspored treba to očekivati. Broj tjedna je cijeli broj s predznakom, a ne brojač koji počinje od jedan.
A neke ustanove uopće ne koriste brojeve
Oxford i Cambridge imenuju tjedne po semestru umjesto da ih broje kroz godinu: datum je u četvrtom tjednu Michaelmas semestra, a broj ne bi značio ništa nikome u prostoriji. Druge ustanove označavaju dva tjedna kao Ponavljanje, Uvod ili Razdoblje provjera i očekuju da to raspored kaže.
Dakle, nastavni tjedan nosi dvije stvari, a ne jednu: broj pod kojim ga softver adresira i vlastiti naziv ustanove za njega, što čitatelj zapravo želi na vrhu stranice. Gdje naziv postoji, treba ga ispisati umjesto broja i ispisati u cijelosti — skraćivanje tuđe oznake semestra radi uštede osam piksela vrsta je susretljivosti koju nitko nije tražio.
Gdje naziv ne postoji, a za većinu ustanova ne postoji, broj je naziv i to je sasvim u redu.
Četiri stvari koje vrijedi provjeriti u svakom sustavu za raspored
Nijedna nije egzotična. Sve su negdje tiho pogrešne.
| Pitanje | Kako izgleda dobar odgovor |
|---|---|
| Gdje počinje tjedan 1? | Datum koji je postavila Vaša ustanova, pohranjen jednom, korišten posvuda. Ne izveden iz kalendara i ne podesiv po zaslonu. |
| Može li kalendar ići prije tjedna 1? | Da, u nulu i negativne brojeve, bez ponovnog numeriranja ičega što već postoji. |
| Može li tjedan nositi naziv? | Da, a naziv se ispisuje umjesto broja, u cijelosti. |
| Odakle studentska aplikacija dobiva broj? | Iz rasporeda, u istom odgovoru kao i nastave. Klijent koji sam računa bit će u krivu, i u krivu na drukčiji način u svakoj ustanovi. |
Zašto je to i pitanje integracije
Portal, aplikacija ili informacijski zaslon koji prikazuje naslov tjedna mora to odnekud dobiti, a jedini izvor koji može biti točan je sam raspored. U Wise Timetableu odgovor rasporeda nosi brojeve i nazive tjedana za raspon koji pokriva, pa klijent nikad nema razloga računati vlastiti — a GET /v2/weeks odgovara na isto pitanje samostalno za zaslon koji mora označiti cijeli semestar odjednom.
Priručnik za REST API dokumentira oba, uključujući negativni slučaj, a objavljen je u cijelosti i bez ograničenja kako bi programer mogao provjeriti oblik odgovora prije nego što itko išta potpiše.
Želite vidjeti kako to radi?
Rezervirajte 45-minutnu online prezentaciju i proći ćemo kroz nju na primjeru raspoređivanja Vaše vlastite ustanove.