Koncepti
Brojevi sedmica i zašto su kalendarski pogrešni
Svaka ustanova numeriše svoje nastavne sedmice, a gotovo nijedna ne numeriše ih kao kalendar, a u toj razlici živi iznenađujuće mnogo zabune.
Dva različita broja istog naziva
Pitajte kalendar koja je sedmica i dobit ćete ISO broj sedmice: sedmica 1 je sedmica koja sadrži prvi četvrtak u januaru, a do početka akademske godine na sjevernoj hemisferi nalazite se negdje oko sedmice 36 do 40.
Pitajte službu za raspored isto i dobit ćete potpuno drugačiji broj. Sedmica 1 je prva nastavna sedmica godine, gdje god u kalendaru pala, i sve se broji odatle. To je broj odštampan na rasporedu, broj u obrascu za rezervaciju prostorije i broj koji koriste dva kolege kad dogovaraju sastanak u sedmici 9.
Ta dva nikad nisu ista osim ako se nastavna godina ustanove ne počne u prvoj sedmici januara, što znači: nikad. A budući da se oba zovu broj sedmice, softver koji tiho proizvede pogrešan proizvodi nešto što izgleda sasvim uvjerljivo.
Kako izgleda kad pođe po zlu
Ne izgleda kao greš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 Sedmica 36 kad ga svi u zgradi zovu Sedmica 2 prijavi se sedmicama kasnije, a prijavi ga neko ko je pretpostavio da je on pogrešno razumio sistem, a ne da je sistem pogrešno razumio njega — a u međuvremenu su ljudi dolazili u prostorije na osnovu toga.
Pravilo koje to izbjegava je kratko: broj sedmice se čita, nikad ne računa. Ustanova odlučuje gdje je sedmica 1; posao softvera je da prijavi ono što je ustanova odlučila, a ne da iz datuma izvede vlastiti broj.
Sedmica 1 nije uvijek prva sedmica koja postoji
Ustanovama redovno trebaju datumi prije nastavne godine: uvodne dvije sedmice, popravni rok, ljetna škola koja pripada godini koja završava. Umjesto ponovnog numerisanja svega — što bi tiho promijenilo značenje svakog rasporeda, svake rezervacije i svake poruke ikad poslane o sedmici 9 — razumno je proširiti kalendar unazad, u nulu i u negativne brojeve.
Prvi put zvuči neobično, a drugi put je tačno ispravno: sedmica 1 i dalje znači ono što je oduvijek značila, a dvije sedmice prije nje su sedmica −1 i sedmica −2. Imamo ustanove čija tabela sedmica seže daleko u negativno i daleko poslije kraja nastavne godine, a sve između adresira stvarni datum.
Sve što programski čita raspored treba to očekivati. Broj sedmice 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 svoje sedmice po terminima umjesto da ih broje kroz godinu: datum je u Michaelmas četvrtoj sedmici, a broj ne bi značio ništa nikome u prostoriji. Druge ustanove označavaju dvije sedmice kao Ponavljanje, Uvod ili Period ocjenjivanja i očekuju da raspored to kaže.
Dakle, nastavna sedmica nosi dvije stvari, a ne jednu: broj kojim je softver adresira i vlastiti naziv ustanove za nju, što čitalac zapravo želi na vrhu stranice. Gdje naziv postoji, treba ga štampati umjesto broja i štampati u cijelosti — skraćivanje nečije konvencije terminâ da bi se uštedjelo osam piksela je vrsta susretljivosti koju niko 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 vrijedne provjere u svakom sistemu za raspoređivanje
Nijedna nije egzotična. Sve su negdje tiho pogrešne.
| Pitanje | Kako izgleda dobar odgovor |
|---|---|
| Gdje počinje sedmica 1? | Datum koji je postavila Vaša ustanova, pohranjen jednom, korišten svugdje. Ne izveden iz kalendara i ne podesiv po ekranu. |
| Može li kalendar ići prije sedmice 1? | Da, u nulu i negativne brojeve, bez ponovnog numerisanja ičega što već postoji. |
| Može li sedmica nositi naziv? | Da, a naziv se štampa umjesto broja, u cijelosti. |
| Odakle studentska aplikacija dobija broj? | Iz rasporeda, u istom odgovoru kao i časovi. Klijent koji sam računa bit će pogrešan, i to različito pogrešan u svakoj ustanovi. |
Zašto je ovo i pitanje integracije
Portal, aplikacija ili informativni ekran koji prikazuje naslov sedmice mora ga odnekud dobiti, a jedini izvor koji može biti ispravan je sam raspored. U Wise Timetable odgovor rasporeda nosi brojeve i nazive sedmica za raspon koji pokriva, pa klijent nikad nema razloga da ih sam računa — a GET /v2/weeks odgovara na isto pitanje samostalno za ekran koji treba označiti cijeli semestar odjednom.
Priručnik za REST API dokumentuje oboje, uključujući negativan slučaj, i objavljen je u cijelosti i bez ograničenja, pa programer može provjeriti oblik odgovora prije nego što iko išta potpiše.
Želite li vidjeti kako ovo radi?
Rezervirajte 45-minutnu online prezentaciju i proći ćemo kroz sve na primjeru problema rasporeda Vaše ustanove.