- A hozzászóláshoz be kell jelentkezni
- 5143 megtekintés
Hozzászólások
Ez most API vagy UI:
curl ceg.hu/alkalmazottak
curl -X DELETE ceg.hu/alkalmazottak?Margit
És ez:
sqlite3 ceg.db 'DELETE FROM alkalmazottak WHERE name = "Margit"'
- A hozzászóláshoz be kell jelentkezni
Pont ez a kérdés, hogy pl. egy webszolgáltatás API-ja UI-nak tekinthető-e, hiszen azt egy fejlesztőnek kell használnia.
az sqlite3 egyértelműen UI, hiszen egy CLI parancs, a CLI meg UI, csak karakteres és nem grafikus.
----------------
Lvl86 Troll, "hobbifejlesztő" - Think Wishfully™
- A hozzászóláshoz be kell jelentkezni
A curl is egy CLI parancs.
És az API, amikor a Firefox címsorába írom be, hogy ceg.hu/alkalmazottak?
- A hozzászóláshoz be kell jelentkezni
Ha utána az API neked a Firefox képernyőre értelmezhető, általad szabad szemmel felfogható adatokat rak ki, akkor UI. Ha egy JSON string-et, vagy egy xml-t, akkor API.
- A hozzászóláshoz be kell jelentkezni
De ha a JSON stringet szépen formázza, akkor sokkal olvashatóbb, mint a kocsim forgalmija. Akkor a forgalmi egy API, amit egy szakértő (rendőr) tud feldolgozni?
- A hozzászóláshoz be kell jelentkezni
Igen, a forgalmi olvasásához is kell egy előképzettség, vagy egy eszköz. Annyiban nem API, hogy hát read-only :), maximum lapozgathatod.
- A hozzászóláshoz be kell jelentkezni
Szerintem nincs koze az APInak az irhatosaghoz.
- A hozzászóláshoz be kell jelentkezni
Jogos, viszont akkor kérdés, hogy a forgalmi API-e, nem-e csak egy sajátos formában tárolt adathalmaz, amihez kell egy API, ami esetünkben szimplán egy szaktudás, a rendőr fejében futó program az?
- A hozzászóláshoz be kell jelentkezni
A forgalmi inkább egy DB dump szerintem mint API.
- A hozzászóláshoz be kell jelentkezni
ha jobban megvizsgaljuk (es az egy szinttel feljebbi kommentnek adunk igazat) ezt a dolgot akkor az osszes web alapu UI API lenne nem?
tekintve, hogy a web szerver csak egy HTML-t ad vissza - amit a kliens program amiben nezed szepen formaz ... tehat ebben van teljesen igazad ha egy JSON-t (vagy JSON alapjan egy kimenetet) szepen formazok akkor az API = UI. Nem gondolom, hogy attol dol el, hogy milyen nyelven irodik a kimenet.
Egy lentebbi komment viszont adott egy nagyon jo pontot. Az API-t technikailag nem a felhasznalo (programozo) hasznalja, hanem az o altala elkeszitett szoftver tehat a kozvetlen hasznaloja nem egy user ebbol kovetkezoleg nem UI hanem PI (mint ahogy a neve is az ugye ...)
Szerintem filozofiai vita de talan UI mert vegulis az a szegeny programozo is valoszinuleg hasznalt valamilyen kliens programot (Insomnia, Postman etc.) amikor a fejlesztest vegezte tehat amig maga a programozo kozvetlenul ertelmezi a kimenetet (mivel az szamara ugyanugy olvashato mint egy end user szamara a formazott HTML kod) addig UI, viszont amikor mar csak az altala fejlesztett program kapcsolodik az API-hoz es a programozo nincs jelen a kommunikacio kimenetenel akkor nem UI.
Tehat osszessegeben a valasz igen. UI. (neha)
- A hozzászóláshoz be kell jelentkezni
A fejlesztő nem használja, a fejlesztő által elkészített program használja.
A curl parancsnak a kapcsolóit nevezheted UI-nak, amit kiír pedig a curl kimenete (amit történetesen egy API-tól kapott, na bumm).
--
openSUSE - KDE user
- A hozzászóláshoz be kell jelentkezni
Az API egy függvény- és eljárás halmaz, amit az alkalmazások használnak. A CLI parancs az nem API, az egy eszköz (alkalmazás) ami használja az API-t. A CLI UI-nak tekinthető, az API nem. Szerintem.
--
"Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live." John F. Woods
- A hozzászóláshoz be kell jelentkezni
curl ceg.hu/alkalmazottak
curl -X DELETE ceg.hu/alkalmazottak?Margit
Itt szerintem a Crul UI-ját használod egy webes api meghívására. Tehát a felhasználó az UI-val találkozik, de ismeri az API-t is.
sqlite3 ceg.db 'DELETE FROM alkalmazottak WHERE name = "Margit"'
Itt egyértelműen az SQLITE3 program UI-ját használod egy db művelere...
Nagy Péter
www.ddo.hu
- A hozzászóláshoz be kell jelentkezni
Majd ha az alkalmazások is kaphatnak személyi azonosítót (ID, Passport) akkor jöhet újra a kérdés, és beszélgetünk róla.
- A hozzászóláshoz be kell jelentkezni
Ez hogy jön ide?
----------------
Lvl86 Troll, "hobbifejlesztő" - Think Wishfully™
- A hozzászóláshoz be kell jelentkezni
Nyilván úgy, hogy usernek csak azt tekinthető, aki személyi azonosítóval rendelkezik, egy alkalmazás nem.
--
"Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live." John F. Woods
- A hozzászóláshoz be kell jelentkezni
Szavazás apropója az a vita, hogy az egy dolog, hogy az API-t egy szoftver hív, viszont egy fejlesztőnek kell használnia, ergo az usere végső soron a szoftverfejlesztő, aki egy API-t felhasznál és kommunikál egy másik library-vel, szolgáltatással.
Ilyen szempontból kérdés az, hogy (pl. egy service esetén) maga az API programozói felülete user interface-e?
----------------
Lvl86 Troll, "hobbifejlesztő" - Think Wishfully™
- A hozzászóláshoz be kell jelentkezni
Nezhetjuk ugy is hogy user interface csak nem end user interface :)
- A hozzászóláshoz be kell jelentkezni
Ok, akkor legyen úgy, hogy az "end user" legyen csak egyszerűen user, minden más user az programozó, fejlesztő, egyéb állatfaj. Az nem autó, amiben nincs kormány, csak a helye, és egy fogóval kell tekergetnem a tengelyt. A programozó se állandóan az API-t használja, hanem ráköti a programot, és megy tovább a dolgára. Nyelvileg "use" ez is, de a user az IT-ban nem annyit jelent csak, hogy felhasználó, hanem az, aki nem fejleszt, hanem leül, és amit szabad megnyomja. Meg azt is, amit nem, de az nem a feladata :).
- A hozzászóláshoz be kell jelentkezni
Nem szűkítem end userre és arra sem, hogy egyszer kell-e hozzákötni a programot.
----------------
Lvl86 Troll, "hobbifejlesztő" - Think Wishfully™
- A hozzászóláshoz be kell jelentkezni
Akkor miért szavaztatod meg? :)
A fejlesztőknek szánt program számára a fejlesztő a user, igen, viszont a fejlesztők a lakosság kis százalékát teszik ki, nagyobb rész számára a UI az egy nyomkodható valami, mert nagyobb részük nem is fejleszt.
Van olyan olvasata is a kérdésnek, hogy a UI az általában behatárolt feladatok végrehajtását teszi lehetővé, egy API viszont sokkal nagyobb feladatkört tesz lehetővé, kombinálhatóak az elemei, esetleg még önmagát is át tudod vele alakíttatni, ..., vannak közös elemeik, persze.
- A hozzászóláshoz be kell jelentkezni
Én azt hívnám user interface-nek, amit végfelhasználó (user típusú user) használ :-). Úgy is mondhatjuk, hogy kontextusfüggő.
- A hozzászóláshoz be kell jelentkezni
"az egy dolog, hogy az API-t egy szoftver hív, viszont egy fejlesztőnek kell használnia"
Szerintem nem a használat a fő szempont, hanem hogy ki fogyasztja az UI/API által elérhetővé tett adatot.
Ami emberi fogyasztásra készült, az UI. Ami kód által feldolgozásra, az API. Aztán van az átmenet, amikor te json-t olvasgatsz, vagy a kódod html-t parse-ol.
- A hozzászóláshoz be kell jelentkezni
"Ami kód által feldolgozásra, az API. "
Azt viszont ne feledd, hogy minden API, minden domain modelling valamely szempontból, valamilyen szemszögből modellezi az adott domaint.
És a hívó kód szemszöge más lehet, mint amit az API kitalálóinak a szemszöge.
- A hozzászóláshoz be kell jelentkezni
Nem felejtem. Ezért mondtam azt, hogy mire van szánva. Tehát mire szánta a kitaláló.
- A hozzászóláshoz be kell jelentkezni
Nem. Ugyanis program fogja használni és nem ember.
Az egy dolog, hogy ezt a programot egy ember készíti el, de az, hogy valami API vagy UI, az runtime behaviour, nem compile-time.
Viszont az meg igaz, hogy a kódot (interfészt, absztrakciókat, osztályhierarchiát stb.) nem a gépnek, meg a compilernek írjuk, hanem más fejlesztőknek, akár jövőbeni magunknak.
Ez egy teljesen más aspektus.
Nem felhasználói interfész a kód sem, de a tervezésnél figyelembe kell venni, hogy annak ellenére, hogy gép hajtja végre, ember lesz az, aki olvassa.
Hogy éljek egy hasonlattal: a szöget ugyan a kalapács feje veri be a falba, de a kalapács nyelének a kialakítása teszi lehetővé a szög kényelmes beverését a falba.
- A hozzászóláshoz be kell jelentkezni
"Nem felhasználói interfész a kód sem, de a tervezésnél figyelembe kell venni, hogy annak ellenére, hogy gép hajtja végre, ember lesz az, aki olvassa."
Sokan azt mondják, hogy ez az egyik korlátja az igazán jó programok írásának, nem a gépileg optimálist írjuk meg dokumentációval, hanem a könnyen olvashatót. Filozófiai kérdés is részben, és persze biztos mérhető is ügyesen, hogy a doksi olvasása a költségesebb (munkaidő), vagy a nem annyira hatékony kód általi időveszteség, ahogy látom mostanában a legtöbb helyen a gép az olcsóbb. De ettől még nem fekete-fehér, hogy az emberben nem-e elvárható egy újabb dekódoló réteg, hogy amit látnia kell, az ne "alma + körte" szintű legyen.
A hasonlatod szerintem nem teljesen jó, a kalapács fejét (vagy inkább a hegyét) nem úgy alakítjuk ki, hogy neked kényelmes legyen fogni, van még egy szint absztrakció benne, ahogy a programkódban is lehet kéne legyen.
- A hozzászóláshoz be kell jelentkezni
Lehet, hogy ez korlát, de a gyakorlat azt mutatja, hogy sok szoftvernek hosszú távon karbantarthatónak kell lennie, vagy legalább képesnek arra, hogy alapvető módosítás nélkül hozzá merj nyúlni.
A másik ilyen dolog az, hogy a kódoptimalizálást, amire szabályok vannak, miért agyban akarjuk elvégezni, amikor elvégezheti gép is, ugyanazokat a szabályokat alkalmazva?
Hiszen ezért írunk magasszintű nyelveken, ahol már van olyan alapvető absztrakció, mint lebegőpontos szám, egész szám, karakter adattípus. Igen, maga az adattípus is egy absztrakció, hiszen a gép csak memóriacímet meg bitmintát lát, bármikor összead neked két memóriaelemet, akkor is, ha az egyik egy karaktert, a másik meg egy lebegőpontos számot tartalmaz.
Azért vezettünk be egyre magasabb szintű absztrakciókat, hogy egyre több minden dolgot írhassunk le úgy szoftverrel, hogy nem kell hozzá iszonyatos embertömeg és dokumentáció.
Egyszerűen szólva: a gépi kód írása nem skálázható.
Például nem dokumentálod le memóriacímek szerint a tárolt adatok típusát, mert nem kell - elvégzi helyetted a compiler.
A harmadik ilyen dolog a villamos-kompatibilitás: ha abban bízunk, hogy vna a cégben pár zseni, aki átlátja a kódbázist, és nélkülözhetetlenek a rendszer működtetéséhez, mert optimális kódot írnak, amit amúgy junior programozók képtelenek, akkor ha ez a pár zseni nyugdíjba megy, elüti a villamos, megveszi egy másik cég, vagy bármilyen más okból nem elérhető, akkor bukott a mutatvány.
Egyszerűen a gépileg optimális kód írása nem skálázható olyan mértékben, amit szeretnénk. Nem csak költségről van itt szó, hanem lehetőségekről is.
- A hozzászóláshoz be kell jelentkezni
Amit írsz azzal egyetértek, nem indultam el abba az irányba ilyen mélyen, hogy a széleskörben elterjedő megoldások általában nem optimálisak, hanem rugalmasak, általánosak, és hogy az optimális az nem skálázódik. Honnan is indultunk? :)
- A hozzászóláshoz be kell jelentkezni
Igen, csakhogy a "kényelmes beverésre" pont azért van szükség, mert lesz mögötte egy user, aki azt a szöget be akarja verni és ezzel máris eljutunk az API UI-e és kell-e, hogy user friendly legyen-e kérdéshez.
----------------
Lvl86 Troll, "hobbifejlesztő" - Think Wishfully™
- A hozzászóláshoz be kell jelentkezni
Az hogy user friendly nem fekete-fehér kérdés, egy SQL lekérdezés megírásához kell ismerni azt a nyelvet, ez van, nem nem-user-friendly, hanem van egy előkövetelmény. Látom hol lehet belekötni mindkét végletbe, de szerintem a user friendly-ség sem értelmezhető előkövetelmények nélkül, pár éve a fél világ rühellte az érintős dolgokat, majd pár év alatt tök természetes lett. De egy rakás félretárcsázás, hopp-töröltem-bocsi, ésatöbbi volt előtte.
- A hozzászóláshoz be kell jelentkezni
Amúgy nem igazán tudom értelmezni, hogy egy API-ról mi alapján lehetne eldönteni, hogy user-friendly-e az API vagy nem.
Minden egyes API elemnek (osztálynak, interfésznek, metódusnak, paraméternek) értelme és célja van.
Mégpedig az, hogy valamely szempont szerint modellezzen egy domaint, a benne lévő elemeket és műveleteket. Azaz ebben sehol nincs benne, hogy az API user friendly legyen, hiszen az elterelné a lényegről a figyelmet. Ha például a user friendlység miatt kihagyunk valamit az API-ból, akkor előfordulhat, hogy a keletkező API-val már nem tudunk leírni valami olyan folyamatot, amit le kellene. Így maga a user friendlység sok esetben nem cél.
Hogy egy hasonlattal éljek: a GNOME 3 UI lehet, hogy user friendly, de sok mindennek a lehetőségét meg is vonja a felhasználótól.
Ettől még lehet cél az, hogy a gyakori felhasználási eseteket könnyen lehessen kifejezni az API-val (tipikusan: értelmes defaultok használata), míg a többi esetet is ki lehessen ugyan fejezni, de dolgozni kell hozzá. Hogy egy közismert elv alapján mondjam: a Pareto-elvet lehetne szem előtt tartani, aka 80-20-as szabályt (természetesen lehet ez 70-30 is, csak szemléltetés a lényeg): az API használati lehetőségeinek 80%-át leíró hívó kód mérete, meg a 20%-nyi lehetőségeket leíró hívó kód mérete álljon 20-80 arányban.
Erre már lehetne azt mondani, hogy ez az API user friendly valamilyen szempontból.
De amíg nem mondod meg, hogy mit értesz az alatt, hogy user friendly egy API, vagy nem, addig nem értelmes a kérdés szerintem.
- A hozzászóláshoz be kell jelentkezni
>> egy API-ról mi alapján lehetne eldönteni, hogy user-friendly-e az API vagy nem
Mikor még programoztam, az olyan API-t szerettem ami jól dokumentált volt hogyan kell felhasználni, és ami elég sokoldalú volt (változatos szignatúrák)
- A hozzászóláshoz be kell jelentkezni
"Amúgy nem igazán tudom értelmezni, hogy egy API-ról mi alapján lehetne eldönteni, hogy user-friendly-e az API vagy nem."
Azért ne mond már, hogy nem találkoztál még olyan API-ról, amire első percben azt mondtad, hogy totál agyfasz, ahogy használni kell és lehetne sokkal egyszerűbb is.
----------------
Lvl86 Troll, "hobbifejlesztő" - Think Wishfully™
- A hozzászóláshoz be kell jelentkezni
Az UI ember–gép kapcsolat, míg az API gép-gép kapcsolat célját szolgálja.
- A hozzászóláshoz be kell jelentkezni
+1
Pontosan. Minden API adat egy masik gepnek szol, A CLI, UI, GUI, pedig ember-gep kommunikaciora valo.
Az, hogy az API mennyire olvashato formatumban ad vissza adatot az ember szamara, az irrelevans sztm.
- A hozzászóláshoz be kell jelentkezni
(x) Egyéb
Simán el tudok képzelni olyan helyzetet, amikor egy API kifejezetten egy végfelhasználói csoportnak készül, pl. egy self-service BI megoldásban való összekattintgatásra, mint ahogy olyan API is van bőven, amit csak az adott projekt fejlesztői használnak házon belül.
Tervezéskor érdemes lehet figyelni ezekre a különbségekre.
- A hozzászóláshoz be kell jelentkezni
Ez olyan, mint amikor van egy API, ami XML-ben kommunikál feléd, de van hozzá egy XSLT, az már UI, valahol a széles felhasználói közönségtől elvárható előképzettség szintje határozza meg, hogy még kell hozzá szakit hívni, vagy mindenki érti akinek kell. A szaki dolga meg az, hogy ami még nem érthető, azt tegye érthetővé.
- A hozzászóláshoz be kell jelentkezni
Mi dev interfésznek hívjuk, néha megtervezzük.
UI alatt értünk akár TUI-t (Text UI, pl. ncurses v CLI), VUI-t (Siri, Alexa, stb), vagy chat UI-t is, esetleg VR vagy MR UI-t, de többségében GUI.
Ezek egy részét tanítom, cégbe néha beesik mindenféle.
De az API-t ritkán használja végfelhasználó, azaz olyan ember aki a rendszert saját céljaira használja, nálunk meg az a nagy kérdés, hogy ki az interfész a valóvilág és a digitális lét közt.
- A hozzászóláshoz be kell jelentkezni
Én inkább API-nak szeretném tekinteni a UI-t. Az eszközök/szolgáltatások túlnyomó többségénél egyáltalán nem figyelnek rá, hogy lehessen API-ként is használni. Jó példa sok CLI program, ami tud interaktívan működni, de ha akarod, akkor egy script-be berakva is megállja a helyét. Azt szeretném, ha minden így működne és bármi köré rittyenthetnék scripteket. Bili és a kéz esete...
- A hozzászóláshoz be kell jelentkezni
Időről-időre felmerül nekem is egy-egy program, amit nagyon jó lenne használni script-ben, imádnám, ha minden valójában GUI + CLI lenne valahol :) (bár mostanában a legtöbb ilyen dolgot .ahk-val megoldottam, vagy írtam helyette sajátot gyorsan).
- A hozzászóláshoz be kell jelentkezni
Operációs rendszernek tekinthető-e a C?
- A hozzászóláshoz be kell jelentkezni
+1
:)
- A hozzászóláshoz be kell jelentkezni
ott a pont
- A hozzászóláshoz be kell jelentkezni
Egy jo apit kenyelmes hasznalni, tomor, hosszu tavu, egyertelmu, egyertelmu hibauzeneteket ad, stb stb.
Ha nem tekinted user interfacenek, akkor a fentiek nem biztos, hogy prioritasok lesznek.
Az api felhasznaloja a programozo, szamara kell kenyelmesse tenni a hasznalatat.
- A hozzászóláshoz be kell jelentkezni
Pl.
User = fejlesztok
Interface = ahogy elerik az alkalmazast
Nem is ertem, miert ne lenne UI egy API barki szamara. Csak a celcsoportot kell nezni.
- A hozzászóláshoz be kell jelentkezni
Ha az API fejlesztoje kikoti, hogy az o altal keszitett felulelettel hasznalhatod az o API szolgaltatasat, akkor melyik?
- A hozzászóláshoz be kell jelentkezni
Akár feketeribizlinek is tekinthető.
Ha nem vagy REST leprogramozni.
- A hozzászóláshoz be kell jelentkezni