![]() |
någon som använder framework?
har märkt att det tar tid att sätta sig in i hur ett framework fungerar. är det värt tiden? hur ofta är det att man använder ett framework för att ta fram ett projekt?
ni som programmerar webbtjänster, använder ni fw eller vanligt php? det blir ju lite som att lära sig ett annat språk helt plötsligt. testat mig på symfony (och sket i det då jag kom doctrine avsnittet) och hoppade över till cakephp som verkar en aning lättare för en nybörjare. är doctrine något bra att använda sig av istället för vanliga sql-kommandon? dela med er om åsikter. använde youtube/facebook-killarna sig av frameworks? |
fw finns till det mesta.
Jag använder gärna fw för javascript (jQuery) och css (960.gs) då det får snabbt att få till GUIt då. Ett fw är sällan någon nackdel. Inlärningströskeln är lägre, men vissa fw är lite oflexibla kan jag tycka. Iaf .NET i någon version sedan. |
Tvärtom så har frameworks i princip ALLTID en viktig nackdel nämligen att prestandan blir sämre. Vad gäller php så använder jag aldrig sådana och det gör man normalt sett aldrig när det handlar om sajter med tung trafik. Ska man nödvändigtvis använda sig av ett så finns det de som är betydligt sämre än andra, det finns en del tester att titta på om du söker på google.
När det gäller jQuery så är det en helt annan femma då det tvärtom brukar snabba upp javascript-exekveringen (om det används korrekt). |
ni som inte använder frameworks, programmerar ni enligt mvc? och använder ni er av orm? är nybörjare på programmering och har inte så bra koll på hur man ska strukturera upp koden varför jag ger mig in på cakephp så man har en struktur att följa och vet hur man borde programmera. senare kanske man kan hoppa av frameworket och programmera i samma mösnter och få bra prestanda. rätt tänk?
har gått igenom html, css, javascript, php och mysql men har ingen hum om hur man integrerar alla språken/filer med varandra och hur katalog-/filstrukturen ska se ut. finns det någon bra bok/tutorial som går igenom hur man ska strukturera upp allt? många tutorials som bara hoppar in på hur man kodar och inte ger mig just det jag behöver, ett framework att arbeta efter. och hur mycket uppskattas att man kan använda sig av frameworks när man söker jobb? kan väl inte vara så mkt då det finns många olika frameworks och det är stor risk att den man kan inte används dit man söker till. |
Jag tycker att det oftast är bra med ramverk, men man ska vara medveten om nackdelarna. Ett välskrivet ramverk kan lära dig mycket om best practices och smarta tillvägagångssätt. Nackdelarna är att det kan bli onödigt långsamt om ramverket har för många funktioner, samt att du kan råka ut för en del otrevliga attacker när en säkerhetslucka i ramverket blir känd.
Jag tycker ändå att fördelarna med ramverk överväger nackdelarna. Själv kör jag Ruby On Rails, men det finns flera bra även för PHP. Andreas Krohn pratar lite om exempelvis Code Igniter i avsnitt två av Webbradion på http://www.webbradion.net/avsnitt/2 |
Kör ofta på rails, mest för att ruby är ett så underbart språk!
|
Code Igniter och Zend har jag använt en del, de är riktigt bra och har väldigt många användare bakom sig.
Något som jag gör för mindre projekt är att skriva ett nytt eller åter använda ett lätt eget ramverk som i princip bara består av en router och ett register (och självklart /App/-> Model, Controller, View). Håller på en del med mitt eget ramverk också som kommer... någon gång. |
pluggar på hur cake php fungerar. är det så man kodar när man kodar oop? för jag är verkligen inte van vid det. lägg till mvc strukturen och jag är helt vilsen:)
när jag följde en tutorial på nätet om hur man kodar ett forum var det 0 oop och mvc och det var väldigt lätt att förstå. övertyga mig att jag inte slösar tid på att lära mig oop + mvc + framework!!! jag menar, det tar ju tid att lära sig ett framework. är det värt att lägga ner tiden. hur kodar man utan framework? t.ex. email validation. laddar jag bara ner någon validation code från nätet och klistrar in? eller finns det någon bibliotek man kan ladda ner med klasser .tex. Email->validation och anävnder den istället för att skriva egna regEx uttryck. någon som varit där jag befinner mig nu, give me some guidance eller rekommendera någon bok som lär en hur man strukturerar upp allt! |
Citat:
Det är värt tiden för just ett sådant scenario som du nämnde, validering. Varför uppfinna hjulet igen när någon annan redan har gjort det? Men detta gäller på alla komponenter av en webbsida, varför skriva om kod när det finns kod med jätte stor användarbas bakom sig som gör precis vad den ska? |
Citat:
Ditt välutvecklade språk och dina kunskaper inom webb amazes me ;) |
Citat:
Brukar använda en enkel princip som i princip liknar är MVC, men bla utan sk "templates", och gör en "Page Controller" klass per sida.. Exempel för en indexsida: <?php $page = new PageController_Index() ?> <html> <title><?php print $page->title ?></title> ... Ovanstående kan alltså ses som en "view", medans klassen fungerar som en "controller". "Modellen" med affärslogik hanteras sedan i en separat klass.. Tänk annars generellt på att: Undvik att baka in html, css, javascript i php koden. Lägg all CSS i .css filer. Lägg all javascript . js filer. ORM undviker jag i alla fall... Tänk generellt på att frameworks som Zend framework och tex Symphony framework kan passa i vissa situationer, men kanske inte om du kör egna projekt pga den komplexitet de innebär. |
Citat:
PHP-kod:
|
Älskar CodeIgniter!
Har tittat på bland annat CakePHP men fastnade för CI. Bra dokumentation, bra community och snabbt. :) ORM har jag aldrig fastnat för. jQuery för javascript är för mig ett måste. |
Ramverk är generellt betydeligt bättre än att arbeta utan ramverk. När man är nybörjare på programmering så kan det vara riktigt viktigt att lära sig flera olika ramverk så man får en överblick på marknaden. Det finns många ramverk att välja på.
Många gånger pratar man även om komponenttänkande som man haft i 100-tals år i byggbranchen. Det hela bygger på tanken med att återanvända tänkande och arbete som andra redan gjort. Så slipper man själv göra allt från början varje gång man utvecklar nya stystem, man bygger vidare på någon annans arbete hela tiden. Det gör att man hela tiden kommer funktionellt längre än man skulle gjort utan komponenterna för samma kostnad. MVC är ett mönster att koda efter (Model-View-Controler) som är rikktigt gammal, namnet dök väl upp för inte så många år sedan men mönstret som sådant har många år på nacken. Det är beprövat och funkar hyfsat så det är utmärkt för nybörjare att jobba efter, då får man en hygsat stabil grundstruktur i sina applikatoner. Tids nog bygger man upp egna erfarenheter p ådet företag man jobbar och gör tillägg till ramverket som snabbar upp utvecklingsprocessen ytterligare. Tänk dock alltid på att de tillägg du gör bör byggas så det underlättar att byta ramverk i framtiden. Prestandamässigt blir inet ramverk negativa för prestandan om man jpobbar med kompilerade binär-komponenter. |
Citat:
Det uppskattas verkligen! Mycket av det jag har lärt mig är tack vare alla här på WN. Positiva och kunniga människor som har motiverat mig! Försöker bara ge så mycket som möjligt tillbaka till communityn :) </OT> |
Citat:
Just nu jobbar jag mycket i Zend Framework. Där kan man verkligen kollra bort sig både prestandamässigt och i massor av lite för "fin" objektorientering. Men det är ändå något som ger struktur och massor av funktionalitet som frigör tid som bättre spenderas på kärnlogik. Så man ska använda rätt saker. När något ser ut att kunna bli ett prestandaproblem bygger man om och specialanpassar. Innan man ser något sådant är det onödigt att lägga tid på att skapa egen struktur eller bygga saker som redan finns. Vissa delar i ramverk kan till och med hjälpa dig undvika prestandafällor iom bra implementationer av cachning. Så även om jag själv mest använder Zend Framework för tillfället skulle jag råda den som vill använda ett PHP-ramverk men ändå bygga det mesta själv att använda Codeigniter och hålla sig till dess MVC-struktur samt deras active record för databasåtkomst. |
suttit hela dan med CI och den känns verkligen som en vinnare när jag testat både symfony och cakephp. tycer dom är för stora och komplexa för mina miniprojekt och att det skulle ta några veckors plugg innan man förstår dom helt.
CI är verkligen bra. redan nu efter en dag har jag förstår hur man programmerar efter MVC och fått med en massa best practices på köpet. som någon nämnde tidigare är det verkligen bra att köra efter MVC! detta med OOP är ganska kul att lära sig. man får mkt bättre överblick över koden och man vet vad man håller på med. även för ett medium projekt är det ju jädrans bra metod att programmera på. är det någon här som använder/använt cakephp? ville bara kommentera deras singular/plural namn konventioner. vad bökigt och oproffsigt:) inte alls vad man vill ha som programmerare? vi vill ju ha saker mer logiskt och korrekt. kändes som att man fick chansa på att namnen skulle passa. och bara att lägga ner tid på det (justera namnreglerna i konfigurationsfilen etc) kändes dumt. CI är så stilren med bästa dokumentationen EVER! den hjälper en så man kan komma igång med programmeringen direkt, och inte behöver lära sig massa annat än php som de andra kräver. läst lite om kohana. någon som kan säga något om det? alltid kul och höra debatt om x VS y:) skulle vilja höra mer om fler "programmeringsstyles" någon som vet om facebook och youtube togs fram av fw eller inte? |
Ang CodeIgniter vs Kohana
Har själv mest kört med CodeIgniter och har mest hört fördelar med det så som community, dokumentation och stöd för PHP4 (vilket inte är en fördel för mig dock). Kohana sägs vara lite renare. Sen påstår vissa att Kohana ger bättre prestanda genom att det är PHP5 only men har svårt att tro att det påverkar då CI kör base4/5 beroende på vilken version servern kör... Mer input om Kohana vore intressant! :) |
Tittat runt lite på Kohana's sida. För mig är CI grymt när det gäller struktur. Gillade inte Kohana's dokumentation men mer vet jag inte. För ett framework ska vara bra räcker det inte enbart med det kodmässiga. Hela paketet måste vara bra. Och CI teamet vet ju verkligen vad det är dom är ute efter att leverera. Stilren enkelhet, just like Apple. Fan vad deras dokumentation äger! Aldrig behövt anteckna så lite.
Någon som använt Kohana och kan kommentera det övriga? |
Citat:
Just därför har jag nästan inte skrivit några applikationer i Kohana men däremot använt kod från Kohana som inspiration för andra egna projekt. Precis som du säger, dokumentationen för CI är helt underbar! Kan förstå att du har börjat få förståelse för MVC så snabbt, hade jag hamnat direkt hos CI så hade jag nog också gjort det. Finns ganska många screencasts också där folk skriver kod för CI och berättar om den, rätt bra resurs. |
ni som använder CI använder ni enbart CI:s funktioner. Förstår inte riktigt detta med $this->db->get?
Så objektetn $this instantieras från databas klassen. vad är db om get är funktionen? är db klassen? fast i vanlig php skriver man som Danjel ovan nämnde: $page->title ? där andra segmentet är method/property. vad är db segmentet alltså? förstår inte heller $this->load->helper(). någon som kan förklara? grejen är att jag vill förstå varför man skriver som man skriver så man förstår hur allt hänger ihop. |
$this är CodeIgniter objektet
sen anropar du bibliotek, models, views etc. db i det här fallet är databasbiblioteket (http://codeigniter.com/user_guide/database/index.html) Själv kör jag alltid egna sql-frågor istället för de funktionerna som finns med. Antar att de ska göra det enklare och snabbare men jag vill ha kontroll över frågorna själv och ofta kan de bli lite småkrångliga och måste då ändå skrivas själv... |
Ett ganska intressant inlägg i debatten. http://www.brandonsavage.net/why-eve...own-framework/
Själv skapade jag min lilla konkurrent till PHP 1997 - 1998 i C, sedan skapade jag i PHP ett ramverk/CMS som hette Firesite 1999... Naturligtvis skapade jag även eget ajax-ramverk 2004 - 2005, som döptes till SRSS och senare Toxic (http://www.dotvoid.com/2005/03/remot...jax-framework/), innan prototype och jquery och de tog över helt. (Från 2001/2002 använde jag mig av remote scripting (http://www.dotvoid.com/2002/08/remot...th-javascript/) vilket man sen började använda för att modulärt ladda javascript-moduler). Man lär sig, som författaren skriver, väldigt mycket även om man sen i slutänden inte bör sitta med tidsödande underhåll av egna ramverk. (Vilket jag inte heller längre gör...) |
Citat:
En något högre utvecklingskostnad är ofta att föredra framför ett mer resurskrävande resultat, särskilt om man arbetar på sina egna tjänster vilket webbaserade företag normalt sett gör. |
$this tillhör php objektorienterat och går till instansen av det aktuella objektet. i CI så är det en instans av CI
$this->db är alltså att db är en variabel eller eller ett objekt innuti CI.. $this->db->get är alltså (get) en funktion eller en variabel innuti db innuti CI |
jag använder .net framework 3.5 :-)
|
Citat:
Och att du som programmerare som borde koncentrera dig på affärslogiken i projektet alltid skapar bättre prestanda än de som koncentrerar sig på ramverket i sig är kanske inte helt sant. Ramverken kan också innehålla metoder för prestandaökning som kan vara för tidsödande att implementera inom ramen för ett visst projekt. Som jag skrev ovan. Det rimliga är att jobba med ramverk för att spara tid och få en bra struktur. För det gör man och det får man. När man ser att vissa delar inte håller prestandamässigt håller måttet tittar man på att byta ut de delarna för optimering. Mycket bättre hushållning med resurser som tid och pengar... (Vill bara tillägga att jag har ca 17 års erfarenhet av att jobba med både egna ramverk och tredjepartsramverk - i både kompilerad och interpreterad form...) |
Citat:
Dessutom sparar man sällan tid heller. Jag har bra fungerande funktioner och säkrad kod sedan tidigare (som har förbättrats och korrigerats då det behövts) till säkerligen 95% av allt nytt jag gör. Skulle jag använda ett ramverk istället så skulle jag vara tvungen att pilla en hel del för att få samma effektivitet utan att en massa onödigt ska finnas med. Det finns dock undantag där jag av olika anledningar (oftast just tidsbrist) inte använder egna lösningar. |
Citat:
Citat:
|
Citat:
Citat:
|
Jag använder ett ramverk till Python som heter Django, www.djangoproject.org. Riktigt trevligt ramverk enligt min åsikt.
|
Ang diskussionen om kompilerade språk.
Är det ingen av er som använder eAccelerator eller motsvarande? |
Citat:
Men generellt så är accelerators en snabb väg till bättre prestanda. |
Citat:
Du behöver inte skriva lika mycket kod i Kohana som i CodeIgniter (ex. auto-load av libraries, helpers och models), och du kan använda förbättrad syntax från PHP 5, vilket gör din kod ännu renare och enklare. Det finns lite åsikter om detta på StackOverflow: http://stackoverflow.com/questions/2...iter-to-kohana Citat:
Jag skrev lite om det på min blogg för drygt ett år sedan: http://www.entreprenord.se/oka-php-p...a-med-apc.html |
| Alla tider är GMT +2. Klockan är nu 09:07. |
Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson