Testējamu PHP aplikāciju būvēšana
Posted on April 23rd, 2012 in PHP | 49 Comments »
PHP programmēšanas valodu pēdējā laikā cilvēki krietni aprunā. Ceļ gaismā visādas šīs valodas dīvainības un nejēdzības. Lai arī pēdējā laikā programmēju krietni mazāk, arī man ik pa laikam nākas uzdurties uz kādiem brīnumiem, kas mēdz kaitināt.
Šoreiz par labajām lietām un pareizo piegājienu programmēšanā. Nedēļas nogalē izlasīju The Grumpy Programmer’s Guide To Building Testable PHP Applications. Salīdzinoši īsa un viegli lasāma grāmata – nieka 66 lapas. Pamatā grāmatā uzsvars ir uz to, kā būvēt aplikācijas, kuras pēc tam būtu viegli testējamas un uzturamas. Ar testēšanu šeit saprotot ne tikai vienībtestēšanu, bet arī integrācijas testēšanu, funkcionālo testēšanu.
Grāmatā tiek visai labi izskaidrots Dependency Injection programmēšanas šablons (pattern), kas ļauj pēc tam arī veiksmīgi testēt katru no programmatūras komponentiem individuāli. Ja līdz šim man īsti nebija skaidrības ar ko Dependency Injection un Dependency Injection Container atšķiras no parasta Registry šablona lietošanas, tad tagad viss ir skaidrs. Tāpat grāmatā tiek stāstīts par to, kā nodrošināt, ka visas vides ir vienādas – gan izstrādes vide, uz kuras strādā katrs individuālais programmētājs, gan produkcijas vide, kurā pēc tam darbojas pati aplikācija (Vagrant, Chef, Puppet). Tiek apskatīti koda statiskās analīzes rīki (PHP Mess Detector, PHP Dead Code Detector, PHP Code Sniffer). Tāpat tiek apskatīts arī Continous Integration (PHP UnderControl, Jenkins CI) piegājiens programmatūras piegādei uz produkcijas vidi un citi pieredzējušākiem programmētājiem interesanti temati.
No grāmatas gan biju cerējis sagaidīt vairāk tieši ar testēšanu saistītas informācijas, taču arī šādā redakcijā grāmata bija pietiekami interesanta. Jāatzīst gan, ka tā ir vairāk tēmēta uz programmētājiem ar vairāku gadu pieredzi programmēšanā, jo iesācējiem vairums no apskatītajiem tematiem varētu būt visai liela Ķīnas ābece. Tas, ko visticamāk kādā brīdī pamēģināšu – izstrādes vides būvēšana izmantojot Vagrant un kādu no saistītajiem rīkiem. Visticamāk, ka būs jāpaspēlējas arī ar PHP Dead Code Detector un PHP Mess Detector, jo to izmantošana varētu būt gaužām vienkārša.
Ja grāmata jāvērtē ar zvaigznēm, tad dotu kaut kur ap 3.5. Biju gaidījis vairāk.