ugrás a tartalomhoz

Object-Oriented Programming for Heretics

Hidvégi Gábor · 2013. Okt. 23. (Sze), 15.54
Egy alternatív megközelítés
 
1

Jajj :)

BlaZe · 2013. Okt. 23. (Sze), 18.55
So my question is this - if I can achieve exactly the same result without using interfaces, then what is the benefit of using them? Why should I waste my time writing more lines of code than is necessary?

Jajj...

After doing a little investigation I discovered the following comment regarding interfaces:

Statically typed languages such as C# and Java REQUIRE interface declarations.
Dynamically typed languages such as PHP do not.

Megint jajj... Az első valószínűleg csak tapasztalatlanság, ez viszont szimplán nem is igaz.

Having personally witnessed the advantages of writing and maintaining code which has the same structure as the data I simply would not consider doing it any other way, so when someone tells me that this approach is wrong I can only say - BALDERDASH! POPPYCOCK! PHOOEY!

:) Egyrészt sok eset van, amikor a tárolási struktúrától célszerű eltérni, vagy kibővíteni azt, amikor dolgozunk az adatokkal. Másrészt ha erősen a tárolási struktúrától függ a program szerkezete, és azt valamiért meg kell változtatni, akkor mi van? Pl nincs sql. Vagy más sql engine kerül alá, amiben kicsit máshogy működnek a dolgok? Átírja az egész programot?

Csak átfutottam, de azért ebbe bőven sok helyen bele lehet kötni. Kicsit olyan "minél hangosabban mondjuk, annál többen elhiszik" a stílusa az egész irománynak. És mondjuk amilyen tisztelettel beszél egy Martin Fowlerről... Nem azt mondom, hogy aki nem ért vele mindenben együtt, az hülye, de azért vitázni is lehet stílusosan, ez meg inkább bicskanyitogató itt-ott.
2

Egyrészt sok eset van, amikor

Hidvégi Gábor · 2013. Okt. 23. (Sze), 20.15
Egyrészt sok eset van, amikor a tárolási struktúrától célszerű eltérni, vagy kibővíteni azt, amikor dolgozunk az adatokkal.
Tudnál erre példát hozni, hogy értsük, mire gondolsz? Valamint rá tudnál-e mutatni arra, hogy a cikkben hol van leírva, ami kizárja ezt a lehetőséget?

A többi felvetésedre ott vannak a válaszok az írás második felében.
3

Tudnál erre példát hozni,

BlaZe · 2013. Okt. 23. (Sze), 21.50
Tudnál erre példát hozni, hogy értsük, mire gondolsz?

Pl az adatbázisban különböző normalizációs, vagy optimalizációs okok miatt valami hiába összetartozó adat, külön táblába kerül. Gondolj pl a különböző partícionálás megoldásokra. Vagy amikor nem csupán az adatbázis leképezése az adat, hanem még más adatforrásból mellé kell tenni valamit (xml, web service, akármi). Úgy általában, az adatbázis tartalma önmagában csupán adat, amit az azt használó program tesz értelmessé, feldolgozhatóvá stb. Ha innen nézed, elég fura megközelítés egy feldolgozó/értelmező programot egy külső adatszerkezettől függővé tenni. Sokkal több értelme van annak, hogy a program magában, egy saját, belső reprezentációs adatszerkezeten tud jól dolgozni, és van egy másik programrész, ami a külső adatforrásokat képes a belső adatszerkezetre alakítani. Ez persze lehet egy egyszerű másolás is, ha éppen annak van értelme.

Valamint rá tudnál-e mutatni arra, hogy a cikkben hol van leírva, ami kizárja ezt a lehetőséget?

Az idézett mondat nem épp azt sugallja, hogy szerinte ezt jó máshogy csinálni :) De valóban, ki nem zárja.
4

Már a címből tudtam, hogy te

szjanihu · 2013. Okt. 24. (Cs), 22.58
Már a címből tudtam, hogy te küldted be.

When designing an application which uses a relational database it is essential that the database be properly normalised otherwise its performance may be catastrophic.
- hülyeség

In this set of circumstances I have just two classes - one for DOG and another for DOG_TYPE. An advantage to this method is that I do no have to create a new subclass if I want to deal with a new type of dog - I simply add a new record to the DOG_TYPE table.
- hülyeség

So my question is this - if I can achieve exactly the same result without using interfaces, then what is the benefit of using them? Why should I waste my time writing more lines of code than is necessary?
- hülyeség

Miért kell ilyenekkel teleszemetelni ezt az oldalt? Nagyon fárasztónak találom, hogy a "polgárpukkasztó" hozzászólásaidat, blogmarkjaidat kell olvasnom. Igen, kell, mert az oldal az arcomba nyomja. Ha az enyém és a hozzám hasonlók érdekében összeütnél egy js-t, extensiönt, stb., ami a böngészőmben elrejti az összes tőled származó tartalmat, akkor hajlandó lennék fizetni is érte. De még jobb lenne, ha a kezdők és mindnyájunk fejét nem tömnéd az ehhez hasonló sületlenségekkel.
5

Finomabban!

Pepita · 2013. Okt. 25. (P), 03.26
Már ne haragudj, de ez egy szakmai fórum, Gábor jó szakember, noha van amiben "kilóg a sorból", ez nem feltétlenül jelenti azt, hogy tök rossz, amit csinál.
Ugyanúgy hangot adhat az ő szakmai véleményének, mint te vagy én.
Az, hogy az idézeteid után odaírkáltad: "hülyeség", nem szakmai, hanem kb. érzelmi vélemény. A szakmait szokás indokolni. :)
De nem ez a fő gond.
Miért kell ilyenekkel teleszemetelni ezt az oldalt?
Attól, hogy nem értesz egyet vele, még nem szemét. Ha az lenne, Ádám kidobná.
Nagyon fárasztónak találom, hogy a "polgárpukkasztó" hozzászólásaidat, blogmarkjaidat kell olvasnom.
Akkor ne olvasd. Én sem olvastam el a cikket a címe alapján, nem is véleményeztem - ennyi. Mi fáraszt? Lépd át és kész.
Igen, kell, mert az oldal az arcomba nyomja.
Fenét kell. Te figyelsz fel rá, felzaklat, semmivel sem volt kiemeltebb, mint bármely másik friss tartalom.
Ha az enyém és a hozzám hasonlók érdekében összeütnél egy js-t, extensiönt, stb., ami a böngészőmben elrejti az összes tőled származó tartalmat, akkor hajlandó lennék fizetni is érte.
Miért nem írod meg te? Ekkora szaki vagy, és Gábort fikázod? Egyáltalán tudsz annyit az OO paradigmáról, mint Gábor? Nem feltétlenül tudatlanság ám, ha valaki valamit ellenez! Tény, hogy szerintem Gábor jópár OO előnynek nem ismeri (vagy nem ismeri el) kellőképpen a hasznát, de még én is fenntartom a lehetőségét annak, hogy akár igaza is lehet. Egy csomó helyzetben én is kapásból nem OO programozok, pl. crontab-al futtatott PHP szkript többnyire olyan rövid és folyamatvezérelt, hogy felesleges, néha még előszedem assembly-t is, Delphiben is volt amit fv-tárként írtam meg (tiff kép feldolgozás, nincs rá komponens, és én sem azt írtam) és sorolhatnám. Messziről nézve sem vagy azon a szakmai szinten, hogy így bíráld, a stílusról nem is beszélve.
De még jobb lenne, ha a kezdők és mindnyájunk fejét nem tömnéd az ehhez hasonló sületlenségekkel.
A moderálást / rendreutasítást bízd a moderátorokra légyszi, amellett a vastagított rész helyére elegendő lett volna, ha azt írod: "mindnyájunk". Azt hiszem - javíts ki ha tévedek! - nem olvastam még tőled komolyabb szakmai megnyilvánulást. Gábortól viszont többet is.

Kérlek tartsd tiszteletben, hogy mindenkinek meg lehet a saját szakmai véleménye, és ezt ne keverd össze Gáborról "alkotott" személyes véleményeddel! Ha érdekel, ha nem: nálam magadat minősítetted igen negatívan ezzel a hozzászólásoddal. Ez a felesleges, nem a blogmark.

Javaslat: indokold meg mindegyik "hülyeség" feliratodat, okosan, "kezdőknek is érthetően", akkor látni fogjuk a hozzáértésedet - és az egészből hagyd ki Gábor személyét, mert ugyanezt beküldhettem volna akár én is. Nem személyfüggő a szakmai kérdés, személyeskedni pedig itt - tudtommal - nem illik.
6

"Attól, hogy nem értesz egyet

pp · 2013. Okt. 25. (P), 06.34
"Attól, hogy nem értesz egyet vele, még nem szemét. Ha az lenne, Ádám kidobná."

Ha ez igaz lenne, akkor ez a három hozzászólás (az enyémmel együtt) menne a levesbe.

pp
17

Ha ez igaz lenne, akkor ez a

Joó Ádám · 2013. Okt. 25. (P), 12.45
Ha ez igaz lenne, akkor ez a három hozzászólás (az enyémmel együtt) menne a levesbe.


Ádám pedig megkapná, hogy véreskezű zsarnok.
33

Jó :)

Pepita · 2013. Okt. 26. (Szo), 06.32
Vagyis: Joó :)
Mindkettő.
10

Ha nem olvastál tőlem szakmai

szjanihu · 2013. Okt. 25. (P), 08.46
Ha nem olvastál tőlem szakmai megnyilvánulásokat, akkor sajnos nem figyeltél eléggé.

Kérlek tartsd tiszteletben, hogy mindenkinek meg lehet a saját szakmai véleménye, és ezt ne keverd össze Gáborról "alkotott" személyes véleményeddel!
- Gáborról a kialakult véleményem kizárólag szakmai, semmi mást nem tudok róla.

Mint egy másik threadben leírtam, nem fogok arról vitatkozni, miért jó interfészeket használni (illetve más ehhez hasonló épületes baromságokról).
34

Linkelnél néhány komolabbat?

Pepita · 2013. Okt. 26. (Szo), 06.35
Ha nem olvastál tőlem szakmai megnyilvánulásokat, akkor sajnos nem figyeltél eléggé.
Pár olyat kérnék, ami szerinted komolyabb.
42

Nézz utána, ha érdekel

bamegakapa · 2013. Okt. 26. (Szo), 12.33
Bár csak 5 percet töltöttem vele, de úgy tűnik, többnyire szakmai kérdésekben nyilvánult meg. Nem értem, mit akarsz ezzel elérni. Mégis miért kéne neki bizonygatnia neked bármit is? Mit jelent az, hogy komolyabb? Ki dönti el?

Publikálhatnád nézeteidet azzal kapcsolatban, hogy kinek a hozzászólásait szabad komolyan venni a Weblaboron és kiét nem. Hány darab és milyen hosszúságú hozzászólás szükséges, és mennyi szakszónak kell szerepelnie mondatonként, hogy valaki elmondhassa a véleményét?
47

:)

Pepita · 2013. Okt. 26. (Szo), 15.41
-- Moderáltam magam :) --
14

Gábornak különös tehetsége

tgr · 2013. Okt. 25. (P), 12.28
Gábornak különös tehetsége van az olyan szerzők megtalálásához, akiknél a zavaros gondolkodás túlzott önbizalommal társul. Sajnos ezek nem a legjobb alapok a bevett paradigmák megkérdőjelezésére, ami egyébként hasznos tevékenység is lehet.

A posztot átfutva (nem úgy néz ki, mintha megérné a fáradságot alaposabban olvasni - sok bullshit, zéró kód, hosszú és rosszul strukturált szöveg, aminek minden második szava újabb hosszú és rosszul strukturált szövegekre linkel) úgy tűnik, hogy hogy a szerző írt valami viszonylag fapados active record-szerű rendszert, ami az ő céljaira megfelelt, és mélyen meg van győződve róla, hogy nem lehet olyan dolog a világon, ami ezeknél a céloknál komplexebb (a honlapja alapján elég középszerű cégeknek dolgozott). Mivel az ő rendszere neki megfelel, következésképpen tökéletes is, és semmi olyan tervezési döntés nem lehet benne, ami nagyobb komplexitás esetén kezelhetetlenné válna. Ez a gondolkodási minta egyébként Gábortól sem idegen :)
18

Rátapintottál a lényegre, a

Hidvégi Gábor · 2013. Okt. 25. (P), 12.50
Rátapintottál a lényegre, a szerző középszerű, átlagos cégeknek dolgozott.

Az átlagprogramozó (= a legtöbb) is átlagcégeknek dolgozik, átlagfeladatokat old meg. Egy átlagos weboldalnak, szolgáltatásnak nincs szüksége különösebben bonyolult üzleti logikára, hanem egyszerű CRUD műveletekkel meg lehet oldani (szinte) mindent. A szerző szerint emiatt fölösleges bonyolult ORM rendszereket és mindenféle absztrakciókat bevezetni, hanem célszerűbb a CRUD köré építeni a rendszert, hogy azt támogassa meg minél hatékonyabban.
55

Ez majdnem igaz, de két okból

tgr · 2013. Okt. 26. (Szo), 18.00
Ez majdnem igaz, de két okból mégsem. Egyrészt - szerintem - a Weblabor messze nem az átlagos programozónak szól, hanem annak, aki átlag fölötti, vagy legalábbis szeretne azzá válni. Másrészt tetszőleges weboldalt sokkal gyorsabb létező, sokat tudó (jól tesztelt, nagy plugin-ökoszisztémával rendelkező stb) keretrendszerben elkészíteni, mint írni hozzá egy sajátot; illetve az intelligens megrendelő is jobb szeretné, ha a programozó olyan kódot írna, ami egy esetleges átvételnél viszonylag kis energiával tanulható. Így aztán a programozó és a megrendelő is egy mainstream keretrendszer használatára motivált; egy ilyen rendszert viszont annyi különböző szituációban használnak, hogy nagyon rugalmasnak kell lennie; még ha az egyes szituációk egyszerűek is, a keretrendszer megírása nagyon komplex feladat lesz. Így aztán OOP elveket fog használni, ORM-et fog használni, dependency injectiont fog használni stb. Ebből kifolyólag valamennyire a keretrendszert használó programozónak is ismernie és értenie kell ezeket a technológiákat (nyilván nem kell tudnia saját mappert írni).
57

Ok, elfogadom az érvelést, ez

Hidvégi Gábor · 2013. Okt. 26. (Szo), 19.02
Ok, elfogadom az érvelést, ez is egy szempont.
35

Érdekes

Pepita · 2013. Okt. 26. (Szo), 06.46
Gábornak különös tehetsége van az olyan szerzők megtalálásához, akiknél a zavaros gondolkodás túlzott önbizalommal társul.
Lehetséges.
Sajnos ezek nem a legjobb alapok a bevett paradigmák megkérdőjelezésére, ami egyébként hasznos tevékenység is lehet.
Szerintem kifejezetten hasznos, ha van legalább egy ellenpont, vegyük úgy: egyfajta világítótoronynak. Persze ebben a kérdésben nem irigylem a helyzetét, és csak kis részben értek egyet álláspontjával, a cikkel egyáltalán nem.
Mivel az ő rendszere neki megfelel, következésképpen tökéletes is
Érdekes, ez az én rendszereimre szokott igaz lenni... :)
Ez a gondolkodási minta egyébként Gábortól sem idegen
Nem tudom, ez is lehetséges.

Egy (két) nagy különbségre hívnám fel szjanihu figyelmét: te kb. előbb indokolsz, mint állítasz. Ő pedig: hülyeség, hülyeség, ... És emellett itt szerintem egész "barátságosan" teszed. Ezzel nem azt mondom, hogy mindenben egyetértek, de lehet, hogy nagyrészt igazad van. Mégis fontosnak tartom Gábor "partizánkodását" is: érdekes módon sok kommentet kivált, tehát elgondolkodtat sokunkat, ami sosem árt.
43

Kisebb mértékben valóban

bamegakapa · 2013. Okt. 26. (Szo), 12.36
Kisebb mértékben valóban generál minőségi diskurzust is, de ez konstruktívabb, kevésbé provokatív és káros témafelvetésekkel is elérhető lenne.
56

A blogmark rovat nem a

tgr · 2013. Okt. 26. (Szo), 18.05
A blogmark rovat nem a legjobb terep a vita provokálására. Alapból nem is ez a vita jön be, ha rákattintasz, hanem a cikk, amivel még csak nem is az álláspontja a legnagyobb baj, hanem a szerzője egyszerűen nem tud rendesen írni, nem tudja strukturálni a mondandóját, egy szétfolyó, konkrétumok nélküli betűhalmaz az egész. Ha a blogmark rovat fele ilyenekből meg semmitmondó önpromóciós cikkekből áll, az a Weblabor színvonalának és olvasottságának sem tesz jót. A fórum szerintem alkalmasabb lenne az alternatív elméletek promotálására és megvitatására, mint a blogmarkok/cikkek.
58

Ez így igaz

Pepita · 2013. Okt. 27. (V), 00.39
Teljesen egyetértek. Különösen:
semmitmondó önpromóciós cikkekből áll
erre kéne megoldást találni, de Gábor, te is légyszíves fórumot nyiss ilyennek, igaza van tgr-nek, és ott is linkelhető a cikk, amire hivatkozol. + mindjárt részletesebben is ki tudod fejteni induló álláspontodat.
21

Messziről nézve sem vagy azon

bamegakapa · 2013. Okt. 25. (P), 13.07
Messziről nézve sem vagy azon a szakmai szinten, hogy így bíráld, a stílusról nem is beszélve.

Ezt miből ítélted meg? Szerintem ne vigyük el az oldalt a faszméregetés irányába, mert nagyon nem lenne jó ötlet...

A moderálást / rendreutasítást bízd a moderátorokra légyszi

Látom te azért magadra vállalod a feladatot :).
36

Jaj, ne kezd már megint!

Pepita · 2013. Okt. 26. (Szo), 06.47
Nézz már körül légyszi előbb, hogy hol a tyúk meg a tojás!... Kezdesz vicces lenni már.
44

Abba a hibába esel, hogy ha

bamegakapa · 2013. Okt. 26. (Szo), 12.48
Abba a hibába esel, hogy ha valaki "rosszat" tesz, akkor már minden eszközzel jogosnak érzed harcolni (szó szerint) ellene, közben akár azokkal az eszközökkel is élve, amiket nála kifogásoltál. Ezt tettem szóvá #21-ben, ott leírtam, ami nem tetszett, ha jónak látod, reagálj rá érdemben, ha nem, akkor megkímélnélek attól, hogy megint sértegetned kelljen és ne válaszolj.

szjanihu sommás kijelentéseit sem tartom jó megoldásnak, de erre többen is kultúráltan reagáltak (többek között te is, ha a Javaslat cimkéjű bekezdésre szorítkozunk), így nem tettem meg én is.
48

Jó, hagyjuk már

Pepita · 2013. Okt. 26. (Szo), 15.43
Uncsi ez a rengeteg flame.
50

Nem hiszem, hogy flame lenne,

bamegakapa · 2013. Okt. 26. (Szo), 15.53
Nem hiszem, hogy flame lenne, amit csinálok, ha a szó általam ismert jelentését veszem alapul.
7

Két dolgot mondanék el a

deejayy · 2013. Okt. 25. (P), 07.56
Két dolgot mondanék el a témával kapcsolatban:

1. Megértem a felháborodásodat, a reakciódat, teljes mértékben.

2. Gábor aktivitása egy olyan véleménykontrasztot prezentál itt a fórumon, hogy haszna van az ilyen és ehhez hasonló blogmarkoknak / hozzászólásoknak, pont arra való, hogy generálja a(z érdemi, szakmai) vitát, ami által úgy gondolom minden résztvevő fejlődik, és ez jó.

Én ugyan tudom, hogy a "hülyeség"-ek mögött mit értettél, de ha kifejtenéd részleteiben, akkor máris a kettes pontnál vagyunk, egy "kezdőnek" ezek nagyon jó tanulmányok, perspektívák lehetnének a témában.
8

Ez itt nagyon nem jó!

T.G · 2013. Okt. 25. (P), 08.01
...ami által úgy gondolom minden résztvevő fejlődik, és ez jó.

Vagy sokan elfordulnak az oldaltól, ami nagyon rossz.
12

Lehet ezt még fokozni

Hidvégi Gábor · 2013. Okt. 25. (P), 09.19
Akik meg véletlenül máshogy látják a dolgokat, elmondják másoknak, hogy a Weblaboron milyen eretnek gondolatokat lehet olvasni. Azok kíváncsiságból idejönnek, egyetértenek, és egyre többen hangoztatják azt, amit én.
20

Ez sem egy elhanyagolható

bamegakapa · 2013. Okt. 25. (P), 12.59
Ez sem egy elhanyagolható jelenség sajnos...
37

Nem hinném

Pepita · 2013. Okt. 26. (Szo), 06.52
A korrekt szakmai vitának mindig pozitív a hírértéke, ez látogatókat vonz, nem taszít.
Persze, a bulvár is vonzz bizonyos embereket ("hülyeség, ne szemetelj"), de pont belőlük nem lesz jó szakember soha, mert előbbre való nekik a szájalás a minőségnél.
59

Szerintem meg abból nem lesz

szjanihu · 2013. Okt. 27. (V), 11.22
Szerintem meg abból nem lesz jó szakember, aki az "szjanihu"-ban nem fedezi fel a patternt, de segítek neked: írd be böngészőbe, hogy "szjani.hu". Az 5 utolsó bejegyzést ajánlom figyelmedbe, ha szakmai megnyilvánulásra vagy kíváncsi részemről. Esetleg keresd fel a github profilomat.
60

Ez egy igen korrekt válasz.

bamegakapa · 2013. Okt. 27. (V), 15.40
Ez egy igen korrekt válasz.
61

OK, viszont

Pepita · 2013. Okt. 28. (H), 07.27
itt miért nem olvastam cikkedet?
Csak elkerültem, vagy más oka van?
Emellett abból ítéltelek meg, amit a közelmúltban láttam-tapasztaltam tőled, amiben nem láttam különösebb szakmai megnyilvánulást. Persze ez az a halmaz, amit én láttam, viszont ebben a topicban a "hülyeség" vagy 5x minden indoklás nélkül...

Vegyél példát pl. tgr-ről, ha tényleg olyan szaki vagy. Ő kb. előbb indokol, mint állít, és nemigen láttam még tőle olyat (szerintem nincs is), hogy minden szakmai érv nélkül "hülyeségezzen".

Tehát egy dolog, hogy mit csinálsz a saját blogodon, meg mit teszel GitHubra, és egy másik dolog, hogy itt mit csinálsz. Tudod, nem vagyok nyomozó, és ha az lennék, akkor sem azzal foglalkoznék, hogy utánad szaladgáljak. Aki érvek nélkül állít, az hanyag, nem a fejlődést támogató ember, csak magát mutató.
64

Úgy látszik könnyen

szjanihu · 2013. Okt. 28. (H), 14.29
Úgy látszik könnyen bővíthetőre kell csinálni azt a böngésző kiterjesztést, az ilyen szánalmas, védekező hozzászólásokra se vagyok kíváncsi.
66

Tedd azt

Pepita · 2013. Okt. 28. (H), 16.46
:)
65

Ez egy igen korrekt válasz.

Hidvégi Gábor · 2013. Okt. 28. (H), 15.24
Ez egy igen korrekt válasz.
9

Látom, téged is annyira

Hidvégi Gábor · 2013. Okt. 25. (P), 08.09
Látom, téged is annyira kipukkasztott a dolog, hogy érveket már nem sikerült hoznod, így jobb híján személyeskedsz egy keveset. Ki mondta, hogy az én hozzászólásaimat olvasni kell bárkinek is? Ránézel, én írtam, kihagyod.

A blogbejegyzés írója bemutat egy saját maga által kifejlesztett programozási metódust, ami neki bejött, amivel most már majdnem tíz éve dolgozik. Lehet-e rossz valami, ami működik?
11

Azért nem írok érveket, mert

szjanihu · 2013. Okt. 25. (P), 09.02
Azért nem írok érveket, mert már belefáradtam, hogy állandóan ugyanazokat a dolgokat kell neked magyarázgatni. Időt és energiát nem kímélve érvelgetünk neked, de mintha a falnak beszélnénk. NEM feladatunk nyolcvannegyedjére is leírni neked általános összefüggéseket. NEM fogunk vitázni veled, miért jó interfészeket használni; az ilyen és ehhez hasonló témák teljesen feleslegesek.

A különbség közted és a cikk írója között, hogy ő 9 évvel ezelőtt gondolta így a dolgokat és elképzelhető, hogy immár 34 év munkatapasztalattal belátta, hogy "hülyeség". Te viszont most, 2013-ban akarod ezeket a téveszméket szabadjára engedni.

Mod: Most hívták fel a figyelmem a hivatkozott cikkben a következő sorra:
Amended 23rd August 2013
Ezesetben az előző bekezdést mindenki úgy módosítja/finomítja/ignorálja magában, ahogy gondolja.
13

Empátia

Hidvégi Gábor · 2013. Okt. 25. (P), 09.34
Sok vitára nem emlékszem veled kapcsolatban, és a Követőd szerint is így volt, így nem teljesen értem, miben fáradtál ki.
39

Követője

Pepita · 2013. Okt. 26. (Szo), 06.58
szerint én hirtelen nem is találtam komolyabb szakmai megnyilvánulást, biztos én vagyok vaksi, ezért kértem, hogy linkeljen párat.
38

És még ki?

Pepita · 2013. Okt. 26. (Szo), 06.56
NEM feladatunk, NEM fogunk
Azt, hogy te többé ebben a formában nem teszed, én még külön meg is köszönöm, mert engem a szakmaiság hiánya zavar nagyon nálad. :)
Azt azért elárulhatnád, hogy magadon kívül kire gondoltál a többes számmal? Más felhasználókat is te irányítasz? Mert ha itt maffia van, akkor én megyek! :)
15

A blogbejegyzés írója bemutat

bamegakapa · 2013. Okt. 25. (P), 12.35
A blogbejegyzés írója bemutat egy saját maga által kifejlesztett programozási metódust, ami neki bejött, amivel most már majdnem tíz éve dolgozik. Lehet-e rossz valami, ami működik?


Ha ezt az érvedet komolyan gondolnád, akkor elfogadnád, hogy az OOP meg a többi boszorkányság és népbutítás jó.
16

A blogmark célja, hogy

Hidvégi Gábor · 2013. Okt. 25. (P), 12.40
A blogmark célja, hogy rámutasson: vannak az OOP mellett más, működő programalkotási módok is. Az OOP (polimorfizmus) is jó, csak nagyon korlátozottan használható.
32

És ezt miben segíti az, hogy

BlaZe · 2013. Okt. 25. (P), 22.52
És ezt miben segíti az, hogy olyan blogot linkelgetsz, ami félreértelmezéseken és tudáshiányon alapuló, szakmailag sok sebből vérző, viszont legalább hangos és idegesítő eszmefuttatások nehezen követhető, tömény egyvelege?

Ezekkel amit el tudsz érni:
- Aláásod a saját szakmai reputációdat
- Káros anyagokat olvastatsz olyanokkal, akik esetleg ezt még komolyan is veszik
- Folyamatos, de kevés pozitív kimenetelű vitát generálsz az oldalon

Én azt gondolom, hogy van akkora tudásod és tapasztalatod, hogy építő jellegű vitákat is tudsz itt folytatni. A kontraszt nem rossz természetesen, sőt, de ez a "keresztesháború az OOP ellen" teljesen értelmetlen. És amíg ilyeneket írsz, hogy a polimorfizmus nagyon korlátozottan használható, meg olyanokat linkelgetsz, hogy semmi értelme az interfacenek, addig nehezen tud kialakulni konstruktív vita, mert ezek jó nagy sületlenségek. Ami itt élvezetes vita kialakult a téma kapcsán, azt pl Ádám és inf3rno folytatta.

A második pontot pedig szerintem túlságosan ledegradálod. Akinek nincs megfelelő tudásanyaga egy témában (és sokan vannak az oldalon, akik pl az OOP-t szeretnék megismerni), azt egy ilyen cikk csúnyán félreviheti, mert még nem tudja megítélni, hogy mennyire értelmetlen, amit olvas.
53

Igazad van, linkelhettem

Hidvégi Gábor · 2013. Okt. 26. (Szo), 16.37
Igazad van, linkelhettem volna kevésbé defenzív cikket a témáról. Az, hogy amit leír, mennyire nem szakmai, mennyire káros, azt döntse el mindenki maga; én nem állítom, hogy ez az egyetlen út, de az tény, hogy legalább egyvalakinek bejött, működik. Lehet, hogy másnak is hasznos az ott leírt elmélet, ha máshogy nem, hát rossz példának.
19

Ha elrejted, az nem megoldás,

bamegakapa · 2013. Okt. 25. (P), 12.56
Ha elrejted, az nem megoldás, mert attól még a kezdők ezeket a cikkeket kapják az arcukba a "szakmai" oldalon. Nekik pedig még nincs elég tapasztalatuk, nem tudják kritikusan megítélni. Később lehet, hogy ők lesznek a juniorjaink, az ő projektjeiket fogjuk átvenni karbantartásra vagy fejlesztésre, legrosszabb esetben ők lesznek a főnökeink :). Érdekünk tehát az ő fejlődésüket szem előtt tartani, és igen, segítenünk kell őket a széles látókör megszerzésében, de az, hogy folyton ilyen cikkekkel árasztunk el mindent, pont, hogy nem ezt segíti elő.

Be kell valljam, egyébként sokáig hasonlóan gondolkodtam, mint a cikk szerzője. Elüldögéltem a saját magam által épített szemétdombon, és köptem a hülye OOP-sekre meg a többi majomra és csináltam úgy, ahogy szerintem jó és nekem bevált ("de hát működik"). Mondjuk nem blogoltam róla, mert annyi önkritikám azért akkor is volt. Aztán amikor már csapatban kellett működni, vagy komplexebb feladatokat megoldani, szép lassan kijöttek a dolog problémái. Ott már nem csak az számított, hogy én értem a kódot.

Korábban én is szóltam már, hogy az ilyen cikkek és vélemények az utóbbi időben erősen túlreprezentáltak az oldalon és minden harmadik topikban ugyanaz a vita kezdődik újra meg újra. Kellenek ilyen viták, nem arról beszélek, hogy egyáltalán nem kell.
23

Nagyra értékelem benned, hogy

Hidvégi Gábor · 2013. Okt. 25. (P), 13.33
Nagyra értékelem benned, hogy te mindig a kezdők miatt aggódsz, és amiatt, hogy az ilyen jellegű blogmarkok/viták rossz útra viszik őket. Teljesen felesleges.

1, ott vannak a Csirippek, ahova a "jó" oldal szakemberei küldik be a linkeket, ráadásul jóval gyakrabban

minden harmadik topikban ugyanaz a vita kezdődik újra meg újra
2, És minden első és második topik a "jó" programozásról szól, tehát kétszeresen felülreprezentált. Gondolj bele, hogy ha téged ennyire zavar ez a tény, akkor én milyen frusztrált lehetek? : ) Lehet, hogy sokkal több hasonló cikket kéne beküldenem az egészséges egyensúly kedvéért : )

3, Ha minden csak a "jó" programozásról szól, az meglehetősen egyoldalú szakbarbárokat eredményez – és ez bizony most is így van, mert rajtam kívül senki nem küld be írásokat más módszerekről.

4, Ha csak a "jó" oldalról lehetne írni, elvennéd a döntés lehetőségét és szabadságát a kollegáktól, és ez megakasztaná a fejlődést a 3,-as pont miatt.
24

Azért viszik rossz útra őket,

bamegakapa · 2013. Okt. 25. (P), 13.43
Azért viszik rossz útra őket, mert visszaigazolást nyerhetnek arról, hogy a számukra könnyebbnek tűnő út valójában rendben van (például ezek a fránya interface-ek nem jók semmire, csak pár okoskodó sznob mániája az egész). Ezt személyes tapasztalatra alapozom, a saját fejlődésem és állapotaim megfigyelése során is ezzel találkoztam - továbbmegyek, annak idején sok hasonló cikket olvastam, többet az általad beküldöttek közül is(!) és rohadtul úgy éreztem, hogy nem vagyok egyedül, tehát igazam van.

Nem hiszek "jó" és "rossz" oldalban. Ezek a "lázadó" (nem a szó konstruktív értelmében) cikkek abban segítenek csupán, hogy bebetonozzák a kezdők azon hitét, hogy nem is szükséges megismerniük bizonyos technikák előnyeit, illetve úgy összességében bizonyos technikákat, hiszen minek is merülne el valamiben, amiről a hangosan kiabáló emberek azt mondták, hogy rossz és divatmajomság, lázadónak lenni pedig menő.
25

Neked is sikerült rátérned az

Hidvégi Gábor · 2013. Okt. 25. (P), 13.56
Neked is sikerült rátérned az igaz ösvényre, miért gondolod, hogy ez másnak ne menne? Miért vennéd el mindenáron mástól a választás lehetőségét, mert most épp úgy gondolod, hogy az az út, amire rávezettek, az az egyedüli jó és helyes? A rávezetés előtt is azt hitted, hogy jól gondolod, és most, utána is. Melyik az igazán jó? Ha egy másik céghez átmész, ahol egy harmadik módon kell dolgozni, akkor azt fogod fennen hirdetni? Valóban fejlődtél, vagy csak megtörtek?
28

Nekem szerencsém volt. Ez az

bamegakapa · 2013. Okt. 25. (P), 14.24
Nekem szerencsém volt. Ez az "igaz ösvény" meg "megtörtek" duma nagyon ismerős, én is toltam, többek között hasonló OOP vitákban. Itt nem vallásokról vitatkozunk, meg politikai elvekről (hozzáteszem, azoknál se hiszek annak, amelyik azt mondja, ő az igazi és a többi hülye).

Én azt mondom, mutassunk a kezdőknek olyan utat, ami működik és képessé teszi őket a csapatmunkára. Kössük a lelkükre azt is, hogy más utak is működhetnek és más jellegű feladatokra más módszerek valók.

Az általad linkelt cikkek többnyire valami ellen szólnak. Nem jól működő, kipróbált paradigmákat mutatnak be, csak a szerzők önfényezései, akik a mellüket verik, hogy lám ők meg tudják oldani a saját módszerükkel is! Design Patterns are dead! Long live Transaction Patterns! Nem szállt el kicsit valakivel a ló?
41

Inkább ide kellett volna

Pepita · 2013. Okt. 26. (Szo), 07.21
hozzáteszem, azoknál se hiszek annak, amelyik azt mondja, ő az igazi és a többi hülye
Tehát politikában senkinek sem hiszel. :) Pedig én tényleg jól tudom! :)
Én azt mondom, mutassunk a kezdőknek olyan utat, ami működik és képessé teszi őket a csapatmunkára
Én meg azt, hogy egy kezdő először tanuljon meg programozni. Aztán szépen programozni, majd újrahasznosítható kódot írni, aztán jöhet a csapat "hülyesége". Közte az adatbáziskezelést ki is hagytam...
Attól, hogy te most csapatban dolgozol, korántsem biztos, hogy egyáltalán alkalma lesz erre egy most idetévedő kezdőnek.
Nem szállt el kicsit valakivel a ló?
De, veled. :)
45

Arra próbáltam rávilágítani

bamegakapa · 2013. Okt. 26. (Szo), 13.15
Arra próbáltam rávilágítani egy korábbi hozzászólásomban, hogy valamilyen szinten mindannyian csapatban dolgozunk. Ha nem tesszük, elzárkózunk a világtól, kizárjuk magunkat olyan fejlődési lehetőségekből, amik nem pótolhatóak.

Csapatban dolgozik, aki open source projekteket tesz közzé vagy olvassa mások hasonló munkáinak a kódját, vagy akár hozzá is járul. Csapatban dolgozik, aki kérdést tesz fel egy fórumon vagy Q&A oldalon, és ehhez kódrészletet mellékel, és az is, aki válaszol. Csapatban dolgozik, aki átveszi egy másik programozó munkáját és az is, akinek majd valamikor átveszik a munkáját. Talán már túl elméleti, de csapatban dolgozol az x évvel ezelőtti és az x évvel későbbi önmagaddal is.

Éppen ezért fontos, hogy képes legyél működni olyan konvenciókban, paradigmákban, amiket mások használnak és értenek, hogy tudj olvasni és írni ezen szabályrendszerekben, belásd az előnyeiket és ismerd a hátrányaikat. Értem én, hogy nagy az egó, de amíg kezdő vagy, kövesd és tanuld meg az "elterjedt", "népszerű" módszereket (nem elveszítve a széles látókört, de túllépve az önzéseden).

Később, ha tényleg zseni vagy, felülemelkedhetsz rajtuk, finomíthatod és reformálhatod őket. De ha már ezek megértése is problémát, frusztrációt okoz, idővel be kell látnod, sajnos nem vagy zseni - talán ez a felismerés segít némi alázatosság megszerzésében.
49

Felét se értem, de te sem engem

Pepita · 2013. Okt. 26. (Szo), 15.50
csapatban dolgozol az x évvel ezelőtti és az x évvel későbbi önmagaddal is.
Ez tetszik, erre még nem gondoltam, de van benne igazság.

Viszont azt értsd meg kérlek, hogy egy abszolút kezdő kezdjen el PHP-t beállítgatni, fájlt, sessiont, stb. kezelni, bejövő adatot szűrni / escape-elni, majd ha ezek már kisujjban vannak, akkor adatbázist kezelni, nagyjából ezután jöhet az, hogy valami osztályfélékbe rendezzük már a dolgainkat, mert úgy használhatóbb lesz. Nem az OOP a programozni tanulás alapja, hanem egy sokadik szintje. Meg kell tanulni, de a maga idejében.
51

Ebben egyetértünk. Az OOP

bamegakapa · 2013. Okt. 26. (Szo), 16.02
Ebben egyetértünk.

Az OOP maga itt lényegtelen részlet. A szemlélet lenne a fontos, hogy amíg nem ért hozzá, ne akarja "máshogy" csinálni. Ezt együtt kell tanulnia a programozás alapjaival, különben járhatja végig ugyanazt az utat, amit évtizedek során okos emberek már végigjártak és kialakult belőle egy közös tudás - egy átlag programozónak erre kevés egy élet.
52

Igen, viszont a

Pepita · 2013. Okt. 26. (Szo), 16.04
"máshogy" megítélése is szubjektív, innentől parttalan.
62

Trust No One

vbence · 2013. Okt. 28. (H), 10.57
63

Zseniális.

bamegakapa · 2013. Okt. 28. (H), 12.16
Zseniális.
40

Gondolkodj egy kicsit!

Pepita · 2013. Okt. 26. (Szo), 07.14
Mit csinál a kezdő (ha okos)?

Megnézi, hogy Hídvégi Gábor kiféle-miféle, látja, hogy ő ezen az állásponton van, de mivel itt vagy te is és tgr és sorolhatnám, azt is látja: sokan ellenkező állásponton vannak.

Te is példát írtál, íme tőlem is: én egész sokáig (asszem bő 1,5-2 év) pusztán olvastam a WL-t, be sem regeltem. És első dolgaim közt volt a sűrűn hozzászólók figyelése, hogy először is azt lássam: mennyire bízhatok a véleményükben. Ezután és majdhogynem azóta is - ha már blogmarknál tartunk - blogmarkoknál előbb olvastam a véleményeket, mint a cikket (ma is van, hogy a cikket el sem olvasom, a kommentekből kiderül, hogy engem nem érdekel).

Tehát annyira nem kell félteni a nyugdíjunk kitermelőit, ha át is nézik a WL-t, nem felületesek, akkor pontosan azt látják, amit kell: sokak szerint jó valami az az OOP, de nem feltétlenül szükséges mindenhez.

Ne ess a ló másik felére sem: idejön egy "nagyon junior" még azt sem tudja, hogy amit szeretne, ahhoz PHP is fog kelleni, máris fél a vadi új nyelvtől, eddig is kínlódott a HTML-CSS-JS-el, és tolják az arcába az OO paradigmát - hát ettől szalad ki a világból (legalábbis innen).

Így, megfelelő (folyamatos :)) vitával dönthet az útja felől. Ha itt is marad, előbb-utóbb úgyis "elvisszük OOP-re", ha nem, hát bebukta. Kicsi az a % szerintem.
46

Minden tiszteletem a kezdőké,

bamegakapa · 2013. Okt. 26. (Szo), 13.34
Minden tiszteletem a kezdőké, de a legtöbb esetben nem rendelkeznek a széleslátókörűség, alaposság, részletekre figyelés erényeivel - az iskolarendszer sajnos nem ezek fejlesztésére törekszik. Amíg ezekkel nem rendelkeznek, arra fognak figyelni, aki hangosabb, aki hangzatosabb és nagyobb kijelentéseket tesz, illetve számukra kedvezőbbnek, könnyebbnek tűnő, rövidebb utakat ígér ("Design patterns are dead!"). Ez könnyen megfigyelhető a politika, média, marketing működésében, de természetesen máshol is működik.

Ezért gondolom úgy, hogy iránymutatásra szorulnak.

Aki meg fél az új dolgok tanulásától, az ne menjen webfejlesztőnek. Ugyanígy nem javasolnám a tériszonyosnak az ipari alpinizmust, a macskaallergiásnak a macskatenyésztést, vagy annak, aki nem szeret futni, a profi futballt. Ez van :).
22

Aztán amikor már csapatban

Hidvégi Gábor · 2013. Okt. 25. (P), 13.31
Aztán amikor már csapatban kellett működni, vagy komplexebb feladatokat megoldani, szép lassan kijöttek a dolog problémái. Ott már nem csak az számított, hogy én értem a kódot.
És ebből az következik, hogy egyedül csak olyan kódot lehet írni, amit más nem lát át? Az OOP-vel pedig olyan kódot lehet gyártani, amit mindenki más átlát? Mégiscsak vannak olyan helyzetek (amikor még egyedül dolgoztál), amikor működött más módszer is?
26

És ebből az következik, hogy

bamegakapa · 2013. Okt. 25. (P), 14.08
És ebből az következik, hogy egyedül csak olyan kódot lehet írni, amit más nem lát át?

Személyes tapasztalataimat osztottam meg csupán. Azonban azóta mások kódján is megfigyeltem, hogy egyedül az esetek nagy többségében ilyen kódot fog írni az ember, hacsak nem ismerkedett meg már a "dogmákkal" (ahogy te nevezted) és nem követi őket. A kivétel a szabályt erősíti. Ráadásul mivel van önkritikám, megfigyeltem, hogy fejlődésem során magam is olvashatatlannak, érthetetlennek találom korábbi kódjaimat, amik akkor remeknek tűntek.

Az OOP-vel pedig olyan kódot lehet gyártani, amit mindenki más átlát?

Az OOP olyan módszerek és technikák gyűjteménye, amelyek úgy lettek kifejlesztve, hogy átlátható és fejleszthető legyen a kód. Természetesen csak akkor, ha értik a lényegét és jól is használják. Mivel több a megkötés, ezért ezen elvek ismeretében közepes programozók (ld. én) is tudnak majd olyan programokat készíteni, amiket szintén ezen elvek ismeretében közepes programozók (ld. én) könnyen át tudnak majd látni. Nem állítom és nem is állítottam, hogy minden programozási feladatra az OOP a legmegfelelőbb, de ez itt egy webfejlesztéssel foglalkozó oldal. Itt pedig a feladatok 90%-ban bizony célravezető (5%-ban a spagetti is megfelelő megoldás).

Mégiscsak vannak olyan helyzetek (amikor még egyedül dolgoztál), amikor működött más módszer is?

Akkor még működött, egészen addig, amíg a fejemben volt az egésznek a felépítése, logikája. Akkor egyébként, mint írtam, magam is úgy gondoltam, hogy a "de hát működik" az egy érv a módszereim mellett.

Egyébként úgy gondolom, hogy a szakmánk egyik nagy problémája, hogy túl sokan hiszik magukat zseninek. Túl sokan akarnak nagyon okosak lenni, akik nem azok. Hiányzik a szakma (és a többi programozó, akár csapattársak) iránti alázatosság, csak az egó van. Nincs veszélyesebb, mint amikor középszerű (ezt a szót lehet sértően is használni, én nem úgy használom) emberek azt hiszik, hogy ők szarták a spanyolviaszt.
27

Off

Hidvégi Gábor · 2013. Okt. 25. (P), 14.15
Ráadásul mivel van önkritikám
Szerénység! Ne tömjénezd magad, szerénység! Ha van valami, amit szeretek magamban, az a szerénység. De ez már messzire vezet. A többin gondolkodom.
29

Haha, basszus, pont ez a

bamegakapa · 2013. Okt. 25. (P), 14.29
Haha, basszus, pont ez a filmrészlet jutott eszembe, miközben leírtam azt a mondatot :). Aztán gondoltam na mindegy, benne hagyom. Utólag visszanézve remekül példázza, amiről beszélek. Egy kicsi önkritikától már azt képzeltem, én vagyok az önkritika szobra :D.
30

Telitalálat

dropout · 2013. Okt. 25. (P), 16.00
Hát öregem te teljesen a szívemből szóltál. Iszonyatosan fárasztó forma.
Én már ezért nem is nagyon olvasok és nem is nagyon írok ide, mert teljesen parttalan még magyarázni is ezekre bármit.
31

: (

Hidvégi Gábor · 2013. Okt. 25. (P), 16.45
Én már ezért nem is nagyon olvasok
Ezt a témát is biztos véletlenül találtad meg.
54

Pedig megfogadtam, hogy az

MadBence · 2013. Okt. 26. (Szo), 17.32
Pedig megfogadtam, hogy az ilyen nyilvánvalóan flémgenerátor blogmarkokhoz nem szólok hozzá, de mindent én sem bírhatok idegekkel.

Each database table requires its own class
Ezt a részt egyáltalán nem értem, elég zavaros eszmefuttatás, mindenféle ábrákkal, amik valami komoly dolgot sejtetnek. Az ORM lényege, hogy az osztály a tábladefiníció (hisz leírja, hogy a rekordban milyen mezők vannak), a rekord pedig az osztály egy példánya. Ha esetleg valaki érti a többi részt, ne tartsa magában.

Don't waste time with Mappers
Meglehetősen érdekes érvelés. Az OR mapperek nem minden esetben előnyösek (ezt így különösebb magyarázat nélkül, tényként van kezelve), tehát ne használjuk őket egyáltalán.
Az OR mapperek feladata az lenne, hogy egy rétegben definiálod a modelled, és a többi (adatbázisszerkezet, leképzés, objektumgráf felépítése) a mapper dolga, a fejlesztőnek nem kell vele foglalkoznia. Ez egyáltalán nem többletmunka, sőt, nagyságrendekkel meggyorsítja a fejlesztést. És igen, ennek overheadje van, ezt senki sem tagadja. Egy mosógép processzorára írt szoftverben nyilván senki sem fog OR mappereket használni.

Érdekesség, hogy utána bemutatja a saját rendszerét, ami - minő meglepetés - egy mapper.

A mapperek feladat még az is, hogy relációs adatbázisok bénaságát (nem lehet bennük egyszerűen öröklési viszonyokat leírni) elfedje. Nélkülük az ilyen jellgő problémákat manuálisan lehet csak feloldani, ami ismét csak plusz fejlesztési idő/pénz.

Methods are centered around database access
Itt valójában egy sima ORM rendszert mutat be. Igen, aminek a használatától annyira intett.

Don't use getters and setters for user data
Hoz egy szándékosan hosszú (és értelmetlen) kódot.

Interfaces are not necessary
Bemutatja, hogy az interfészekhez meg kell írni az interfészt, ami plusz karakterekbe kerül, ellenben nem mutatja be, hogy az interfészt hogy lehet felhasználni. Így valóban semmi értelme az interfészeknek.
A többi bullshit/csúsztatásról nem is beszélve.

Use design patterns sparingly
Kifejti, hogy ha X pattern nem alkalmas az Y probléma megoldására, akkor azt nem érdemes az X pattern-nal megoldani. No shit sherlock... A konklúzió erre természetesen az, hogy ne használjunk design patterneket direkt, jönnek maguktól.
Annyira talán nem meglepő ez a jönnek maguktól dolog, hiszen pont azért vannak, mert egy-egy porblémát velük lehet hatékonyan megoldani. Viszont ha az ember ismeri a tervezési mintákat, akkor automatikusan felismeri azokat a helyzeteket, amikor használni lehet azokat, tehát nem kell egy saját megoldással (ami lényegében a kérdéses tervezési minta lesz, csak tovább tart megtervezni/implementálni).

Multiple inheritance is not necessary
Ez teljesen igaz, amelyik nyelvekben nincs többszörös öröklés, ott is megoldják az ehhez kapcsolódó problémákat. Példának egy validátort hoz, ami szerintem amúgy a világon sehol sem többszörös örökléssel oldanak meg.