Kwenye Software development kuna hii concept inaitwa
seperation of concern
Kwa mfano, kuna codes kwenye application yako zinazofanya kazi ya upload images kwenye database
Nyingine kwa ajiri ya ku insert image's path to the database
Then kuna codes kwa ajiri ya kuchukua image kutoka kwa client
Sio busara ku zi mix zote kwenye single monolithic file, inakua ngumu ku maintain na ku read codes za namna hii
Changamoto inakua kubwa zaidi pale unapo mix frontend logic (html + css +js) na back-end logic (php)
Kwa style hii ni ngumu hata kufanya kazi in team, assume wewe upo vizuri sana kwenye back-end (php) ila haupo vizuri kwenye frontend, na mimi nipo vizuri kwenye front-end ila sijui chochote kuhusu PHP
Tunafanyaje kazi kama team, kama ndani ya app yako ume embed html snippets kwenye PHP?
Solutuon ni ku separate logic, part ya back-end iwe separate from front-end
Na sio back-end na front-end tu, hakikisha codes zinazofanya kazi ya aina moja zipo katika eneo moja
Normally unapoanza kujifunza PHP kama beginner ni lazima u fall kwenye hio trap
Ni honest mistake,in fact PHP iliundwa kufanya kazi na HTML
But sio approach nzuri ku mix Html na PHP
Solution ni ku design templating engine
Templating engine, lengo lake ni ku hide back-end codes (mfano codes za php)
Kwenye syntax rahisi kueleweka kwa mwenzako anaye work with frontend
Halafu in the background hizo syntax zinakuwa compiled back to plain php codes
Mfano badala ya codes kama hizi( prented tuna display list of customers)
Code:
// index.php
// customers
$customers = [ 'Maria' => 1, 'Steve' => 2, 'Abuu' => 3]',
// List all customers
foreach($customers as $key => $customer)
{
echo "<h1>$key</h1>" ',
}
Kwa mwenzako aye deal na front-end na hajui chochote kuhusu PHP hawezi display hio list ukimpa hizo data
Solution ni ku develop simple templating engine inayo mpa sytanx rahisi kama hizi
Code:
// index.blade.php
@foreach($customers as $customer)
<h1 class="user_namd">{{ $customer }}</h1>
@endforeach
Hizo syntax ni rahisi kueleweka bila kuwa na knowledge yoyote ya PHP
As long as ume mpa guide ya matumizi yake
Pia zinafanya codes zipendeze
Huna haja ya ku concatenate variable na string tena
Andika tu
Framework kama Laravel na Django zina built in templating engines,huna haja ya ku develop ya kwako from the scratch
Hio ndio maana ya separation of concern, inafanya app iwe rahisi kueleweka na easy ku maintain hata kama original developer hayupo
Na ukihamia kwenye pure Javascript app, una shift kabisa codes zako za front-end from the back-end