Laravel Livewire: For Laravel Devs

Uzi mtamu sana endeleeni kutuhabarisha, yaani hapa ndo huwa napapenda.

Sasa hapa ndo tunajua kama tuna IT WA BONGO NYOSO HAHAHAHA

Graph
 
kakaririshwa OOP
hii ndiyo shida, mwendo wa kukariri tu

universal Eeprom reader kama kpnd kile sijui unaweza nipa direction?
ile sakiti uliyotengeneza mbona ilikua poa, labda kuioptimize kidogo like kufupisha urefu wa waya, capacitor za hapa na pale
nakumbuka ilikua ni ya AT24XX, ya microchip, na ndiyo ziko nyingi kwa soko(kama sikosei) hazinaga longo longo kuzisoma na kuziwrite

basic code ni hii , natweak kidogo kwenye address
 
hii ndiyo shida, mwendo wa kukariri tu


ile sakiti uliyotengeneza mbona ilikua poa, labda kuioptimize kidogo like kufupisha urefu wa waya, capacitor za hapa na pale
nakumbuka ilikua ni ya AT24XX, ya microchip, na ndiyo ziko nyingi kwa soko(kama sikosei) hazinaga longo longo kuzisoma na kuziwrite

basic code ni hii , natweak kidogo kwenye address
🙏🙏
 
----->SECURITY.
Sawa, ila mie ni developer ambae nlianza kwenye pentesting na bado nipo huko, Kuhusu security umeongelea theory coz nadhan ww umebase sana kwenye teaching but let me tell u practical parts of stuffs.
Assumption kwamba na mimi ni ticha wa "Bongo". Niko full rime kwenye industry tangu 2011, yaani yangu mwaka huo all I do is writing codes, contributing codes, fixing codes, consulting on codes and teaching codes.

So you are dead wrong. It na PenTest nimefanya for years, since 2007 - 2011 ambapo ilikuwa minor na major ikawa programming. So I know that field though I'm not expert kwa specialization. Nimebakia na security ya upande wa programming and systems na mambo ya DevOps.

With that background you are not talking to some theorist. Najua ninachokisema.

Nimeweka haya siyo kujimwambafai ila kuweka rekodi sawa kwa future discussions.
Kwa pentester side of view ni rahisi sana kudeal na app ambayo iko built on framework kwa sababu hz kuu:-
1)Asilimia kubwa ya devs wakishatengeneza app hawajali kuupdate framework version, suppose vulnerabilities zimetokea na zikawekwa hadharan, wachache sana huenda kuupdate project zao
The same thing can be said to your one man code. Na kwa hakika one man code is even hard to be consistently updated. Reason is, for me to update all I have to do is composer update.

Some 100 guys have reported issues and some hundreds or tens of experts have fixed it. And with that one command I have all 100s of bugs fixed and security issues done.

Now what about one man code? First you have to spot those 100s of bugs, make sire that you fix them and without independent review push them to your server.

The case is still not convincing. You can be good at fixing security issues, database issues, et al. That's impossible for one man and that's where frameworks excel.
2)Ili kumziba hacker siku zote inabidi asione script zako kwanza, ukishindwa hapo ndo ufanye strategy nyngne.
Security by obscurity is a worst way of defense. The best defense is when a hacker can see your code and yet nit be able to penetrate the same code even in his own server.

Just a little bit of security 101, every system can be penetrated, with right resources. All we do in security is either make it ridiculously expensive to do it or make it to take so long that by the time the hacker is about to penetrate there is already a fix and have to start again.

Security by obscurity is like hiding keys to the soor of the well secured castle under a tree praying that no one finds it
kn hizi opensource kila mtu anaona script na anajua logic behind. Hata automated tool itanipa scan nzr tu kuendelea na hacking yangu.
Not true. Mfano a well secured password generated by PHP password function, itakuchukua muda gani kui hack?

Je ni setup test code niziweke github halafu utuambie what is in protected member area? Tunaweza kufanya test kama ukikibali
Khs security kuna faida na hasara na inategemea scale ya project. Ila kwa asilimia kubwa kuhack project kubwa ambayo ni custom made(achana na viweb uchwara vya wanachuo au IT wababaishaji) ni ngumu kuliko kuhack hizi ambazo zimebase kwenye frameworks coz kwa custom made hizi automated scan tool ni ngumu ku-crawl humo.
Again security by obscurity. Poor defense.
Halafu naona unaweka project under framework na customized code as if ni kitu kimoja which isn't true. Framework Inakupa building blocks na kama hujui kuitumia utajenga project mbovu na kuikaumu framework.

----->SORRY BUT AM NOT CONVINCED WITH YOU OOP KNOWLEDGE & EXPERIENCE.
Am not trying to convince anyone. If God cannot convince humans he exists with the mount of evidence, how can I?

Naweka rekodi sawa tu. That's it

Hii ni kwa sababu umesema

""
This is false. Classes are merely organizing your function adding few more things. Having trained people on OOP since 2014, am yet to find a confused student.
""
Mkuu OOP inatengeneza Abstraction over data tuuu, ila Functional programming inaleta abstraction over both data and behaviour, unless tunaongelea kwenye perspective tofauti coz hata sita inaweza kuwa tisa kutegemeana na mwangaliaji. Ila Refer hii article. Functional Programming vs OOP | Top 8 Useful Differences To Know Umeongelea kiurahisi sana khs classes na ndo maana labda wanafunzi wako hawawi confused.
Hapa hata sijaelewa unachojaribu kusema. OOP na FP ni different ways za ku solve tatizo. Sasa hebu fafanua hizi issue za data abstraction hapa zimeongiaje?

----->KUHUSU MACHINE KUWA CONFUSED:
Umeuliza ila sitokujibu kwa sababu ya upana wa hilo somo sitoeleweka hapa
May be because you know machines aint confused by correctly written code regardless of whether the paradigm is FP or OOP
 
Assumption kwamba na mimi ni ticha wa "Bongo". Niko full rime kwenye industry tangu 2011, yaani yangu mwaka huo all I do is writing codes, contributing codes, fixing codes, consulting on codes and teaching codes.
................
Nimeweka haya siyo kujimwambafai ila kuweka rekodi sawa kwa future discussions.

Mkuu with all due respect najua uko long sana kwenye game, trust me mie nimekufuatilia sana nyuzi zako coz nilikua najifunza programming wakati ambao mtu angeongelea haya mambo asinge-eleweka, na kama una kumbuka una kozi humu ushagaziweka tangazo zamani sana ila sadly sikua na hela ya kuji-enrol(enzi hizoooo) na pia mambo mengi ulosema utafundisha nlikua nishapata ground-start.

Mie ni highschool dropout, self taught, addicted fullstack computer programmer. Japo nimedrop shule ila nasoma sana vitabu na research papers kwenye hii field bila kusahau documentation ya vitu nlivo na interest navyo. Mfano Last year nlikua na interview na jamaa wa kampuni fln ila maswali yao na code test wanaquote from documentation kama zilivyo. Mwisho baada ya kuninyima kazi yao - fulltime(coz sina cheti cha CS na wao cheti ilikua requirement kwa fulltime job) niliwaambia "this, this and this mmetoa directly kutoka kwenye documentation ya ReactJS, and this and this mmetoa directly kutoka kwenye documentation ya PHP, here you changed a variable name and here you made an error while copying". Jamaa hadi leo waninipa part time jobs zao. So nadhan unaona tuna backgrounds tofauti, nasema hivyo sio kujimwambafy ila kuweka record sawa for future reference.

Pia nikukumbushe, it's not a matter of how long you are in a game but it's a matter of how long you'll successfully last. Yahoo alikuwepo years kabla ya google, na skype imekuwepo miaka kabla ya zoom ila matokeo sitaki kusema coz natumaini unayajua. Narudia tena nasema hayo kuweka record sawa, so lets get back to the main point mkuu

The same thing can be said to your one man code. Na kwa hakika one man code is even hard to be consistently updated. Reason is, for me to update all I have to do is composer update.

Some 100 guys have reported issues and some hundreds or tens of experts have fixed it. And with that one command I have all 100s of bugs fixed and security issues done.

Now what about one man code? First you have to spot those 100s of bugs, make sire that you fix them and without independent review push them to your server.

The case is still not convincing. You can be good at fixing security issues, database issues, et al. That's impossible for one man and that's where frameworks excel.
Haaaaahaaa Mkuu sio kila watu wakipata bugs kwenye hzo frameworoks basi zitawork kwenye custom codes unless iwe ni "language level" glitch. Tudiscuss kwa ukweli sio kutafuta umati. Unajua unaweza kuta mfano framework X imegundulika na 100 bugs ila namba inakua kubwa kwa sababu frameworks zinacover vitu vingi saaana, so mathematically lazima iwe na bugs nyingi. Na hivo hvo custom code inakua na posibillity ya less to zero exploitable bugs kwa sababu mtu kakacover specific needs tu ambazo ni chache sana. Na pia ukikuta "customly coded project" iloandikwa na coder anaejielewa kuupdate sio shida (that's from my experience). Tuongee vitu realistic mkuu naona bado upo too theoretical coz mfano ulotoa unaonesha hilo. Pia unajua chanzo kikubwa cha bugs kwenye framework ni kutaka kucover use cases nyingi, ila huyu wa custom anacover specific use case.

Not true. Mfano a well secured password generated by PHP password function, itakuchukua muda gani kui hack?

Je ni setup test code niziweke github halafu utuambie what is in protected member area? Tunaweza kufanya test kama ukikibali
kumbuka issue kama hio unayosemea ni language level mkuu, haitegemei framework. Na umenikumbusha kitu, kuna siku nlimwambia jamaa yangu kwenye face to face discussion kwamba:

"PHP as it is ilitengenezwa kuwa very simple for web dev needs, yenyewe kama yenyewe bila framework inajitosheleza saaaana kutengeneza backend nzr tu kwa mtu aloisoma na kuielewa, hio kwa sababu kuna built-in functions za karibia kila kitu unachohitaji bila kuongeza layer"

one of the functions nilimaanisha hio password_hash na password_verify unazosemea, nyingine ni getimagesize(), session_start() na ndg zake, filter_var(), etc.... hizo tu mkuu ukizitumia vzr unaweza tengeneza web app ambayo iko secure vzr tu, ww utabakia ku-update php version yako, configuration nzr ya webserver yako na minor fixes kwenye code tu. Any experienced PHP developer can understand that mkuu. Simple things should be done in simple ways..........

Hapa hata sijaelewa unachojaribu kusema. OOP na FP ni different ways za ku solve tatizo. Sasa hebu fafanua hizi issue za data abstraction hapa zimeongiaje?
Basi ngoja nikueleweshe nlichomaanisha.

Kama unakumbuka ulisema "classes zina-group functions na kuadd vitu vdg vdg tu" hapo najua ulimaanisha methods. Sasa behaviour kwenye OOP ni kuongelea methods (hizo functions ulizosema ziko grouped), na data ndo hizo data ambazo ziko specific to that class instance (object) au class itself(kwa static context). Kwa mtu asoelewa haya mambo hio statement yako ataiona iko kawaida lkn kwa geek atakushangaa. Ndo maana nikaingiza issue khs data & behavior abstraction nikidhan utaona mahala statement yako ilipo wrong lkn kama bado hauoni basi sina cha zaidi. Kuikosoa OOP sio kwamba siitumii, naitumia na naielewa vzr sana.


May be because you know machines aint confused by correctly written code regardless of whether the paradigm is FP or OOP
Mkuu mie nacode 'low-level' stuffs so nikikwambia kuhusu machine-level naelewa ninachosema. Kuna comment hapo juu dronedrake alisema executable bin inayokua generated kutokana na code zilizoandikwa kwa OOP ni tofauti na executable bin inayotengenezwa kutokana na mtu alotumia Proceudral au Functional Paradigm. Kama hio haijakufanya uelewe basi with all due respect mie sina cha zaidi kuelezea kwa mtu mwenye muda mrefu kwenye game kama ww, labda angekua mtu aloingia juzi ndo ningeanza A to L then kama atanielewa nikamalizia to Z



Lastly mie kusema mabaya ya OOP na frameworks sio kwamba sizitumii, coz kuna muda mteja mwenyewe anataka utumie framework fln. Na pia mie nimefanya sana projects za mobile app kabla kotlin na hizi reactnative plus ndg zake flutter hawajawa na solid support kwenye game(enzi hizo unatangaza zile kozi mkuu), so kiufupi nimetumia sana Java mkuu. Na nadhan unaelewa java ni purely OOP based.

Ila kiutaalam lazima nirecommend kitu au stack kutokana na mahitaji na ulazima wake, na ili nifanye right decision inabidi nisifanye kishabiki au kwa kukariri bali niwe na uelewa kwa kila option iliopo.

Mfano huwezi nipa simple CRUD based Admin system eti nianze kuangaika na sijui laravel, mara blades, mara kuset tooling, mara composer ianze kunipa errors, mara uchafu gn sijui. Hapo nakupa session_start() for login, session_destroy() for logout, session_status() kuangalia kama user yupo logged in. Kwenye panel All CRUD ops na kuingiza data za users natumia PDO kuhakisha security kwenye db communication. Natumia the humble password_hash() na password_verify() kuhandle password security. Hapo in in 3 days namaliza kazi ya mtu, 4th nafanya test, 5th natengeneza documentation nisije nikasahu 'how I did what I did', 6th namkabidhi mtu kazi yake then nakula kama sio laki nane( bei ya kibongo) finished. Hapo nitauupdate php version tu coz nimetumia core functions ambazo kuzihack labda niwe na wrong webserver configuration (mfano khs sessions) au igundulike glitch kwenye core php ambayo nayo inakuwa fixed nikiupdate php version.
 
Mkuu with all due respect najua uko long sana kwenye game, trust me mie nimekufuatilia sana nyuzi zako coz nilikua najifunza programming wakati ambao mtu angeongelea haya mambo asinge-eleweka, na kama una kumbuka una kozi humu ushagaziweka tangazo zamani sana ila sadly sikua na hela ya kuji-enrol(enzi hizoooo) na pia mambo mengi ulosema utafundisha nlikua nishapata ground-start.
Very good, man!
Mie ni highschool dropout, self taught, addicted fullstack computer programmer. Japo nimedrop shule ila nasoma sana vitabu na research papers kwenye hii field bila kusahau documentation ya vitu nlivo na interest navyo. Mfano Last year nlikua na interview na jamaa wa kampuni fln ila maswali yao na code test wanaquote from documentation kama zilivyo. Mwisho baada ya kuninyima kazi yao - fulltime(coz sina cheti cha CS na wao cheti ilikua requirement kwa fulltime job) niliwaambia "this, this and this mmetoa directly kutoka kwenye documentation ya ReactJS, and this and this mmetoa directly kutoka kwenye documentation ya PHP, here you changed a variable name and here you made an error while copying". Jamaa hadi leo waninipa part time jobs zao.
I see. Ila hao wandugu process yao ya interview fake sana.
Huwezi kumwacha qualified personnel kwa sababu ya cheti. Anyway ni kampuni yao, so wana uhuru wa kuamua. ila IMHO walikosea

So nadhan unaona tuna backgrounds tofauti, nasema hivyo sio kujimwambafy ila kuweka record sawa for future reference.
Hahahaa, message nimeipata uzuri kabisa ;)
Pia nikukumbushe, it's not a matter of how long you are in a game but it's a matter of how long you'll successfully last. Yahoo alikuwepo years kabla ya google, na skype imekuwepo miaka kabla ya zoom ila matokeo sitaki kusema coz natumaini unayajua. Narudia tena nasema hayo kuweka record sawa, so lets get back to the main point mkuu
You are right that time might not matter. But time and daily workout/practice and learning is something else boss!

Haaaaahaaa Mkuu sio kila watu wakipata bugs kwenye hzo frameworoks basi zitawork kwenye custom codes unless iwe ni "language level" glitch.
Tudiscuss kwa ukweli sio kutafuta umati.
Kwanza tuachane na mambo ya kutafuta impression. Nimesema vizuri mwanzoni huwa siandiki kutafuta impression ya mtu bali kwa lengo la kusogezana na ku share fact as well as kuweka rekodi sawa. So kutafuta impression huwa sio kabisa motive inayonifanya niandike JF.In fact hili jukwaa sio sahihi kutafuta impression. So right, tuongelee vitu vya msingi!
Unajua unaweza kuta mfano framework X imegundulika na 100 bugs ila namba inakua kubwa kwa sababu frameworks zinacover vitu vingi saaana, so mathematically lazima iwe na bugs nyingi.
Hii sio sahihi kwa framework nyingi ninazozifahamu. Mfano, Laravel inatumia components kadhaa toka Symfony framework. Yii2 iko divided depending na functionalities.

1. framework/composer.json at 9.x · laravel/framework
2. yii2/framework at master · yiisoft/yii2

Kwa hiyo siyo kweli kwamba bug 1 inazaa multiple bugs automagically. Kwa sababu ya compartmentalization most of the time bugs zinakuwa isolated. Unaweza ku pick mifano labda toka kwa hizi framework:
1. Issues · yiisoft/yii2
2. Issues · laravel/framework

Moreover, hili pia lingekuwa possible, lingetokea pia kwenye one man code pia, maana tofauti yake ni kwamba ya kwako ni one-man code na hizi ni many men code. But hii scenario yako tunaweza i pose kwenye code zako na matokeo yatakuwa ni worse kwa sababu multiplied bugs itakuwa mzigo mzito kuliko uwezo wako wa ku manage.

Na hivo hvo custom code inakua na posibillity ya less to zero exploitable bugs kwa sababu mtu kakacover specific needs tu ambazo ni chache sana.
Nadhani huioni point ya msingi. Scrutiny, scrutiny, scrutiny! Ukiwa mmoja hata kwenye kuandika tu kiswahili bado unakuta kuna bugs. Sasa inakuwaje kwenye code zote za project? Majibu yanapaswa kuwa opposite, kwamba kwenye macho na matumizi mengi ni rahisi ku spot na ku fix bugs. Kinyume chake ukiwa na mtu mmoja. Ndio sababu ya Linux kuwa secure kuliko Windows.

Na pia ukikuta "customly coded project" iloandikwa na coder anaejielewa kuupdate sio shida (that's from my experience).
Ku update unafanyaje kwa mfano, kama sio kuandika codes mpya za ku update code za zamani? Ni rahisi zaidi ya kuandika composer update kwenye terminal na kupata kikombe cha kahawa? Naam lazima uzisome code, uelewe whole logic behind it, uelewe panapohitaji update and then ndio uandike update, tests, et al. This is too much to be called simple!
Tuongee vitu realistic mkuu naona bado upo too theoretical coz mfano ulotoa unaonesha hilo. Pia unajua chanzo kikubwa cha bugs kwenye framework ni kutaka kucover use cases nyingi, ila huyu wa custom anacover specific use case.
Nadhani hili neno uko na too theory ungeliacha tu. Wewe ndio kimsingi umeandika nadhari za kutosha. Sentensi yako hii ni nadharia. Kwenye framework unakuta kuna kundi lina deal na database, wapo wanao deal na http, wengine wana deal na kitu kingine. So framework is even better kwa sababu kwenye kila part ya one-man code ni wewe. Can't emphasize that enough.

Morever, framworks huwa zina share libraries. Mfano nimetoa laravel (check composer file pale juu) inatumia libraries za Symfony. Ina maana hizo library ziko maintained na Symfony na Laravel communities. Hapo sasa ni vichwa vingapi? Na bado framework kama Slim zinatumia baadhi ya hizo pia. Sioni faida ya one-man code over using decent framework. Hakuna!

Labda nirudie tena, one-man code is disadvantage from all angles!
kumbuka issue kama hio unayosemea ni language level mkuu, haitegemei framework.
Huo ni mfano mdogo sana nilitoa kwa kusudi husika. Kuna vitu vingine ambavyo kwenye language level ni tata sana kuvifanya. Mfano kuandika flexible and dencent role based access control ni shughuli kwa sababu ni pattern ambayo siyo rahisi kuifanya. Kuandika whole Inversion of Control mwenyewe from ground up sio mchezo. Lakini hivi vyote unavipata bure kwenye any decent framework. Na ikiwa imtumika kwenye project za kutosha so it is well vetted than your one man code will ever be.
Na umenikumbusha kitu, kuna siku nlimwambia jamaa yangu kwenye face to face discussion kwamba:

"PHP as it is ilitengenezwa kuwa very simple for web dev needs, yenyewe kama yenyewe bila framework inajitosheleza saaaana kutengeneza backend nzr tu kwa mtu aloisoma na kuielewa, hio kwa sababu kuna built-in functions za karibia kila kitu unachohitaji bila kuongeza layer"
Niambie build in function inayokusaidia kufanya yafuatayo bila kuandika lines of codes kufanya hizi functionalities:
1. Role based access control (flexible and not hard-coded)
2. Inversion of Control

Anza na hizo kwanza halafu utagundua how true or false your statement it.

Hakuna language unaweza kufanya anything significant bila kuongeza layer of code. Hii ni nadharia yako nyingine. Lazima utajenga tu layers kuendana na biz logic yako.

one of the functions nilimaanisha hio password_hash na password_verify unazosemea, nyingine ni getimagesize(), session_start() na ndg zake, filter_var(), etc.... hizo tu mkuu ukizitumia vzr unaweza tengeneza web app ambayo iko secure vzr tu, ww utabakia ku-update php version yako, configuration nzr ya webserver yako na minor fixes kwenye code tu. Any experienced PHP developer can understand that mkuu. Simple things should be done in simple ways..........
Very simplistic example. Let say nataka kuwa na granular role based access control. PHP as language inanisaidiaje? Au nataka app yangu iwe multilingual nafanyaje? Au nataka kufanya code zangu kuwa easily testable, so nataka kufanya dependency injection badala ya hardcoding them, nafanyaje?

Utaona tu kiuhalisia hii nayo ni nadharia. Beyond simple stuffs, any language needs a framework for common functionalities, one-man or community driven!
Basi ngoja nikueleweshe nlichomaanisha.

Kama unakumbuka ulisema "classes zina-group functions na kuadd vitu vdg vdg tu" hapo najua ulimaanisha methods.
Hii ni interporlation yako. classes zinaongeza vitu vidogo vidogo vingi tu kama ctors, dtors, inheritance, composition, polymorphism, et al
Vyote hivi ni vitu simple na vidogo vidogo tu lakini implication yake ni ballistic!

Sasa behaviour kwenye OOP ni kuongelea methods (hizo functions ulizosema ziko grouped), na data ndo hizo data ambazo ziko specific to that class instance (object) au class itself(kwa static context). Kwa mtu asoelewa haya mambo hio statement yako ataiona iko kawaida lkn kwa geek atakushangaa. Ndo maana nikaingiza issue khs data & behavior abstraction nikidhan utaona mahala statement yako ilipo wrong lkn kama bado hauoni basi sina cha zaidi. Kuikosoa OOP sio kwamba siitumii, naitumia na naielewa vzr sana.
Wewe ulisema OOP ni about data abstraction or something along those lines. That is false. Kwa sababu OOP ni paradigm as opposed to just an abstraction of data. It goes well beyond just data abstraction. Unasema statement yangu ni wrong kwa sababu umeitafsiri wrong so naturally lazima iwe wrong.

Mkuu mie nacode 'low-level' stuffs so nikikwambia kuhusu machine-level naelewa ninachosema.
Nimeandika sana low level codes pia kwa ajili ya embedded devices. So najua kuwa kitu ikifikia kwenye machine code haijui hata mwandishi wa high level aliandika kitu gani hence hakuna confusion hapo! Kusema tu naelewa ninachosema una assume wengine hawaelewi wanachokisema, which is false.

PHP code, whether written on top of one man code or otherwise ikiisha kuwa interpreted na PHP Intepreter inakuwa haina tofauti na any other language. Toka kwenye PHP Interpreter kwenda kwenye OS instructions zinaenda kama machine code, na hivyo no confusion. Unless ulete maelezo ya kujitosheleza beyond "najua ninachosema" then itakuwa rahisi kuonyesha kwamba ninachokisema sio sahihi. Ukiweza kuonesha hapo, ni mjinga tu atakataa. Lakini kinyume na hapo, hapana!

Kuna comment hapo juu dronedrake alisema executable bin inayokua generated kutokana na code zilizoandikwa kwa OOP ni tofauti na executable bin inayotengenezwa kutokana na mtu alotumia Proceudral au Functional Paradigm. Kama hio haijakufanya uelewe basi with all due respect mie sina cha zaidi kuelezea kwa mtu mwenye muda mrefu kwenye game kama ww, labda angekua mtu aloingia juzi ndo ningeanza A to L then kama atanielewa nikamalizia to Z
Tunaongelea confusion kwa machine na sio performance au vitu ambavyo dronedrake alikuwa anaviongelea so unanukuu wrong conversation to prove your point. Elezea machine inakuwa confused vipi ukiandika code kwa framework au OOP? Hapo ndio suala lilipokuwa, usihamishe goli!

Lastly mie kusema mabaya ya OOP na frameworks sio kwamba sizitumii, coz kuna muda mteja mwenyewe anataka utumie framework fln. Na pia mie nimefanya sana projects za mobile app kabla kotlin na hizi reactnative plus ndg zake flutter hawajawa na solid support kwenye game(enzi hizo unatangaza zile kozi mkuu), so kiufupi nimetumia sana Java mkuu. Na nadhan unaelewa java ni purely OOP based.
Unless uko kwenye field specific ambayo inadai FP, OOP ni unkwepable! Na kama unataka project ambayo ni productive na secure, specifically kwenye Web Apps, frameworks ni unkwepable. Na kuwa productive kwenye any language, libraries are unkwepable!
Hii ni fact! Jaribu kufanya development kwa kuyadharau hayo uone unafika wapi!

Ila kiutaalam lazima nirecommend kitu au stack kutokana na mahitaji na ulazima wake,
Right! Si kila mahali nyundo inafaa, but this wasn't the topic of discussion
na ili nifanye right decision inabidi nisifanye kishabiki au kwa kukariri bali niwe na uelewa kwa kila option iliopo.
Kila option iliyopo? Nope! Major options zilizopo, Yes!
But again this is not what the post you quoted was all about!

Mfano huwezi nipa simple CRUD based Admin system eti nianze kuangaika na sijui laravel, mara blades, mara kuset tooling, mara composer ianze kunipa errors, mara uchafu gn sijui. Hapo nakupa session_start() for login, session_destroy() for logout, session_status() kuangalia kama user yupo logged in. Kwenye panel All CRUD ops na kuingiza data za users natumia PDO kuhakisha security kwenye db communication. Natumia the humble password_hash() na password_verify() kuhandle password security. Hapo in in 3 days namaliza kazi ya mtu
With Yii for example hii kazi ni ya saa 1-3 depending na level ya mhusika na sio siku tatu, Sasa labda utaelewa maelezo yangu hapo juu. Yaani nikiwa na database, whole CRUD and Login thing ni 30-45 min iko done and working!

Sasa hapo faida uliyoipata ni ipi kwenye ulimwengu wa biashara ambapo muda ni kila kitu? Umepoteza siku mbili na masaa kadhaa kwa kazi ya maximum 3 hours! Na hapo sijatumia any Yii extension. Nikitumia Yii extension basi Registration, Login, Forgot Password, User management na Roles zao siandiki hata chembe ya code. Ni composer require .... done!
Then nafanya simple config in 5min na kuandika the rest of crud in 30min max, done!

, 4th nafanya test,
Inabidi uandike testing kwa kutumia.... testing FRAMEWORK whether ni Codeception au old good PHPUnit!
5th natengeneza documentation nisije nikasahu 'how I did what I did',
Framework inagenerate well documented code and itself, with standard name, and its classes are well documented, so I write nothing
6th namkabidhi mtu kazi yake then nakula kama sio laki nane( bei ya kibongo) finished.
Laki nane kwa siku tatu, assuming kuna project nyingi, mimi naongelea mil 2.4
Finger crossed!

Hapo nitauupdate php version tu coz nimetumia core functions ambazo kuzihack labda niwe na wrong webserver configuration (mfano khs sessions) au igundulike glitch kwenye core php ambayo nayo inakuwa fixed nikiupdate php version.
Hapo kwangu kinachoongezeka ni extra composer update which is ridiculously simple to do it.

To be fair with you umeandika too simplistic. Kila PHP version inakuja na changes, deprecations and dropping already deprecated code. Mfano Password Verify imekuja kuanzia PHP 5.5 which means chini ya hapo kulikuwa na something else. Kama ulikuwa una update toka v5.4 unatakiwa ku update project zako ZOTE ulizowahi kuandika na crypt or something similar kwenda kwenye new function.

Also ukiangalia Password Hash, ina warning:
The salt option is deprecated. It is now preferred to simply use the salt that is generated by default. As of PHP 8.0.0, an explicitly given salt is ignored.
Which means huko mbeleni itakuja kuondolewa and you have to track that and change ALL the project accordingly!

Hii ni mifano miwili tu ila sasa imagin your projects are full of ever changing functions. Baada ya miaka kadhaa kuna project zitakuwa unusable kwenye major PHP hoops, unless mtu wa ku fix all removed, changed functions awepo! This is hardly a good or simple thing!

Now kwa kuwa framework zinafanya abstraction ya underlying implementation, hautahitaji kufanya any change. Mfano Yii2 Security class kwa version zinazosupport password hash, inatumia hiyo else ina fall back kwenye old implementation. So hapa kwa mtu wa PHP 5.4 anaweza kufanya update kwenda PHP8.1 bila kujali project kuwa broken kwa sababu framework imefanya kazi nzima ya compatibility. Atakachofanya ni kutafuta namna ya ku update hashes kama vite kutuma OTP and then user anaweza ku update database password to new hashing system au kum login kwa old way na ku update hashes kwa kulazimisha password reset. Super easy than tracing all PHP changes through years!

Just as my concluding remarks, use whatever you think you want to use. But just do not call it best, when it isn't. Don't call it simple when in closer look it is headache. Don't call it productive when it wastes your good time!
 
Hakuna Ulazima wa kutumia Alpinejs au Javascript Unapotumia Livewire.

Na kwa simple interactions ambazo hazihitaji communication na server, (mfano drop-downs) Alpinejs inayo yote unayohitaji.

React na Vuejs zina strength na weaknesses zake, hazifai kwa kila project na wala sio standard way ya ku develop reactive UI.

Github wanatumia the same technique inayotumiwa na Livewire, no Js framework

Pia Vuejs na React ni preferably zaidi Kama lengo lako ni kutengeneza SPA, kwa web app zenye SEO in mind, sio recommended choice.

Laravel livewire, haiwezi sababisha DOS attack, hivi unaelewa nini maana ya DDOS anyway?
Anyway ningeweza kukujibu lakini tayari una kila kitu kichwani kwa kila nitakachoandika
 
Mie natumia pure PHP na ReactJS,

Frameworks zina ugumu fln usio wa lazima. Pia mie ni mpenzi wa functional programming ukilinganisha na OOP, coz tangu zamani naamini OOP haina performance nzr na ukiangalia frameworks hz kama laravel ni OOP based.

"Classes confuse both machines and people"
---unamjua
One man show!? Una kazi sana, ukiwa na project kubwa ni mateso kwa kweli
 
Very good, man!

I see. Ila hao wandugu process yao ya interview fake sana.
Huwezi kumwacha qualified personnel kwa sababu ya cheti. Anyway ni kampuni yao, so wana uhuru wa kuamua. ila IMHO walikosea


Hahahaa, message nimeipata uzuri kabisa ;)

You are right that time might not matter. But time and daily workout/practice and learning is something else boss!


Kwanza tuachane na mambo ya kutafuta impression. Nimesema vizuri mwanzoni huwa siandiki kutafuta impression ya mtu bali kwa lengo la kusogezana na ku share fact as well as kuweka rekodi sawa. So kutafuta impression huwa sio kabisa motive inayonifanya niandike JF.In fact hili jukwaa sio sahihi kutafuta impression. So right, tuongelee vitu vya msingi!

Hii sio sahihi kwa framework nyingi ninazozifahamu. Mfano, Laravel inatumia components kadhaa toka Symfony framework. Yii2 iko divided depending na functionalities.

1. framework/composer.json at 9.x · laravel/framework
2. yii2/framework at master · yiisoft/yii2

Kwa hiyo siyo kweli kwamba bug 1 inazaa multiple bugs automagically. Kwa sababu ya compartmentalization most of the time bugs zinakuwa isolated. Unaweza ku pick mifano labda toka kwa hizi framework:
1. Issues · yiisoft/yii2
2. Issues · laravel/framework

Moreover, hili pia lingekuwa possible, lingetokea pia kwenye one man code pia, maana tofauti yake ni kwamba ya kwako ni one-man code na hizi ni many men code. But hii scenario yako tunaweza i pose kwenye code zako na matokeo yatakuwa ni worse kwa sababu multiplied bugs itakuwa mzigo mzito kuliko uwezo wako wa ku manage.


Nadhani huioni point ya msingi. Scrutiny, scrutiny, scrutiny! Ukiwa mmoja hata kwenye kuandika tu kiswahili bado unakuta kuna bugs. Sasa inakuwaje kwenye code zote za project? Majibu yanapaswa kuwa opposite, kwamba kwenye macho na matumizi mengi ni rahisi ku spot na ku fix bugs. Kinyume chake ukiwa na mtu mmoja. Ndio sababu ya Linux kuwa secure kuliko Windows.


Ku update unafanyaje kwa mfano, kama sio kuandika codes mpya za ku update code za zamani? Ni rahisi zaidi ya kuandika composer update kwenye terminal na kupata kikombe cha kahawa? Naam lazima uzisome code, uelewe whole logic behind it, uelewe panapohitaji update and then ndio uandike update, tests, et al. This is too much to be called simple!

Nadhani hili neno uko na too theory ungeliacha tu. Wewe ndio kimsingi umeandika nadhari za kutosha. Sentensi yako hii ni nadharia. Kwenye framework unakuta kuna kundi lina deal na database, wapo wanao deal na http, wengine wana deal na kitu kingine. So framework is even better kwa sababu kwenye kila part ya one-man code ni wewe. Can't emphasize that enough.

Morever, framworks huwa zina share libraries. Mfano nimetoa laravel (check composer file pale juu) inatumia libraries za Symfony. Ina maana hizo library ziko maintained na Symfony na Laravel communities. Hapo sasa ni vichwa vingapi? Na bado framework kama Slim zinatumia baadhi ya hizo pia. Sioni faida ya one-man code over using decent framework. Hakuna!

Labda nirudie tena, one-man code is disadvantage from all angles!

Huo ni mfano mdogo sana nilitoa kwa kusudi husika. Kuna vitu vingine ambavyo kwenye language level ni tata sana kuvifanya. Mfano kuandika flexible and dencent role based access control ni shughuli kwa sababu ni pattern ambayo siyo rahisi kuifanya. Kuandika whole Inversion of Control mwenyewe from ground up sio mchezo. Lakini hivi vyote unavipata bure kwenye any decent framework. Na ikiwa imtumika kwenye project za kutosha so it is well vetted than your one man code will ever be.

Niambie build in function inayokusaidia kufanya yafuatayo bila kuandika lines of codes kufanya hizi functionalities:
1. Role based access control (flexible and not hard-coded)
2. Inversion of Control

Anza na hizo kwanza halafu utagundua how true or false your statement it.

Hakuna language unaweza kufanya anything significant bila kuongeza layer of code. Hii ni nadharia yako nyingine. Lazima utajenga tu layers kuendana na biz logic yako.


Very simplistic example. Let say nataka kuwa na granular role based access control. PHP as language inanisaidiaje? Au nataka app yangu iwe multilingual nafanyaje? Au nataka kufanya code zangu kuwa easily testable, so nataka kufanya dependency injection badala ya hardcoding them, nafanyaje?

Utaona tu kiuhalisia hii nayo ni nadharia. Beyond simple stuffs, any language needs a framework for common functionalities, one-man or community driven!

Hii ni interporlation yako. classes zinaongeza vitu vidogo vidogo vingi tu kama ctors, dtors, inheritance, composition, polymorphism, et al
Vyote hivi ni vitu simple na vidogo vidogo tu lakini implication yake ni ballistic!


Wewe ulisema OOP ni about data abstraction or something along those lines. That is false. Kwa sababu OOP ni paradigm as opposed to just an abstraction of data. It goes well beyond just data abstraction. Unasema statement yangu ni wrong kwa sababu umeitafsiri wrong so naturally lazima iwe wrong.


Nimeandika sana low level codes pia kwa ajili ya embedded devices. So najua kuwa kitu ikifikia kwenye machine code haijui hata mwandishi wa high level aliandika kitu gani hence hakuna confusion hapo! Kusema tu naelewa ninachosema una assume wengine hawaelewi wanachokisema, which is false.

PHP code, whether written on top of one man code or otherwise ikiisha kuwa interpreted na PHP Intepreter inakuwa haina tofauti na any other language. Toka kwenye PHP Interpreter kwenda kwenye OS instructions zinaenda kama machine code, na hivyo no confusion. Unless ulete maelezo ya kujitosheleza beyond "najua ninachosema" then itakuwa rahisi kuonyesha kwamba ninachokisema sio sahihi. Ukiweza kuonesha hapo, ni mjinga tu atakataa. Lakini kinyume na hapo, hapana!


Tunaongelea confusion kwa machine na sio performance au vitu ambavyo dronedrake alikuwa anaviongelea so unanukuu wrong conversation to prove your point. Elezea machine inakuwa confused vipi ukiandika code kwa framework au OOP? Hapo ndio suala lilipokuwa, usihamishe goli!


Unless uko kwenye field specific ambayo inadai FP, OOP ni unkwepable! Na kama unataka project ambayo ni productive na secure, specifically kwenye Web Apps, frameworks ni unkwepable. Na kuwa productive kwenye any language, libraries are unkwepable!
Hii ni fact! Jaribu kufanya development kwa kuyadharau hayo uone unafika wapi!


Right! Si kila mahali nyundo inafaa, but this wasn't the topic of discussion

Kila option iliyopo? Nope! Major options zilizopo, Yes!
But again this is not what the post you quoted was all about!


With Yii for example hii kazi ni ya saa 1-3 depending na level ya mhusika na sio siku tatu, Sasa labda utaelewa maelezo yangu hapo juu. Yaani nikiwa na database, whole CRUD and Login thing ni 30-45 min iko done and working!

Sasa hapo faida uliyoipata ni ipi kwenye ulimwengu wa biashara ambapo muda ni kila kitu? Umepoteza siku mbili na masaa kadhaa kwa kazi ya maximum 3 hours! Na hapo sijatumia any Yii extension. Nikitumia Yii extension basi Registration, Login, Forgot Password, User management na Roles zao siandiki hata chembe ya code. Ni composer require .... done!
Then nafanya simple config in 5min na kuandika the rest of crud in 30min max, done!


Inabidi uandike testing kwa kutumia.... testing FRAMEWORK whether ni Codeception au old good PHPUnit!

Framework inagenerate well documented code and itself, with standard name, and its classes are well documented, so I write nothing

Laki nane kwa siku tatu, assuming kuna project nyingi, mimi naongelea mil 2.4
Finger crossed!


Hapo kwangu kinachoongezeka ni extra composer update which is ridiculously simple to do it.

To be fair with you umeandika too simplistic. Kila PHP version inakuja na changes, deprecations and dropping already deprecated code. Mfano Password Verify imekuja kuanzia PHP 5.5 which means chini ya hapo kulikuwa na something else. Kama ulikuwa una update toka v5.4 unatakiwa ku update project zako ZOTE ulizowahi kuandika na crypt or something similar kwenda kwenye new function.

Also ukiangalia Password Hash, ina warning:

Which means huko mbeleni itakuja kuondolewa and you have to track that and change ALL the project accordingly!

Hii ni mifano miwili tu ila sasa imagin your projects are full of ever changing functions. Baada ya miaka kadhaa kuna project zitakuwa unusable kwenye major PHP hoops, unless mtu wa ku fix all removed, changed functions awepo! This is hardly a good or simple thing!

Now kwa kuwa framework zinafanya abstraction ya underlying implementation, hautahitaji kufanya any change. Mfano Yii2 Security class kwa version zinazosupport password hash, inatumia hiyo else ina fall back kwenye old implementation. So hapa kwa mtu wa PHP 5.4 anaweza kufanya update kwenda PHP8.1 bila kujali project kuwa broken kwa sababu framework imefanya kazi nzima ya compatibility. Atakachofanya ni kutafuta namna ya ku update hashes kama vite kutuma OTP and then user anaweza ku update database password to new hashing system au kum login kwa old way na ku update hashes kwa kulazimisha password reset. Super easy than tracing all PHP changes through years!

Just as my concluding remarks, use whatever you think you want to use. But just do not call it best, when it isn't. Don't call it simple when in closer look it is headache. Don't call it productive when it wastes your good time!
Mkuu tushaiba uzi wa watu, nikiendelea hapa tutajaza magazeti. Na pia hatuelewani sana sijajua kwa nn coz nikisoma ulichoandika naona unaenda nje ya point zangu.

Anyway kama nlivyosema mwanzo kabisa sita inaweza kuwa tisa kutokana na anaeiangalia na upande alipokaa. Na tukienda mwanzo kabisa alowasha moto huu alisema "OOP is more efficient than functional" na hapo ndipo nnapopinga. Issue za frameworks zimeingia kujenga hoja ila tunapoelekea tunazidi kutoka nje kabisa, refer my first comments. Khs one man code, haaahaaa hio tutakesha kuelezana hapa.

All in all it has been a pleasure mkuu.
 
Mkuu tushaiba uzi wa watu, nikiendelea hapa tutajaza magazeti. Na pia hatuelewani sana sijajua kwa nn coz nikisoma ulichoandika naona unaenda nje ya point zangu.
Tuuache uzi wa watu uendelee, kabla hatujashtakiwa ;)
All in all it has been a pleasure mkuu.
Yes sure, these kinds of discussions are really good, no matter if you end up agreeing or not.
Have God blessed day.
Cheers!
 
Nawakumbusha tu 😁

 
Nawakumbusha tu 😁

Huyu alikutana na wapuuzi wenzie. Nae ni zero tu. Utatoaje 1.5 m advance kwa kampuni bila kukupa project roadmap?
 
huwezi ku generalise kwamba 'OOP ni superior kuliko functional programming' vinginevyo ntakuona programmer wa mchongo

OOP iko superior kwenye muktadha x, functional iko superior kwenye muktadha y

ni sawa useme assembly na C ziko obsolete kwakua tu OOP iko superior

haimake sense nna instance moja then ntumie OOP

nafanya coding kwa devices zilizo na limited RAM,

nikitumia assembly napata speed ya juu , less hogged processor na very low RAM consumption, compared na nikitumia plain C

naintroduce OOP kukiwa na ulazima wa kufanya hivyo na pindi nnapo deal na machine yenye RAM kubwa, OOP ina bloats kwenye RAM, overheads na kama Kali alivyodai, huo wote ni mzigo kwa machine husika (less efficient)


machine inaexecute compiled code, HEX iliyotokana na fuctional ni sawa na mtaa, HEX ya OOP ni sawa na kata, kwa programs mbili zenye ku peform task ileile
I have question, from point of your view that FP &OOP are specific, is it necessary to learn both to fit in all. If not how can i solve the problem which need OOP while i"m expert of FP or viceversa.
I once asked a comp engineer who was 4th year by that time that why didn't he master C and use it , he answered me that "Java can do everything !" so he had no need to master it, what can be your answer if i ask you the same question ?
 
Hata hiyo 1.5M hienda hakutoa kiasi hicho, hawa ni aina ya wale wapenda miteremko
 
Very good, man!

I see. Ila hao wandugu process yao ya interview fake sana.
Huwezi kumwacha qualified personnel kwa sababu ya cheti. Anyway ni kampuni yao, so wana uhuru wa kuamua. ila IMHO walikosea


Hahahaa, message nimeipata uzuri kabisa ;)

You are right that time might not matter. But time and daily workout/practice and learning is something else boss!


Kwanza tuachane na mambo ya kutafuta impression. Nimesema vizuri mwanzoni huwa siandiki kutafuta impression ya mtu bali kwa lengo la kusogezana na ku share fact as well as kuweka rekodi sawa. So kutafuta impression huwa sio kabisa motive inayonifanya niandike JF.In fact hili jukwaa sio sahihi kutafuta impression. So right, tuongelee vitu vya msingi!

Hii sio sahihi kwa framework nyingi ninazozifahamu. Mfano, Laravel inatumia components kadhaa toka Symfony framework. Yii2 iko divided depending na functionalities.

1. framework/composer.json at 9.x · laravel/framework
2. yii2/framework at master · yiisoft/yii2

Kwa hiyo siyo kweli kwamba bug 1 inazaa multiple bugs automagically. Kwa sababu ya compartmentalization most of the time bugs zinakuwa isolated. Unaweza ku pick mifano labda toka kwa hizi framework:
1. Issues · yiisoft/yii2
2. Issues · laravel/framework

Moreover, hili pia lingekuwa possible, lingetokea pia kwenye one man code pia, maana tofauti yake ni kwamba ya kwako ni one-man code na hizi ni many men code. But hii scenario yako tunaweza i pose kwenye code zako na matokeo yatakuwa ni worse kwa sababu multiplied bugs itakuwa mzigo mzito kuliko uwezo wako wa ku manage.


Nadhani huioni point ya msingi. Scrutiny, scrutiny, scrutiny! Ukiwa mmoja hata kwenye kuandika tu kiswahili bado unakuta kuna bugs. Sasa inakuwaje kwenye code zote za project? Majibu yanapaswa kuwa opposite, kwamba kwenye macho na matumizi mengi ni rahisi ku spot na ku fix bugs. Kinyume chake ukiwa na mtu mmoja. Ndio sababu ya Linux kuwa secure kuliko Windows.


Ku update unafanyaje kwa mfano, kama sio kuandika codes mpya za ku update code za zamani? Ni rahisi zaidi ya kuandika composer update kwenye terminal na kupata kikombe cha kahawa? Naam lazima uzisome code, uelewe whole logic behind it, uelewe panapohitaji update and then ndio uandike update, tests, et al. This is too much to be called simple!

Nadhani hili neno uko na too theory ungeliacha tu. Wewe ndio kimsingi umeandika nadhari za kutosha. Sentensi yako hii ni nadharia. Kwenye framework unakuta kuna kundi lina deal na database, wapo wanao deal na http, wengine wana deal na kitu kingine. So framework is even better kwa sababu kwenye kila part ya one-man code ni wewe. Can't emphasize that enough.

Morever, framworks huwa zina share libraries. Mfano nimetoa laravel (check composer file pale juu) inatumia libraries za Symfony. Ina maana hizo library ziko maintained na Symfony na Laravel communities. Hapo sasa ni vichwa vingapi? Na bado framework kama Slim zinatumia baadhi ya hizo pia. Sioni faida ya one-man code over using decent framework. Hakuna!

Labda nirudie tena, one-man code is disadvantage from all angles!

Huo ni mfano mdogo sana nilitoa kwa kusudi husika. Kuna vitu vingine ambavyo kwenye language level ni tata sana kuvifanya. Mfano kuandika flexible and dencent role based access control ni shughuli kwa sababu ni pattern ambayo siyo rahisi kuifanya. Kuandika whole Inversion of Control mwenyewe from ground up sio mchezo. Lakini hivi vyote unavipata bure kwenye any decent framework. Na ikiwa imtumika kwenye project za kutosha so it is well vetted than your one man code will ever be.

Niambie build in function inayokusaidia kufanya yafuatayo bila kuandika lines of codes kufanya hizi functionalities:
1. Role based access control (flexible and not hard-coded)
2. Inversion of Control

Anza na hizo kwanza halafu utagundua how true or false your statement it.

Hakuna language unaweza kufanya anything significant bila kuongeza layer of code. Hii ni nadharia yako nyingine. Lazima utajenga tu layers kuendana na biz logic yako.


Very simplistic example. Let say nataka kuwa na granular role based access control. PHP as language inanisaidiaje? Au nataka app yangu iwe multilingual nafanyaje? Au nataka kufanya code zangu kuwa easily testable, so nataka kufanya dependency injection badala ya hardcoding them, nafanyaje?

Utaona tu kiuhalisia hii nayo ni nadharia. Beyond simple stuffs, any language needs a framework for common functionalities, one-man or community driven!

Hii ni interporlation yako. classes zinaongeza vitu vidogo vidogo vingi tu kama ctors, dtors, inheritance, composition, polymorphism, et al
Vyote hivi ni vitu simple na vidogo vidogo tu lakini implication yake ni ballistic!


Wewe ulisema OOP ni about data abstraction or something along those lines. That is false. Kwa sababu OOP ni paradigm as opposed to just an abstraction of data. It goes well beyond just data abstraction. Unasema statement yangu ni wrong kwa sababu umeitafsiri wrong so naturally lazima iwe wrong.


Nimeandika sana low level codes pia kwa ajili ya embedded devices. So najua kuwa kitu ikifikia kwenye machine code haijui hata mwandishi wa high level aliandika kitu gani hence hakuna confusion hapo! Kusema tu naelewa ninachosema una assume wengine hawaelewi wanachokisema, which is false.

PHP code, whether written on top of one man code or otherwise ikiisha kuwa interpreted na PHP Intepreter inakuwa haina tofauti na any other language. Toka kwenye PHP Interpreter kwenda kwenye OS instructions zinaenda kama machine code, na hivyo no confusion. Unless ulete maelezo ya kujitosheleza beyond "najua ninachosema" then itakuwa rahisi kuonyesha kwamba ninachokisema sio sahihi. Ukiweza kuonesha hapo, ni mjinga tu atakataa. Lakini kinyume na hapo, hapana!


Tunaongelea confusion kwa machine na sio performance au vitu ambavyo dronedrake alikuwa anaviongelea so unanukuu wrong conversation to prove your point. Elezea machine inakuwa confused vipi ukiandika code kwa framework au OOP? Hapo ndio suala lilipokuwa, usihamishe goli!


Unless uko kwenye field specific ambayo inadai FP, OOP ni unkwepable! Na kama unataka project ambayo ni productive na secure, specifically kwenye Web Apps, frameworks ni unkwepable. Na kuwa productive kwenye any language, libraries are unkwepable!
Hii ni fact! Jaribu kufanya development kwa kuyadharau hayo uone unafika wapi!


Right! Si kila mahali nyundo inafaa, but this wasn't the topic of discussion

Kila option iliyopo? Nope! Major options zilizopo, Yes!
But again this is not what the post you quoted was all about!


With Yii for example hii kazi ni ya saa 1-3 depending na level ya mhusika na sio siku tatu, Sasa labda utaelewa maelezo yangu hapo juu. Yaani nikiwa na database, whole CRUD and Login thing ni 30-45 min iko done and working!

Sasa hapo faida uliyoipata ni ipi kwenye ulimwengu wa biashara ambapo muda ni kila kitu? Umepoteza siku mbili na masaa kadhaa kwa kazi ya maximum 3 hours! Na hapo sijatumia any Yii extension. Nikitumia Yii extension basi Registration, Login, Forgot Password, User management na Roles zao siandiki hata chembe ya code. Ni composer require .... done!
Then nafanya simple config in 5min na kuandika the rest of crud in 30min max, done!


Inabidi uandike testing kwa kutumia.... testing FRAMEWORK whether ni Codeception au old good PHPUnit!

Framework inagenerate well documented code and itself, with standard name, and its classes are well documented, so I write nothing

Laki nane kwa siku tatu, assuming kuna project nyingi, mimi naongelea mil 2.4
Finger crossed!


Hapo kwangu kinachoongezeka ni extra composer update which is ridiculously simple to do it.

To be fair with you umeandika too simplistic. Kila PHP version inakuja na changes, deprecations and dropping already deprecated code. Mfano Password Verify imekuja kuanzia PHP 5.5 which means chini ya hapo kulikuwa na something else. Kama ulikuwa una update toka v5.4 unatakiwa ku update project zako ZOTE ulizowahi kuandika na crypt or something similar kwenda kwenye new function.

Also ukiangalia Password Hash, ina warning:

Which means huko mbeleni itakuja kuondolewa and you have to track that and change ALL the project accordingly!

Hii ni mifano miwili tu ila sasa imagin your projects are full of ever changing functions. Baada ya miaka kadhaa kuna project zitakuwa unusable kwenye major PHP hoops, unless mtu wa ku fix all removed, changed functions awepo! This is hardly a good or simple thing!

Now kwa kuwa framework zinafanya abstraction ya underlying implementation, hautahitaji kufanya any change. Mfano Yii2 Security class kwa version zinazosupport password hash, inatumia hiyo else ina fall back kwenye old implementation. So hapa kwa mtu wa PHP 5.4 anaweza kufanya update kwenda PHP8.1 bila kujali project kuwa broken kwa sababu framework imefanya kazi nzima ya compatibility. Atakachofanya ni kutafuta namna ya ku update hashes kama vite kutuma OTP and then user anaweza ku update database password to new hashing system au kum login kwa old way na ku update hashes kwa kulazimisha password reset. Super easy than tracing all PHP changes through years!

Just as my concluding remarks, use whatever you think you want to use. But just do not call it best, when it isn't. Don't call it simple when in closer look it is headache. Don't call it productive when it wastes your good time!
Unahitaji kujua JavaScript ili uweze kutumia Lavarel?
 
Back
Top Bottom