egy PHP fejlesztő élete keretrendszerek nélkül

A minap a Weblaboron kialakult egy vita a PHP keretrendszerek használatáról, a vita kiindulópontja a következő blogbejegyzés volt:

http://www.devlopr.com/after-all-what-is-this-no-framework/

Nem szeretném a vitát folytatni, sem különvéleményt megfogalmazni, mert egyik sem érdekel túlságosan, inkább csak a saját történetemet mesélném el a keretrendszerekről.

Körülbelül 3 évvel ezelőttig nem használtam a webes fejlesztések során semmilyen keretrendszert, viszont az asztali alkalmazások készítésénél többfélét is felhasználtam – például a jól ismert Delphi-s komponens gyűjteményekre és keretrendszerekre gondolok elsősorban, melyek picit mások mint a PHP-s társaik, de ez főleg az eltérő fejlesztési és felhasználási környezet miatt van. Mindezt azért tartom fontosnak leírni, hogy világossá tegyem azt, hogy nem vagyok elfogult egyik irányban sem, mert szeretek “keretek közé szorítottan” és “szabadon” is fejleszteni.

Körülbelül 3 éve találkoztam először a Symfonyval, majd később a Kohanával és a Zend Framework-el és rádöbbentem arra, hogy ezek a keretrendszerek megoldanak nagyon sok olyan dolgot, melyeket egy fejlesztés során én magam is rutinszerűen, szinte minden alkalommal megcsinálok:

– kialakítok egy alap struktúrát (MVC)
– eldöntöm milyen események lesznek (routing)
– adatbázis-kezelőt választok, adatmodelleket tervezek (Propel, Doctrine modellek)

és még sorolhatnám.

A cégek ahol megfordultam mint fejlesztő, szinte kivétel nélkül kísérleteztek valamilyen saját, egyedi CMS rendszer kifejlesztésével és ezzel együtt egy keretrendszer felépítésével, de eddig még sehol nem találkoztam olyan kiforrott, jól strukturált, karbantartott, nem szét-aprózott (különféle projektekhez igazított) céges keretrendszerrel, melyet jó szívvel általános keretrendszernek nevezni. Pedig eléggé sok kísérletet láttam, de sajnos ezeket nem sorolhatom fel.

Volt olyan cég ahol éveket töltöttek azzal, hogy hibáktól hemzsegő, előző PHP verziók nyűgeit magán hordozó, össze-vissza foltozott keretrendszerből dobozos CMS rendszert gyúrjon össze…

Volt ahol emiatt váltottak a PHP-ról más nyelvre és elküldték a fejlesztőket…mert, hogy “PHP-ba nem lehet szépen fejleszteni”…

Ez természetesen hülyeség.

Én ezek miatt a tapasztalatok miatt kezdtem odafigyelni a különféle keretrendszerek fejlődésére. Végül a Symfony-nál maradtam meg legtartósabban, de azóta is kipróbálok szinte minden új keretrendszert, jobbnál-jobb ötleteket lehet találni bennük.

Mennyire segítenek a keretrendszerek a Szép és Átgondolt programozás elérésében?

Ez egy érdekes kérdés. Szerintem először is tisztázni kellene, hogy mi is az a szép programozás…. Nekem ez irányú érdeklődésemet Ian Sommerville magyarul is megjelent könyve keltette fel úgy igazán, a könyv címe “Szoftverrendszerek fejlesztése”. Ebben a könyvben szinte egyetlen sornyi forráskódot sem találni, száraz elméletnek tűnik az egész, de egyáltalán nem az. Érdemes úgy olvasni, hogy véletlenszerűen felütjük valahol és elkezdjük olvasni 🙂 Iszonyatosan okos és ami a legfontosabb Tapasztalatokon alapuló dolgokat kapunk ettől a könyvtől a tesztelés, tervezés és a megbízhatóság elvi kérdéseiről. Bár nem fejlesztőknek íródott, de pont az elméletisége miatt bennem felkeltette az érdeklődést a másik oldal, az ügyfelek, projekt-vezetők, tervezők néha túl megalkuvónak, szürkének tűnő világa iránt. És ráébredtem arra, hogy bármennyire is szidják a fejlesztők őket, be kell vallani, hogy a hibákat általában mi követjük el…

És pontosan emiatt jó, ha vannak olyan kiforrott keretrendszerek, melyekre lehet építeni. Sajnos sokan nem képesek elszakadni a rossz berögződéseiktől és a keretrendszereket börtönnek fogják fel…szerintem ez egy önbecsapás, mert nem a keretrendszer a börtön, hanem inkább a saját gondolkodásunk… A rutinunk, a lustaságunk és a rossz reflexeink azok melyek börtönt vonnak körénk, hiszen például egy Symfony színvonalú keretrendszer oly sok módon átalakítható, testre-szabható, hogy bármilyen célra és bármilyen stílusban lehet használni.

Teljesítmény probléma.

Egy gépi kódban írt sor gyorsabb mint
C-ben írt sor?

Nem biztos.

Egy C-ben írt Cache rendszer gyorsabb mint egy PHP-ban írt?

Nem biztos.

Egy natúr PHP-ban írt kód gyorsabb mint egy keretrendszer-rutinokat behívó kód?

Nem biztos.

Hát igen…ez van. Minden a megvalósítástól, céltól, alkalmazási területtől és a futtató környezettől függ, önmagukban ezek a dolgok csak vicces következtetésekre adnak lehetőséget, de sajnos az emberek hajlamosak néha meggondolatlan és parttalan vitákat folytatni…

Én továbbra is szeretek keretrendszereket használni, természetesen nekem is sokszor eszembe jutnak hasonló gondolatok mint ez:

Mi a francnak kell PHP-ban felépíteni minden futáskor egy óriási objektum-rendszert felépíttetni csak azért, hogy kiküldjünk a böngésző felé egy halom szöveges adatot…erre 20 sornyi natúr szkript is képes…ez nevetséges!

Na igen…csakhogy mi van akkor ha ezt több ezernyi funkcióval kell megvalósítani?

Mi van ha karban kell tartani? Ha váltani kell? Előjönnek a jó öreg problémák…és akkor eszembe jut a 10-12 évvel ezelőtti állapot amikor minden gyártó, minden cég a saját kis technológiáit építgette, nem voltak átjárók, nem voltak egységes szabványok szörnyű kín volt minden újítás.

Én nem nagyon szeretnék ide visszakerülni. A mostani állapot sem optimális, mert az OOP, aspektus-orientált programozás, tervezési minták, DI stb. sem csodaszerek, de legalább adnak némi közös alapot ami mentén lehet fejleszteni.

Persze azért jó szabadon kísérletezni is 🙂 keretek nélkül!!!!

This entry was posted in Uncategorized. Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s