Kezdőoldal » Számítástechnika » Programozás » A perfekt kód vajon lehetséges?

A perfekt kód vajon lehetséges?

Figyelt kérdés
Azon töröm a fejem, hogy ha az MI vagy AI nekiáll programokat generálni, akkor képessé lehet a saját programjainak tökéletesítésére is. Lefordíthatja, kitesztelheti, akár a tökéletességig fejlesztheti a maga programjait. Ha ehhez hozzáadódik a számítási teljesítmény növekedése, akkor ez a kettő együtt végképp kinyírhatja ezt a szakmát, vagy van esélye a programozói társadalomnak a túlélésre? Ki mit gondol erről?

2023. okt. 9. 02:34
1 2 3 4 5
 31/42 anonim ***** válasza:
90%

Miért rossz ötlet a cacheelés? Számos területen bevett módszer. Nem kell messze menned, a böngésződ is alkalmazza. A gyorsabb böngészési élmény érdekében több tárhelyet használva tárol el adatokat, hogy azokat ne kelljen újra letöltenie.


A második hozzászólásoddal már kapizsgálod a lényeget:

Amikor szoftvert fejlesztes számtalan szempontot kell figyelembe venni: futásidő, memóriahasználat, biztonság, ergonómia, karbantarthatóság, skálázhatóság, kompatibilitás és még sorolhatnám. Ezek sok esetben csak egymás rovására fejleszthetőek.

Természetesen az adott program céljától függően a különböző szempontok különböző fontosságot kapnak. Pl egy asztali windows alkalmazásnál nem túl hangsúlyos szempont a memóriafelhasználás, annál fontosabb, hogy felhasználóbarát legyen. Egy beágyazott rendszernél meg jellemzően a művelet- és memóriaigény kritikus.


Az pedig a fejlesztők döntése, hogy az adott szempontokat figyelembevéve milyen döntést hoznak. Mi például sokszor beszélgetünk arról, hogy az adott esetben mennyire áldozhatjuk be a futásidőt a karbantarthatóságért cserébe.


Na és pont ezért nincs optimális kód. Ami bizonyos szempontból optimálisabb, az másik szempontokból nem lesz az.

2023. okt. 11. 15:38
Hasznos számodra ez a válasz?
 32/42 gentoojedi ***** válasza:
92%

Csak szólok kérdező, hogy akivel arcoskodsz, egy olyan rendszermérnök pozícióban dolgozó valaki, akinek olyan certjei vannak, aminek a neve Neked nem is mond semmit.


Itt aki szénné égette magát az Te vagy.

2023. okt. 11. 16:01
Hasznos számodra ez a válasz?
 33/42 anonim ***** válasza:
91%
Csávókám fullban tolja a Dunning-Kruger csúcskretént, de még rá is herbálozott.
2023. okt. 11. 17:00
Hasznos számodra ez a válasz?
 34/42 A kérdező kommentje:

#31


Egyszer, ha lehetőséged adódik, kérdezz meg valakit, hogy az olyan játékprogramokat, mint pl. a GTA, hogyan fejlesztik és akkor majd képbe kerülsz magával a tervezés folyamatával. Azzal is olyan szinten, ahogy annak lennie kellene, szinte mindenhol.


Dióhéjban, nagyjából úgy történik ez, hogy meghatározzák az igényeket, azok kivitelezhetőségét. Ezután dekompozícionálják a feladatot, tehát részekre bontják és súlyozzák a tennivalókat. Kiszámolják a dolog hozzávetőleges hardverigényét és ebből meghatározzák a céhardvert. Azt az eszközt, vagy eszközök együttesét, amin a produktumnak futnia kell.

Ez adott esetben egy fix kombó (konzol), más esetekben (PC gaming, CAD, stb.) ennek csak egy minimuma.

Az eredmény meghatározza, hogy milyen számítási teljesítményű processzort és milyen kapacitású operatív tárat (egyebeket (pl, ROM mérete, sebessége, GPU, LAN tipusa, topológiája, átviteli keresztmetszete)) igényel a tervezés (mármint a tervező csoport).

Ha ez megvan, akkor erre osztják ki a feladatokat, ami annyit tesz, hogy minden fejlesztői alcsoport kap a saját feladatához bizonyos mennyiségű memóriát, bizonyos mennyiségű számítási kapacitást és ha a feladat igényli, akkor az ahhoz szükséges perifériális támogatást. Ez az erőforrás kiosztás általában kevés szokott lenni és emiatt megy a harc az alcsoportok között, hogy ki tudjanak a tervezőktől lobbizni maguknak még egy kis pluszt.

A válasz általában elutasító, vagy ledegradáló, hogy azért kell nekik a plusz, mert szakmailag kevesek a feladathoz, ami arra ösztönzi a fejlesztőket, hogy jobban odategyék magukat, de ha a határidő szorít, akkor előfordul, hogy megkapnak az igényelt erőforrásokból valamennyit, pláne, ha van is honnan elvenni. Az egészet nem, mert az annak beismerése lenne, hogy hibás volt a tervezés. Olyan is megtörténik, hogy a kényes részt maga a tervező csoport fejleszti le.

2023. okt. 11. 17:06
 35/42 anonim ***** válasza:
88%
GTA, really?
2023. okt. 11. 17:22
Hasznos számodra ez a válasz?
 36/42 anonim ***** válasza:
100%
Köszönöm, hogy ezt megosztottad velem. Akkor most azt is elárulnád, hogy ez hol mond ellent annak, amit írtam?
2023. okt. 11. 17:24
Hasznos számodra ez a válasz?
 37/42 anonim ***** válasza:
100%
A Cache technikával mi a problémád? Mi a bajod vele? Ezt fejtsd ki mert nem értem.
2023. okt. 11. 19:57
Hasznos számodra ez a válasz?
 38/42 anonim ***** válasza:
91%
Szerintem annyi, hogy a youtubeon nem említették neki.
2023. okt. 11. 20:06
Hasznos számodra ez a válasz?
 39/42 anonim ***** válasza:
100%

Zűrzavaros kicsit.

Akkor egy "alap példa" a cache-re és várom a kommenteket. Egyik alapfeladat még a ciklusok elején: jelenítsd meg a képernyőn az első 1000 db. prímszámot. Most csak a feladatot röviden írom le. A külső ciklus megy addig ameddig a megtalált prím számok darabszáma kisebb, mint 1000, és léptet 2-ével egy változót ami lesz a "p" vizsgált változó (erről kell eldönteni, hogy prím-e). A belső ciklus (o) pedig 3-tól megy 2-esével négyzetgyök (p)+1-ig, és megnézi p/o osztási maradékát, ha az 0 akkor osztható -> tehát a szám nem prím (és akkor a belső ciklust abba is lehet hagyni).

Ez az alap változat.


Ha egy primek tömbbe elrakjuk az addig megtalált prímeket (ez itt most egy 1000 elemű tömb lesz (2 kbyte ha takarékosan tároljuk, 4k ha kevésbé). és az oszthatóság vizsgálatot nem 3-tól kettesével vizsgáljuk gyök(p)-ig hanem a megtalált prímszámokkal.


Csak az utolsó futást nézzük. (most puskázunk, az 1000. prímszám 7919).

Gyök(7919)->89 (ez +1 90) a belső ciklus 45x fog lefutni az első esetben.

Ha eltároltuk a prímeket akkor csak 24x (a 89 a 24. prím szám). Gyakorlatilag fele lépés számból megvan, és cask 4kbyte plusz memóriát használtunk. És itt még csak 1000 darabról van szó! És egy egyszerű feladat.

2023. okt. 11. 20:20
Hasznos számodra ez a válasz?
 40/42 A kérdező kommentje:

Nagy adatforgalmú rendszerekben, ahol várható, hogy bizonyos adatok esetén megnő a hozzáfordulás esélye, minden további nélkül lehet valami puffer, cache. Rendezett listák állításánál hétköznapi dolog az ilyen. Ki lenne olyan hülye, hogy napi százezres látogatószámnál újra és újra generáltatja az ár szerint emelkedő sorrendet? Senki. Ezzel, hogy cache, nincs semmi baj. Magával a hozzáállással van baj. Azzal, hogy ki lett jelentve, ha így, akkor így optimális, ha úgy, akkor meg úgy. Idézem:


"Mi az optimális? Ha csak a műveletigény és memóriahasználat vonalon mozgunk, akkor is elmondható, hogy egy bizonyos szint után ezek egymás rovására fejleszthetőek csak. Példa: elcachelsz adatokat, hogy megússzad, hogy később újra ki kelljen számítani, így a programod gyorsabb lesz, de nagyobb lesz a memóriaigénye)"


Ilyen nincs. Ilyen nem lehet. Ilyen dilemmába nem eshet senki.


Ha épül egy rendszer, amiben adattömböket kell majd szortolni, akkor igenis el kell dönteni, hogy a felhasználás során mi lesz az optimális. Tudni kell, hogy milyen adatokon fognak a szortoló műveletek futni és mifélék legyenek azok a műveletek, ergo, milyen legyen a szort rutin.

Ha idővel az adatok megváltoznak és emiatt az implementált szort rutin deficites lesz, akkor annak az oka egy külső körülmény és nem a program megfelelőségének a hiánya.

Na de csak emiatt (hogy majd egyszer, talán lehet valami változás és akkor milyen jól jön), cache-t, puffert beépíteni a fejlesztésbe nem érdemes és nem is szabad.


Ehhez a prime numberes példához azért nem szólok hozzá, mert kissé pongyolán vannak meghatározva a keresővel szemben támasztott elvárások. Vitaalapot meg nincs kedvem generálni.

2023. okt. 11. 21:24
1 2 3 4 5

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!