Feed reading - melyik nyelv erre a legalkalmasabb (leghibaturobb)?

Fórumok

A problema altalanos: van egy feed (pelda kedveert legyen JSON).

Elso 10 alkalommal pl. ugy nezett ki, hogy:


Item {
  xx : 'valami',
  id : 123
  subItem [
    { 
      id: 11,
      name: 'mas'
    },
    {
      id: 14
      name: 'ezismas'
    }
  ]
}

A fejleszto a feed processort megirta. Soha senki nem mondta neki, hogy a subItem lehet ures. Ezert kihagyta hogy if (empty(subItem)). Par nap utan jott az elso ilyen pelda, ahol ez extrem esetben egy daemont is leallithatott (nem kene, nem nalunk, stb., de akkor is). Tegyuk fel, hogy megprobalja beolvasni minden alkalommal a subItem[0]['id']-t (en nem tennem, de egyutt kell vele dolgoznom). De a sokadik esetben mar subItem[0] sincs, sot, subItem sincs, nemhoigy subItem[0]['id']. Legtobb nyelvben ez
1. fatal error
2. exception

Van-e olyan nyelv, ahol ez ilyenkor betesz valami null-t, ''-t, '0'-t, undefined-ot es fut tovabb? (Esetleg van olyan modja, amiben ez fut tovabb)? Bonusz ha logolja ezeket az incidenseket mint warning valahova (akar stderr-re, mig minden mas stdout-ra megy, akar fajlba, mindegy)

(Igen, tudom, legkesobb mikor adatbazisba mentenel megint elojon a gond, de azt most hagyjuk ki, tegyuk fel hogy arra mar van egy normalis "ha nem sikerult akkor log raw data" implementalva)

Hozzászólások

A PHP-t pont amiatt nem tartják sokra, mert elég megengedő ilyen esetekben. Legtöbb default telepítésben megy tovább a szkript futása és a logba bekerül egy "Undefined index 0" kezdetű sor.

Mi a baj azzal, hogy exception és azt elkapja a fejlesztő, csinál valami alapértelmezett üres objektumot és fut tovább minden?
--
openSUSE - KDE user

én a kotlin felé nézegetnék, valami library-val felparse-olva objektummá, s szigorúan kikötve, hogy minden field nullable.
az utóbbit ki kell erőszakolni code review alatt, vagy másképp, de utána kb. lehetetlen elbaszni, szerintem.

--
blogom

Nem nyelv, de használj protobuf-ot, az minden nyelven szépen lekezeli az üres értékeket, sosem ad vissza nullt.

Amúgy meg a programozó ellenőrizze le, hogy csak olyan mezőbe olvasson bele, ami tuti létezik. Nem a nyelv hibája. Sokkal csúnyább bugokat szülne, ha a nyelv bekamuzna neked valami nem létező üres objektumot a JSON adataid közé. Erre a protobuf esetén is figyelni kell persze.

Uristen, ezert nehogy masik nyelvet keress! O.o Mibe kerul a feed formatumat feldolgozo libet kiegesziteni, hogy az altalad ahitott modon viselkedjen??!

----------------------
"ONE OF THESE DAYS I'M GOING TO CUT YOU INTO LITTLE PIECES!!!$E$%#$#%^*^"
--> YouTube csatornám

Barmelyik nyelv amelyikben van Optional.

Mondjuk azt is lehet force unboxolni, azellen nem ved...

Szerk: meg mondjuk JSON-nal ez nem igazan mukodik a schema hianya miatt, de normalis leiro nyelvekkel ez is megoldhato.