Tweetjeim

Legújabb hozzászólások

szjani

2014. április 18. 22:07

Köszi! Képeket valóban akartam, de nincs normális eszközöm hozzá, ami igényes kimenetet is produkál. :( - Hexagonal arch...

inf3rno

2014. április 18. 14:23

Jó cikk, nekem teljesen érthető volt, szépek a példák is. Annyi megjegyzésem lenne, hogy egy kép többet mond ezer szónál...

Jordan

2014. április 1. 17:31

Interesting project. I recommend using ORM Designer (www.orm-designer.com)in conjunction with Doctrine. It's a great to...

mindegy

2014. február 4. 14:55

Tetszik! A DDD-ről, CQRS-ről még nem hallottam de ha ezekkel így lehet szoftvert fejleszteni, akkor rossz már nem lehet....

szjani

2013. június 7. 21:38

"Maga az event egy string..." - itt valóban pongyolán fogalmaztam, javítom. A több esemény kezelésére a példa:...

Enum PHP-ben?

szjani, 2014. január 28. 21:30

Sok dolgot hiányolok PHP-ből és az egyik ilyen az enum. Az enum egy olyan típus, amelyben előre definiált konstansok vannak és minden ilyen konstans egy objektumot tárol, melynek típusa - nem találjátok ki - épp az az enum, amelyben az definiálva van. PHP-ben nincs enum, nem része a nyelvnek. Viszont lehet - ha kicsit nehézkesen és nem túl szépen - szimulálni azt.

DDD és CQRS a gyakorlatban

szjani, 2013. december 27. 00:15

Korábbi írásaimban a teljesség igénye nélkül próbáltam ismertetni néhány általam készített nyílt forráskódú libraryt. Most viszont azt tűztem ki célul, hogy megmutatom a "big picture"-t, azaz egy konkrét példán keresztül bemutatom, hogy is pakolgatom össze ezeket a kis építőkockákat és csinálok egy rugalmas, könnyen karbantartható architektúrát. Fontosnak tartom megjegyezni, hogy a továbbiakban vázolt architekturális megfontolások teljes mértékben nyelvfüggetlenek. Pusztán azért mutatom be PHP-n keresztül, mert ebben a nyelvben volt/van szerencsém használni a DDD-t, illetve CQRS-t.

Getterek és setterek: ördögtől való dolgok

szjani, 2013. augusztus 5. 23:05

A DDD-s előadásomban utaltam rá, hogy mi a gond a getterekkel és setterekkel, de talán érdemes külön is beszélni róluk, mert rengeteg problémát okoznak. Azt hiszem mindenki, aki ezt olvassa, valamilyen IDE-t használ, mert tudja, hogy rengeteg többletszolgáltatást biztosít egy egyszerű szövegszerkesztőhöz képest. Olyan plusz dolgokat ad, amivel felgyorsítható a munka. Ilyen a getter/setter generálás is. Létrehozza az ember az osztályt, felveszi a private membereket és legeneráltatja az IDE-vel a címben emlegetett metódusokat. Kész is vagyunk, csinálhatjuk a következő osztályt, ugye?

Repository és Finder

szjani, 2013. augusztus 4. 14:57

Mióta világ a világ (na jó, azért nem olyan régóta) a fejlesztők rétegekre bontják az alkalmazásokat. DDD-s fejlesztés során is így járunk el. Viszont ha nem vezetünk be szabályokat, megkötéseket, akkor könnyen olyan helyzetben találhatjuk magunkat, hogy egyes komponenseket rossz helyre teszünk, illetve egyes részek ott is elérhetővé válnak, ahol az nem lenne kívánatos.

Intelligens eseménykezelés

szjani, 2013. június 7. 00:12

Manapság minden valamirevaló keretrendszerben elérhető valamilyen eseménykezelő, ami a publish/subscribe mintát követi. Ezekkel az eszközökkel flexibilisebb alkalmazásokat írhatunk, alacsonyabb lesz a "coupling" az osztályain között.

Domain-Driven Design - előadás

szjani, 2013. május 2. 23:11

Múlt héten tartottam egy előadást a DDD-ről, amelynek az anyagát most megosztom veletek.

Loggolás másként - lf4php

szjani, 2013. január 18. 20:52

Java fejlesztőként találkoztam az slf4j-vel, ami nem más, mint egy logging facade. Önmagában nem sok mindenre jó: mint ahogy a neve is sejteti, elrejti előlünk a konkrét megvalósítást, absztrakt felületet ad. Használatával bármikor válthatunk egyik logging keretrendszerről a másikra. Innen vettem az ötletet, és nem titkoltan az slf4j forráskódját bújva készítettem el az lf4php-t. Egy korábbi írásomban már megemlítettem, most bemutatom, hogyan kell használni, illetve milyen irányelvek vezettek a tervezése és fejlesztése során.

Üzenetek és tranzakció

szjani, 2013. január 11. 21:51

A tranzakciókezelés alapvetően nem bonyolult dolog, már ami a használatát illeti. Ha minden művelet rendben végrehajtódik, akkor nincs teendőnk. Az érdekesebb viszont az, amikor valamilyen hiba lép fel. Ugye ilyenkor rollbackelni kell. Önmagában ez sem nagy szám, az adatbázis elintézi, amit el kell (ugye nem myisam-ot használunk!), viszont sokszor ez nem elég: el is kell takarítanunk magunk után. Hogy miket? Például a létrehozott/elmozgatott/törölt(!) fájlokat és minden egyéb olyat, amit a tranzakción belül hajtottunk végre.

Elmélkedés a PHP keretrendszerekről

szjani, 2012. december 7. 21:23

Nem tudom, ki hányszor hallott rosszat PHP programozókról, én személy szerint rengetegszer. A PHP programozók gányolnak. Ez az általános vélekedés. Valójában nagyjából minden script nyelv esetén ez a megítélés, kisebb-nagyobb eltérésekkel. Miért mondják ezt a Java, C++, C# programozók? Nos tény, hogy bár gányolni minden nyelven lehet, a PHP erre kifejezetten alkalmas is. Az viszont, hogy alkalmas, nem azt jelenti, hogy máshogy nem lehet. Tény, hogy a nyelvből sok dolog hiányzik, az API nem feltétlenül konzisztens, azért lehet benne jó kis weboldalakat írni. De valóban csak weboldalakat írunk PHP-ben? A legtöbbször ebből indulunk ki, és rengeteg félreértéshez vezet.

Jenkins és a PHP

szjani, 2012. június 20. 21:03

Ebben az írásomban egy olyan környezet telepítésén fogok lépésről lépésre végigmenni, amelynek a végén lesz egy CI (Continuous Integration) szerverünk (Jenkins), és az itt felvett projektet egy Git repositoryból fogja automatikusan letölteni, majd pedig a projekten a következő taskokat fogja végrehajtani:

  • Ellenőrzi, hogy minden PHP állomány szintaktikailag helyes-e.
  • phploc - statisztikát kapunk a projekt méretéről és felépítéséről
  • pdepend - szoftver metrikák használata
  • phpmd - potenciális hibák keresése a forráskódban
  • phpcs - checkstyle, avagy kódolási konvenciók ellenőrzése
  • phpcpd - copy/paste detektálás
  • phpdox - HTML alapú API generálás
  • phpunit - unit tesztek futtatása
  • phpcb - HTML alapú kód böngésző generálás
< Előző oldal 1 2 3 Következő oldal >
Az adatbázis kezeléshez Doctrine-t használok Az oldal Zend Framework-re épül