Pēdējajā laikā ir nācies saskarties ar amatieru veidotu PHP kodu un šodien saņēmos uzrakstīt galveno, ko laika gaitā esmu iemācījies un ar ko pa lielam atšķiras labs kods no slikta. Ļoti ceru, ka šo izlasīs vismaz kāds, kas to vēl nav sapratis un kura darbu man kādreiz būtu jālabo.
Galvenā ideja ir ļoti vienkārša. Lielajos projektos kodam jābūt gan viegli saprotamam, gan ātram, tāpēc jāsāk ar kārtošanu, jo tā var palīdzēt kodu padarīt ātraku, bet ātrs kods nekad nepalīdzēs pie kārtošanas.
Un šeit tad arī sākas problēmas, jo ātruma fanāti (ieskaitot mani), ja arī sāk ar kārtības izveidi, tad izdomā savus kārtības noteikumus, lai nebūtu jāizmanto lēnais un ne ļoti vienkāršais OOP (it īpaši uz vecākām PHP versijām), cerot, ka paša veidotā kārtība būs ātrāka un vienkāršāka. Tā parasti arī ir, bet ar laiku kods kļūst aizvien lielāks, noteikumi aizvien vairāk un izskaidrot tos citiem - aizvien neiespējamāk. Tiek iztērēts daudz laika uzturot savu mistisko kārtību (nerunāsim par citiem, kam kaut kas jāpalabo šajā sistēmā) līdz nāk lielā atklāsme, ka vairs nav ne ātrums, ne vienkāršība un nav vairs svarīgi par cik procentiem funkcijas izsaukšana ir ātrāka par statiskas klases metodes izsaukšanu vai par cik echo ir ātrāks, ja daļas atdali ar komatu, nevis punktu vai ja tekstu atdali ar parastajām, nevis dubultajām pēdiņām, vai ja masīvu atslēgās liec skaitli ar pēdiņām, nevis bez, vai regulāri izmanto unset funkciju, kad strādā ar lieliem masīviem,...
OOP nepadarīs kodu ātrāku vai drošāku, taču ļaus visu sakārtot pa blokiem un ne tikai kods kļūs daudz loģiskāks un citiem saprotamāks, bet arī tiešām svarīgās lietas saita veiktspējas uzlabošanai:
- Pieslēdzies pie DB tikai tad, kad vajag un uzreiz aizver, tikko nevajag.
- Ja bieži izmanto echo, lieto ob_start(). ja sūti daudz, tad izmanto arī ob_gzhandler().
- KEŠO! Visu, ko vari saglabā failos ar serialize/unserialize. Ideālajā gadījumā saglabā visu html failos.
Kad tas izdarīts, var turpināt ar Best Practices for Speeding Up Your Web Site un, ja esi totāls perfekcionists, tikai tad turpini ar sīkajām php modifikācijām.