Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Naj imajo vsi skloni vseh števil enako strukturo #4

Open
zigacernigoj opened this issue Jan 22, 2019 · 1 comment
Open

Naj imajo vsi skloni vseh števil enako strukturo #4

zigacernigoj opened this issue Jan 22, 2019 · 1 comment

Comments

@zigacernigoj
Copy link

zigacernigoj commented Jan 22, 2019

... da lahko enostavno do vseh dostopaš na enak način - brez pisanja dodatnih pogojev
(spodnja koda je JS)

for (let i in stevila){
  console.log(stevila[i].rodilnik.z)
}

namesto

for (let i in stevila){
  if(Object.keys(stevila[i].rodilnik).length>1){
    console.log(stevila[i].rodilnik.z)
  }
  else{
    console.log(stevila[i].rodilnik.vsi)
  }
}

Testni primer

let stevila =  [
    { "stevilo": 1,
      "imenovalnik": { "z": "ena", "m" : "en", "s" : "eno" },
      "rodilnik" : { "z": "ene", "m" : "enega", "s" : "enega" },
      "dajalnik" : { "z": "eni", "m" : "enemu", "s" : "enemu" },
      "tozilnik" : { "z": "eno", "m" : "enega", "s" : "eno" },
      "mestnik" : { "z": "eni", "m" : "enem", "s" : "enem" },
      "orodnik" : { "z": "z eno", "m" : "z enim", "s" : "z enim" }
    },
    { "stevilo": 2,
      "imenovalnik": { "z": "dve", "m" : "dva", "s" : "dve" },
      "rodilnik" : { "z": "dveh", "m" : "dveh", "s" : "dveh" },
      "dajalnik" : { "z": "dvema", "m" : "dvema", "s" : "dvema" },
      "tozilnik" : { "z": "dve", "m" : "dva", "s" : "dve" },
      "mestnik" : { "z": "dveh", "m" : "dveh", "s" : "dveh" },
      "orodnik" : { "z": "z dvema", "m" : "z dvema", "s" : "z dvema" }
    },
    { "stevilo": 3,
      "imenovalnik": { "z": "tri", "m" : "trije", "s" : "tri" },
      "rodilnik" : { "vsi" : "treh" },
      "dajalnik" : { "vsi": "trem" },
      "tozilnik" : { "vsi": "tri" },
      "mestnik" : { "vsi" : "treh" },
      "orodnik" : { "vsi": "s tremi" }
    },
]
@gregopet
Copy link
Owner

O tem sem razmišljal, veliko pravzaprav, in se odločil za trenutno stanje ker:

  1. je iskanje napak lažje, če je manj teksta (sploh, če tekst berejo netehnični ljudje, npr. slavisti), odprava napak pa je nekako cel point tega repozitorija,
  2. pri veliki večini primerov ni posebne oblike za moški, ženski in srednji spol,
  3. celotna datoteka velika_stevila.json ne potrebuje spolov,
  4. ker se bo celotna koda uporabljala v testih, tam pa imamo ponavadi (no, vsaj jaz 😄) tako ali tako en kup pomožnih metod, ki pomagajo, da so dejanski testi bolj jasni (npr. function getZapis(stevilo, sklon, spol) { .. } - v JS bi bilo morda dovolj dobro že stevila[i].rodilnik.vsi || stevila[i].rodilnik.z?)

Razmišljal sem o tem, da bi dal v repozitorij skripto, ki bi spremenila trenutni JSON v neko kanonično obliko ali pa, da bi to naredil na svoji mašini in zacommital/publishal samo transformirano verzijo (bonus pike, če bi to delal kak CI service avtomatsko). Lahko bi tudi kasneje, ko bomo (recimo) našli vse napake, spremenil strukturo datoteke, ker je trenutno gotovo še nihče ne uporablja in s tem nikogar ne bi prizadanel, učinek na iskanje napak pa bi bil minimalen.

Sem odprt za nadaljno debato in zato puščam tudi issue odprt, ampak zaenkrat je status WONTFIX :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants