Aktív témák
-
S.P.Q.R.
csendes tag
Hi!
Egy már meglévő topikban merült fel a kérdés, hogy a fejlesztők esteleg beszámolhatnának tapasztalataikról mind pozitív mind negaív értelemben. Továbbá általános jótanácsokat adhatnának mindenkinek, aki erre kiváncsi. Ez a topic nincs nyelvhez kötve, általános programozási ötleteket, eljárásokat, szemléletet stb.. leirását várom mindazoktól, akiknek ezzel tapasztalatuk van. Osszuk meg egymással jó és rossz tapasztalatainkat egyaránt, mindenki közös épülésére, beszéljünk múltbéli hibáinkról és jövőbeli terveinkről is.
Várom a kommeneket
üdv: S.P.Q.R. -
S.P.Q.R.
csendes tag
Amire én eddig rájöttem:
-Mindíg ellenőrizni kell minden bejövő adatot, nem bízok meg a userben.
-Lehetőleg minden függvényt agyonparaméterezek(amelyiket nem annak is megvan az oka)
-OO programing rulzstb...
üdv:S.P.Q.R. -
Kkocos
tag
Nah ha' probald ki a szekvencialis programozast, itt nem erdekell mas csak az epp aktualis parameter a tobbit hanyagolhatod. Az Ok hogy nem bizol meg az operatorban, deh nem muszaj minden modositasat figylembe vedd, csak a mi erdekel
-
vakondka
őstag
Lécci röviden írd le hogy mi a jó a OO programozásban ?
Miért jobb ez mint a sima function-ok meghívása ?Már ezeregy tutorialt olvastam ezzel kapcsolatban, de nem látom az előnyeit,
csak a hátrányát...gondolom azért mert nem értem a lényegét...Előre is köszi a felhomályosítást
https://toptarget.hu - Online Marketing Ügynökség
-
shev7
veterán
amig nem kezdesz el egy osszetettebb projecten dolgozni nem is fogod latni az elonyeit. Ha majd sokezer soros kodod van amin parhuzamosan sok ember dolgozik, elonnye fog valni az OO
''Gee, Brain, what do you want to do tonight?'' ''The same thing we do every night, Pinky: Try to take over the world!''
-
shev7
veterán
nem 1-2 ezer sorosra gondoltam...
melyik reszet erzed bonyolultnak? ha a tervezes soran jol elkulonited az egyes funkciokat, es ennek megfeleloen hatarozol meg objektumokat, akkor sztem sokkal kezelhetobb kodot kapsz.
''Gee, Brain, what do you want to do tonight?'' ''The same thing we do every night, Pinky: Try to take over the world!''
-
Kkocos
tag
Ujabb szavazat az OOP ellen. Ma' ha kozbeszolhatok szerintem POP (Process Oriented Programing), mar ha muszaj obiektumokat letrehozni. Amugy leteznek nyelvek amik nem is tamogatjak az OOP-t. Legjobb tudomasom szerint a Matlab sem (pedig eleg eros nyelv) . Meg a sekvencialis programozastol nem teritettek el.
-
shev7
veterán
ezt a hozzaallast nem szeretem. Mindennek megvan a maga helye. Nem azt mondtam, hogy mindenhez oop-t kell hasznalni. Es olyan helyzet is van, ahol a POP nem jo megoldas.
Ha mar szavazol, elmondhatod mi a problemad vele.
''Gee, Brain, what do you want to do tonight?'' ''The same thing we do every night, Pinky: Try to take over the world!''
-
vakondka
őstag
én "a tervezes soran jol elkulonitem az egyes funkciokat" és per pillanat tök jól megvagyok objektumok nélkül...
mi az amit OOP-val meg lehet csinálni, vagy jobban meg lehet csinálni, mint normál függvényhívásokkal ?
(egyébként nekem az nem egyértelmű, hogy honnan hogyan lehet elérni az objektum változóit...van egy pár verzió és számomra teljes a káosz, hogy miért van ez így megbonyolítva...meg hogy működik ez az extend dolog...meg szóval semmi sem egyértelmű...)
https://toptarget.hu - Online Marketing Ügynökség
-
Kkocos
tag
A problema eleg egyszeru . Meg a tervezesi fazisban eleg magas szinten meg kell erteni a problemat, mert ha nem akkor akadhat olyan problema is ahol a modositas meg tobb modositast igenyel .Ez megnyutja a tervezesi fazist . En jobb szeretek a melyebb reszekbe kesobb belemerulni, igy hamarabb nekiulhetek a dolog legyartasahoz. es nem vesztek el csomo idot a tanulmanyozassal, lehet hogy amig tanulmanyozok kesobb elfelejtem. Most lehet hogy en vagyok a turelmetlen, deh ez nekem eddig bejott. Itt az OOP rol beszeltem.
A szekvencialis programozasnal nincs ilyen gond , akarmikor ujabb secvenciat szurhatok be,es ha legalabb 2-3 secvenciankent ugrokk az elejen ,a kkor nincs semmi gond a kesobbi modositasal, persze erre csak a program jobb atkathatosaga miatt van szukseg[ Szerkesztve ]
-
shev7
veterán
"mi az amit OOP-val meg lehet csinálni, vagy jobban meg lehet csinálni, mint normál függvényhívásokkal ?"
Ilyen nincs. Nem azert lett kitalava, mert jobban lehet vele megcsinalni, hanem azert mert mashogy. A fejlesztest szamomra kenyelmesebbe teszi peldaul azzal, hogy az objektumon kivul nem relevans dolgokat elrejti.
ha semmi nem egyertelmu, akkor nem az oop-vel van gond, hanem a tudasod keves. Mikor elkezdtem tanulni en is felesleges bonyolitasnak lattam. Kerdesedibol ugy tunik, hogy te elkonyvelted magadban, hogy ez fassag, felesleges vele foglalkozni. Viszont amig alap szinten sem erted a koncepciot, addig erdemben nem tudunk rola beszelgetni.
KKocos: nem bantasbol mondom, de a megfelelo tervezes kihagyasa, csak egy bizonyos meretig kontrollalhato. Utana mar visszanyal a fagyi.
[ Szerkesztve ]
''Gee, Brain, what do you want to do tonight?'' ''The same thing we do every night, Pinky: Try to take over the world!''
-
vakondka
őstag
az egy dolog, hogy nem értek hozzá...de nem könyveltem el róla, hogy "fasság".
Épp ellenkezőleg. Látom nap mint nap, hogy a profi programozók ezt használják és szerettem volna megérteni a fő koncepciót...de úgy látom ez ebben a topicban nem jön össze...
...biztos az én hibámhttps://toptarget.hu - Online Marketing Ügynökség
-
shev7
veterán
pedig a fo koncepcio elhangzott. Nagymeretu kod sokkal jobban kezelheto, ha a kod osszetartozo reszeit osztalyokba foglalod. Az osztalyok a kivulrol "lenyegtelen" funkciokat elrejtik. Alap szinten itt ki is merul a koncepcio. Ha ez megvan, akkor lehet olyan extra dolgokkal foglalkozni mint oroklodes, interfeszek stb. De ez tipikusan olyan dolog amit egy forumban nem lehet 3 mondatban osszefoglalni. Nem veletlenul tanitjak az elmeletet egy fel evig az egyetemen
''Gee, Brain, what do you want to do tonight?'' ''The same thing we do every night, Pinky: Try to take over the world!''
-
Kkocos
tag
Szerintem viszont lehet 1-2 dolgott kesobre is hagyni, peldaul olyan problemak megoldasat amit ma' masok megtettek mas nyelvekben, es eleg biztos hogy a kivant nyelven te is megtudsz irni. Ha csak alapszinten utananeztem hogy lehetseges ez, eldonthetem hogy ez a dolog megcsinalhato, ezt elkonyvelem es kesobre halasztom a megcsinalasat.
Nah hogy neh csak a levegobe beszeljek itt van egy konkret pedla. Most dolgozom egy egy progin amit SIMATIC S7-3xx PLC-re irok, Itt van egy problemam. Zenere kelene motorokat vezereljek. A gondom az hogy tul gyors a frecvenciavaltas, es a PLC nem tud Ilyen gyorsan AD converziot csinalni. Azt talaltam ki hogy nem is kell neki, nem WAV vagy MP3zenere fogg menni, eleg neki a MIDI is ,igy ma csak egy MIDI lejatszot kell hogy csinaljak. Nah ez ma' letekiz, nem igenyel gyors es bonyolult szamitasokat, tehat megirhato S7-ben is, most ma' atugorhatom ezt a reszt, kesobre halasztva.
Nah ha en most peddig objektumokat kelenne hogy gyartsak az eleg sokk idot elvenne, igy meg ma' rogton lephetek tovabb, vagy mast is csinalhatok amedig meg alaposabann dokumentalodok.
Nincs IGAZAM???? -
Kkocos
tag
Szerintem viszont lehet 1-2 dolgott kesobre is hagyni, peldaul olyan problemak megoldasat amit ma' masok megtettek mas nyelvekben, es eleg biztos hogy a kivant nyelven te is megtudsz irni. Ha csak alapszinten utananeztem hogy lehetseges ez, eldonthetem hogy ez a dolog megcsinalhato, ezt elkonyvelem es kesobre halasztom a megcsinalasat.
Nah hogy neh csak a levegobe beszeljek itt van egy konkret pedla. Most dolgozom egy egy progin amit SIMATIC S7-3xx PLC-re irok, Itt van egy problemam. Zenere kelene motorokat vezereljek. A gondom az hogy tul gyors a frecvenciavaltas, es a PLC nem tud Ilyen gyorsan AD converziot csinalni. Azt talaltam ki hogy nem is kell neki, nem WAV vagy MP3zenere fogg menni, eleg neki a MIDI is ,igy ma csak egy MIDI lejatszot kell hogy csinaljak. Nah ez ma' letekiz, nem igenyel gyors es bonyolult szamitasokat, tehat megirhato S7-ben is, most ma' atugorhatom ezt a reszt, kesobre halasztva.
Nah ha en most peddig objektumokat kelenne hogy gyartsak az eleg sokk idot elvenne, igy meg ma' rogton lephetek tovabb, vagy mast is csinalhatok amedig meg alaposabann dokumentalodok.
Nincs IGAZAM????
Bocs a duplazaseert!!!![ Szerkesztve ]
-
fordfairlane
veterán
mi az amit OOP-val meg lehet csinálni, vagy jobban meg lehet csinálni, mint normál függvényhívásokkal ?
Mindent meg lehet csinálni globális függvényekkel és globális vagy lokális adatszerkezetekkel, az OOP sem csodaszer. Ami az OOP előnye, hogy keretbe foglalja az adatszerkezeteket, strukturálja, csoportosítja a függvényeket, összerendeli az egymáshoz tartozó funkciókat és adatokat. Másképp strukturál, mint a procedurális programozás, ami elsősorban a megvalósítandó funkciókra koncentrál, nem pedig ezek szisztematikus rendezésére. Ez a módszer összetettebb feladatok megoldásánál jó, mert egyszerűbb programnál fejben is el lehet végezni a programszerkezet felvázolását. Az OOP-t egy konkrét program kapcsán csak akkor lehet jól kihasználni, ha a nyelv OO elemeivel tisztában vagy és rutinosan tudod őket alkalmazni, enélkül inkább csak hátráltató.
[ Szerkesztve ]
x gon' give it to ya
-
shev7
veterán
biztos igazad van, csak nem igazan ertem, hogy mirol beszelsz. Mi az akadalya annak, hogy oop-ben a pillanatnyilag irrelevans dolgokat kihagyva programozz...
#18: mi az, hogy eleg ososztalyba kell beszurni? ez alapveto barmilyen programozasi szemleletnel, hogy amennyire csak lehet keruljuk a kodduplikalast, nem szurjuk be ugyanazt a kodot tobb helyre.
[ Szerkesztve ]
''Gee, Brain, what do you want to do tonight?'' ''The same thing we do every night, Pinky: Try to take over the world!''
-
Kkocos
tag
Nah latodd itt ma' nekem is gondjaim vannak. Nem tom, vagyis nem tom hogy oldanam meg ezt OOP-vel, vagyis ha mejebben belegondolok van megoldas, objektumokat gyartani a lejatszohoz az alapoktol, deh minek.
Melesleg felreertesz nincs nekem bajom az OOP-vel , lehet olyan problema ahol ez (leggalbi szerintem) tulbonyolitja a dolgot, meg lehet oldani nelkule is, meg ha a problema eleg kiterjedt is, neadj isten egy teem dolgozik rajat. Ma' emlitettem a peldat
Az alaposztalyba' vagy az alaposztalybol derival osztalyba. Normalis hogy csak egyszer irod a kodot, deh azt akarhonan meghivhatod, ha ugy csinalod , nem kell ahoz OOP[ Szerkesztve ]
-
shev7
veterán
de nem ertelek tovabbra sem. Van egy olyan pont a programodban ahol majd valamikor meg fogsz hivni egy midi lejatszot. De most meg nem, mert most nincs olyanod. Nem midegy, hogy a fuggveny nincs kesz amit meg kell hivnod, vagy az objektumot nem keszited el aminek a fuggvenyet majd meghivod? mitol bonyolultabb az egyik eset a masiknal?
''Gee, Brain, what do you want to do tonight?'' ''The same thing we do every night, Pinky: Try to take over the world!''
-
amargo
addikt
Nem csak nagyméretű kódok megoldására hasznos az OOP, egy kis péda.
Szerk:
shev7 Aki nincs tisztában az OO szemlélettel szerintem sem érdemes ezzel vacakolnia, mert nem fogja kihasználni, nem ismeri és csak időt veszít vele. Ha úgy érzi meg akarja tanulni, vagy elvárás lesz felé egy biztonságosabb kód, akkor jobban elmélyed.[ Szerkesztve ]
“The workdays are long and the weekend is short? Make a turn! Bike every day, bike to work too!”
-
Kkocos
tag
Meglehet hogy nekem az objektum orientalt programozasban vannak viszonylag nagy tapasztalatsagom, deh ennek az objektumnak mi lesz a szulo objektuma, sot az iterfesze.
Ha fugvenyt hasznalok, sejtem hogy a bejovo parameterem egy adatbazis cime lesz , a kimeno pedig par integer, talan rogton analog jel. No probleno. -
shev7
veterán
ha most ugysem akarsz vele foglalkozni, es nem akarod megirni, akkor ezeket a dolgokat miert akarod most kitalalni?
MOD: nem kell minden osztalynak szulo osztalyt adni (nyugodtan szaramzhat az altalanos os osztalybol, interfeszt meg foleg nem kell neki megadni, ha nincs ra szukseg)
[ Szerkesztve ]
''Gee, Brain, what do you want to do tonight?'' ''The same thing we do every night, Pinky: Try to take over the world!''
-
Kkocos
tag
Tanultam en az OOP-t eleg rendesen, csak a gyakorlatban meg nem igazan hasznaltam. Talan ha majd mas programjat kell hogy javitgassam hasznos lessz ha obijektum orientaltan van megirva. Amedig csak en golgozom egy programom, vagy csak nagyok kis mertekben hasznalok masok altal gyartot programreszleteket addig nem is torom a fejem rajata. Amit en csinaltam azt meg eleg rendesen atlatom.
-
vakondka
őstag
Akkor mondjuk csinálok egy osztályt adatbázis kezelésre és beleteszem a hozzá tartozó függvényeket, egy másikat form kezelésre...stb...?
Nem is akarom, hogy valaki itt tanítson meg nekem egy egyetemi félévnyi tananyagot...
...de ha esetleg tudna valaki egy linket küldeni ahol jó szájbarágósan le vannak írva az alapok azt megköszönném (magyar vagy angol)ui: PHP-hoz kellene
https://toptarget.hu - Online Marketing Ügynökség
-
Kkocos
tag
Megirom en,csak meg varok 5letekre, talan valaki jobb megoldast mond,es addig nem kell hogy torjem vele a fejem, talan nem is hasznalom
Esetleg tudsz jobb megoldast az alapproblemara (csak memoria frisitesul nem tok ilyan gyorsan analog jelet beolvasni mint ahogy az valtakozik)[ Szerkesztve ]
-
shev7
veterán
hat ha az alapok kellenek jo melyen, akkor van a 24ora alatt sorozat. Abbol van php-is. A php-ssal konkertan nem talalkoztam, de a sorozat tobbi kotete nem rossz. Viszont objektumorientaltsagrol nem art altalanossagban is tanulni/olvasni.
''Gee, Brain, what do you want to do tonight?'' ''The same thing we do every night, Pinky: Try to take over the world!''
-
amargo
addikt
Tudom, hogy tudod, nem Neked írtam Csak már vagy 100x átírtam, amit írtam.. köztük, volt hogy csodálom meddig bírod!
Kkocos Ne haragudj, de az hogy tanultad(..) semmit nem jelent, amíg nem használod.
“The workdays are long and the weekend is short? Make a turn! Bike every day, bike to work too!”
-
#95904256
törölt tag
Azzal nem értek egyet hogy nem érdemes bizonyos kódot duplikálva leírni. Jártam már úgy hogy egy önmagát rekurzívan hívó algoritmust kibontva és pár dolgot itt-ott összevonva több mint 50-szeres (nem 50%-os!) sebességnövekedést értem el.
Ipari vezérlőknél meg kifejezetten jól jön mikor az ember szervizesként rákapcsolódik egy masinára és nem ütközik egy "objektum"-ba, hanem on-line minden állapotot és kapcsolatot átlát. Ezzel gyakran pár perc alatt kiderül a hiba, szemben az elegánsabb módszer több órás műtéti idejével. Ez egy olyan masinánál amelynek a termelési értéke óránként akár több száz ezer forint, elég hasznos tud lenni.
szerk.: Ennek ellenére plusz egy pont az OOP-nak, mert elegáns és több agymunkát igényel.
[ Szerkesztve ]
-
shev7
veterán
válasz #95904256 #33 üzenetére
namost a rekurzio kibontasa, meg egy esetlegesen hibas kod tobb helyre valo beszurasa az nem ugyan az a kategoria
az meg hogy milyen modszerrel fejlesztettek egy programot, es a szervizes a szervizterminalon mit lat szerintem nincs kapcsolat... vagy valamit felreertettem a mondandodban.
''Gee, Brain, what do you want to do tonight?'' ''The same thing we do every night, Pinky: Try to take over the world!''
-
#95904256
törölt tag
Na most, feltételezem hogy te sem eleve hibás kódot akarsz írni, így a több helyre való kibontás meg a hibás kód nem ugyan az a kategória.
Valamit félre értettél. Feltételezted hogy a programozó olyan szervizterminállal kínálja meg a szervizest hogy abból minden kiderül és a komolyabb gondok is elháríthatóak. A gyakorlatban ez ritka, mert nem fizetik meg, nincs rá idő. A komolyabb balhéknál a szervizes rászorul arra hogy programozó által kellőképpen nem kicsiszolt programot megigazítsa. Bár legtöbbször csak gányolásnak nevezném ezt a műveletet. ( Tisztelet a kivételnek, mert van ilyen is! )
-
P.H.
senior tag
válasz #95904256 #35 üzenetére
SZVSZ elbeszéltek kissé egymás mellett.
shev7 azt mondja, hogy egy kódot azért nem érdemes egynél több helyen felhasználni közvetlenül, mert »ha« a kód hibás (vagy később módosítani, fejleszteni kell), akkor egyszerűbb egy helyen azt megtenni. Te azt mondod, hogy ha az a (matematikailag ellenőrzött, letesztelt, esetleg valamire kihegyezett stb.) végleges kód, akkor lehet többször is alkalmazni (ez hatékonyabb is), mert ha mégsem az, akkor úgyis újra kell az egészet írni, esetleg tervezni is.
A témához - és amivé vált - hozzászólva: egy jól megírt (hatékony, jól karbantartható) kód eljárásalapú kód előbb-utóbb az OOP-szemlélettel hasonló tulajdonságokkal fog rendelkezni (pl. teljesen mindegy, hogy valamit object.procedure(...) vagy procedure(object,...) alakban írunk, ha a végeredmény ugyanaz lesz; az öröklődés még inkább ilyen, ez szinte megkerülhetetlen; nem véletlen lett kidolgozva az OOP elmélete). Ez csak azon múlik, kinek mi áll közelebb a gondolkodásához. Az első dolog mindenképp az kell, hogy legyen, hogy megértsük a lényegét, azt, hogy mire jó, és mit várunk el tőle. Enélkül üres szövegelés a pro és kontra érv-felsorolás mindkét (OOP és POP) oldalról.
Én pl. nem fognék neki még ma sem OOP-programnak, egyszerűen képtelen vagyok úgy tervezni valamit, hogy annak a központja a feldolgozandó adat struktúrája legyen, ehhez igazítva a kódot, inkább a kódhoz igazítom az adatszerkezetet (talán itt a legnagyobb különbség a kettő között; és az előbbit nem hiszem, hogy csoportos fejlesztésnél meg lehetne tenni komoly kompromisszumok nélkül). De szinte az összes végeredményem teljesíti az objektum-orientáltság követelményeit. És innen visszanézve őket nem mondhatom azt, hogy bonyolultabb lett volna alapból objektumokra alapozva tervezni.
Ez csak szemléletbeli különbség SZVSZ. Van, aki azonnal nekiugrik leprogramozni egy problémát, van, aki hosszú órákat/napokat tud ülni felette, végiggondolva a lehetséges következő elvárásokat, továbblépéseket, a kód jövőbeli életét.
[ Szerkesztve ]
Arguing on the Internet is like running in the Special Olympics. Even if you win, you are still ... ˙˙˙ Real Eyes Realize Real Lies ˙˙˙
-
P.H.
senior tag
(talán itt a legnagyobb különbség a kettő között; és az előbbit nem hiszem, hogy csoportos fejlesztésnél meg lehetne tenni komoly kompromisszumok nélkül)
sorry, utóbbit, nem "előbbit"
[ Szerkesztve ]
Arguing on the Internet is like running in the Special Olympics. Even if you win, you are still ... ˙˙˙ Real Eyes Realize Real Lies ˙˙˙
-
P.H.
senior tag
válasz #95904256 #38 üzenetére
"Vagy úgy gondolta hogy annyiszor bepötyögi?"
Legtöbben ezt alkalmazzák, néhány munkatársam is (sajnos). Nagyban függhet ez attól is, hogy az adott nyelv támogatja-e a makrózást (pl. Delphi tudtommal nem).[ Szerkesztve ]
Arguing on the Internet is like running in the Special Olympics. Even if you win, you are still ... ˙˙˙ Real Eyes Realize Real Lies ˙˙˙
-
#95904256
törölt tag
-
dabadab
titán
"mi az amit OOP-val meg lehet csinálni, vagy jobban meg lehet csinálni, mint normál függvényhívásokkal ?"
Tipikus peldanak szoktak hozni a GUI-t. Az tenyleg pont olyan dolog, amin remekul fekszik az OOP-hez.
Persze, lehet irnit GUI-t sima proceduralis nyelvben is (meg a vegen a C++-bol is gepi kod lesz), de annak ugy is az a vege, hogy az ember OOP programot ir olyan nyelven, ami ezt nem tamogatja, igy a programozo kenytelen kezzel elvegezni egy csomo olyan dolgot, amit OOP kornyezetben a fordito megcsinalna helyette.Ezzel ket problema van: egyreszt a programozo ideje draga (es ezt tessek szo szerint venni) masreszt utalnak ilyen felesleges hulyesegekkel foglalkozni, harmadreszt meg ember, igy tevedhet (lsd mellekelt abra ).
Viszont ez, mint az igazi tudas altalaban, csak masok elmondasabol nem elsajatithato, igazan akkor fogod megerteni, ha majd te is beleszaladsz azokba a problemakba, amikre megoldast nyujt az OOP.
DRM is theft
-
dabadab
titán
Tulajdonkeppen milyen POP nyelvet hasznalsz?... Es hogy tervezed meg az adatstrukturakat, ha nem igazan erted, hogy mit kellene csinalni?...
Ill. szerintem bonuszkent, mielott vki nagyon elkezdene osztani az eszt, vmennyire elmondhatna, hogy mekkora/milyen tapasztalata van, mert egy kicsit ugy erzem, hogy inkabb elmeletben ismered a kerdest
[ Szerkesztve ]
DRM is theft
-
dabadab
titán
válasz #95904256 #33 üzenetére
Milyen hely az, ahol a technikusok belepiszkalhatnak a dolgokba? Azokban a beagyazott rendszereknel, amikkel kapcsolatba kerultem, a technikusoknak sem kepzettseguk, sem lehetoseguk, sem jogosultsaguk nem volt ehhez. Oke, mondjuk egy CNC gep programja eseteben ezt el tudom kepzelni, de barmi rendes programnal?...
DRM is theft
-
P.H.
senior tag
válasz #95904256 #40 üzenetére
Csak egy egyszerű példa: egyszer nézz bele, hogy egy Delphi hogy oldja ezt (truncate float -> int; Delphiben trunc() )
fld dword ptr [value]
call @TRUNC
...@TRUNC:
sub esp,0Ch
fstcw word ptr [esp+00h]
fldcw word ptr [cwChop]
fistp word ptr [esp+04h]
fldcw word ptr [esp+00h]
pop ecx
pop eax
pop edx
retEz mindennapos. Egy 1000-es nagyságrendű, trunc() eljárást hívó ciklus vagy sima rutin esetén is ez van. Nem adna gyorsabb kódot ezt egy InitTrunc() (fstcw+fldcw) - 1000-es ciklus (fld - fistp) vagy rutin - EndTrunc() (fldcw) három makróval megoldani?
Tudom, van Set8087CW Delphi-ben. Vajon megváltozik ettől a trunc() működése?Persze itt nem erről beszélünk, ez az Opt. Manual-ok témája inkább.
[ Szerkesztve ]
Arguing on the Internet is like running in the Special Olympics. Even if you win, you are still ... ˙˙˙ Real Eyes Realize Real Lies ˙˙˙
-
#95904256
törölt tag
Milyen hely az, ahol a technikusok belepiszkalhatnak a dolgokba?
Pedig sok helyen megcsinálják. Nem mindenütt képesek kivárni míg a gép gyári szervíze a helyszínre érkezik. Szélsőséges eset, de előfordult már olyan is hogy hajnalban riasztottak egy bizonyos német cég viszonylag új masinájához, ami felmondta a szolgálatot. Mert ha tovább ácsorog akkor másnap egy bizonyos japán autómárka futószalagjáról nem fognak legördülni az autók. Mint kiderült egy egyszerű felfutó él figyelést kihagyott az illetékes programozó a programból. Mondanom sem kell hogy a bizonyos német cégtől is 8-10 órán belül megérkezett egy tag aki konstatálta hogy minden rendben van...
Valamint megjegyzném hogy idehaza elég ritka hogy 8-10 órán belül a helyszínre ér külföldről egy szervizes. Sokszor napokat is kell várni, így nem csodálom hogy néha egy-két termelésvezető vagy hasonló beosztású mondmeg ráuszítja az embereit a feladatra. Az megint más kérdés hogy többször okoznak kárt mint hasznot...
szerk.: Ja igen. Szervizest említettem, nem technikust. A legtöbb helyen a technikusok félnek hozzányúlni a dolgokhoz ( helyesen teszik ), viszont a mérnök emberek annál vérmesebbek.
[ Szerkesztve ]
-
#95904256
törölt tag
Hm... Lehet hogy a trunc() nem a legjobb példa, mert én SSE3-as FISTTP-et használok in-line, ellenben a szintén in-line ( és valóban nem funkcióhívás ) Delphi / C trunc() megoldással. Ennek ellenére a FISTTP kontra FSTCW+FLDCW+FISTP(+FLDCW) kombó sebességbeli különbsége elég látványos.
Jobb példa pl. egy 64 bites lebegőpontos szám kerekítése ( round() ).
Ezt most szedtem ki egy C kódból:
PUSH ECX
PUSH ECX
FSTP Q[ESP]
CALL RoundDouble
POP ECX
POP ECX
...
RoundDouble:
PUSH ECX
PUSH ECX
FLD Q[ESP+0Ch]
FRNDINT
FSTP Q[ESP]
FLD Q[ESP]
POP ECX
POP ECX
RETEzzel szemben az alábbi négysoros jóval gyorsabb:
SUB ESP,08h
FISTP Q[ESP]
FILD Q[ESP]
ADD ESP,08hszerk.: Természetesen ezt a négysorost lehet makróként is használni...
[ Szerkesztve ]
-
S.P.Q.R.
csendes tag
Hi
Az OO programozás lényege szerintem is, hogy a kódod átlátható keretbe foglalja. Pl függvénykeet, változóidat stb... Én sem tartom csodaszernek, viszont manapság erősen előretört talán a c++ és a java elterjedésének köszönhetően. Viszont többféle megfogalmazás is létezik ez ügyben, hallottam már olyat is idézem: " a c++ nem oo mert lehet használni szabad függvénykeet nincs minden osztályokba kényszeritve, szóval nem kötelező nem úgy mint pl a c#-ban" vagy a javaban. Amúgy nem egészen szószerinti idézet de ezt egy BME-n dolgozó c#-os kollgea modnta, aki nem 1-2 ezer soros programokat irt és nem egyedül, nos én nem értettem egyett mindennel, amit mondott(nem feltétlenül a fenti idézetre gondolok), de kicsinek érzem magam ahhoz hogy vitába szálljak vele.Következő kérdés: A projektben melyik fázisban és mekkora hangsúllyal tervezitek a db-t? Tudom sok modern programnál ez alapvető jelentőségű(tisztelet ami nem használja)...
Amúgy örülök hogy ilyen szépen beindult ez a fórum remélem jókat fogunk itt még dumálni
üdv: S.P.Q.R. -
P.H.
senior tag
válasz #95904256 #46 üzenetére
Round()-ot nem hoztam fel példának, mert az összes Opt. Manual-ban az hozzák fel érvként, hogy a kerekítés az alapértelmezett FPU konvertálás integer-be (a 'la C).
i:=16;
atemp:=round(i);Delphi:
mov eax,$00000010
mov [ebp-$08],esi
fild dword ptr [ebp-$08]
call @ROUND...
@ROUND:
sub esp,08h
fistp qword ptr [esp]
pop eax
pop edx
retFLD/FILD Q[ESP]: float -> integer lenne a mondandó, ez pedig nem az.
Lehet hogy a trunc() nem a legjobb példa, mert én SSE3-as FISTTP-et használok in-line, ellenben a szintén in-line ( és valóban nem funkcióhívás ) Delphi / C trunc() megoldással. Ennek ellenére a FISTTP kontra FSTCW+FLDCW+FISTP(+FLDCW) kombó sebességbeli különbsége elég látványos. Ezzel csak az a baj, hogy én nem sűrűn találkoztam SSE3-képes géppel a célközönségünkben. És holnap annak fogok nekiülni, hogy egy virtualizált, 32 vagy 64 MB memóriával ellátott Linux alatti Wine-s környezet normálisan futtassa a programomat.
Én »jelenleg« SSE2 felett nem szoktam programot írni nagyközönségnek, mert nincs arra képes hardware (csak itthon).[ Szerkesztve ]
Arguing on the Internet is like running in the Special Olympics. Even if you win, you are still ... ˙˙˙ Real Eyes Realize Real Lies ˙˙˙
-
Kkocos
tag
#dabadab : 10x a kioktatast tanaur!
Azert mielott teljesen leirnal, nem elotte utananezek hogy mi a turot is akar csinalni az a lokott program. Fent csak azt mondtam hogy neha nem kell nekiugranni bizonyos procedurak legyartasat, eleg ha csak felmerem hogy lehet megcsinalni, es nem baszakodok vele, ha van fontosabb dogom is, vagy eleg csak az hogy epp most nincs kedvem hozza.
Nah most tapasztalat. Itt igaz csak most alok ra a STEP7 (STL,csak me' jobban szeretem).(+2 ev nem sokk deh ma' nem kontar)[ Szerkesztve ]
-
Kkocos
tag
Azert nem aszontam meg mielott mindenki teljesen ramragasztana hogy az oop ez fassag, csak az eredeti problemara reagaltam, mikent hogy lehet csokenteni a tulparametrizalt programok parametereitt. Nah ezert huztam volna parhuzamot az POP(mint OOP) es secvencialis (es nem feltetlenul proceduralis) programok koze. Mind a 2 ugyanzat meg tudja csinalni!!
[ Szerkesztve ]
Aktív témák
- Melyik tápegységet vegyem?
- BestBuy ruhás topik
- Amlogic S905, S912 processzoros készülékek
- sziku69: Szólánc.
- Luck Dragon: Asszociációs játék. :)
- Házi barkács, gányolás, tákolás, megdöbbentő gépek!
- Wise (ex-TransferWise)
- Vicces képek
- HiFi műszaki szemmel - sztereó hangrendszerek
- Főzőcskés topic
- További aktív témák...