personligt, webbutveckling

Arbetssemester – avstämning efter första veckan

Okej, så det har inte riktigt blivit avstämning varje kväll, men här kommer en liten rapport från första veckan.

Som vanligt tar allt lite längre tid än jag trott. Framför allt har jag underskattat planeringstiden. Eftersom jag inte har arbetat helt objektorienterat i så många projekt så går det åt en hel del tid åt att läsa på och utvärdera olika upplägg. Ska jag använda data access object, table row gateway eller active record för dataåtkomst? Ska jag använda ett globalt registry och ska det i så fall vara ett singleton eller en statisk klass? Ska url:erna kopplas direkt till respektive controller eller ska ansvar fördelas på något annat sätt? Till min hjälp har jag PHP 5 Object, Patterns and Practice och PHP in Action – Objects, Design, Agility. Det täcker båda ungefär samma material men på lite olika sätt. Är beskrivningen av ett ämne lite luddig i den ena boken så brukar det hjälpa att går över till den andra. Dessutom finns ju StackOverflow och SitePoints forum för PHP Application Design (där för övrigt några av författarna till mina böcker är med i diskussionerna).

När det gäller arbetstiden så har det också gått lite sämre än planerat. Istället för 35 timmars arbete förra veckan blev det knappt 25. Jag har verkligen svårt att fokusera när jag arbetar hemma. Det är svårt att känna någon tidspress när man har hela dagarna på sig. Jag skulle verkligen behöva ”gå till jobbet” på morgnarna.

Nu till det positiva:

  • Jag har använt SimplePie för rss-hantering tidigare, men blir hela tiden överraskad över hur tillförlitligt det är när det gäller att hantera opålitlig indata och teckenformateringsproblem.
  • PHP Simple HTML DOM Parser är ett helt fantastiskt bibliotek. Ladda in en sida och kom åt alla element precis som med jQuerys selektorsystem.
  • Strukturen jag till sist kommit fram till är jag ganska nöjd med. Templatesystemet är flexibelt utan att vara komplicerat, mina controllers är tunna och mina models är rena.
Föregående inlägg Nästa inlägg

Du kanske också tycker om

3 Kommentarer

  • Svara Jonathan Hedrén 13 juli, 2009 at 13:40

    Det är väldigt spännande och kul att utveckla ett eget ramverk. Jag har suttit till och från nu i ungefär ett års tid och knackat på mitt egna PHP-ramverk. Jag ser mig själv fortfarande som en novis inom programmering, men man lär sig helt otroligt mycket på att bygga ett eget ramverk. Det innebär ju också att ramverket förändras mycket med tidens gång. Om jag gör en diff mot första varianterna av mitt ramverk nu så ser det helt annorlunda ut, men det måste ju ses som något väldigt positivt :)

    Jaja, anledningen till min kommentar är att jag själv förstås också har stått i valet och kvalet vad gäller implementationen av modellagret. Till sist landade jag i en uppdelning av det lagret i ett DAO (Data Access Object)- och ett renodlat modellager (motsv. VO/VärdeObjekt) och jag måste säga att det var väldigt skönt att flytta ut en massa databasrelaterad kod från modellklasserna. Jag har också implementerat ett Service-lager för affärslogik, vilket gör att modellklasserna återigen blir lite ”tunnare”. Rekommenderas!

  • Svara Marcus 13 juli, 2009 at 20:32

    Jo, det är ju alltid med kluvna känslor man tittar tillbaka på äldre kod. Dels undrar man hur man kunde skriva så mycket konstigheter och dels inser man hur mycket och hur snabbt man lär sig.

    Eftersom jag fortfarande överoptimerar så får jag ångest så fort jag inkluderar ytterligare en fil. En lagom avvägning för mig just nu är att använda domänobjekt för både domänlogik och objektinformation. Jag använder dock DAO precis som du gör.

  • Svara Jonathan Hedrén 13 juli, 2009 at 22:12

    Jag har haft samma dilemma angående optimering. För att råda bot på fil-inkluderingar så har jag skrivit en ”deployer”-klass som traverserar valda katalogstrukturer och slår ihop alla filer/klasser till en ”deploy.php”. Prestandan på min windowsmaskin ökar med 40-60% (!) när jag kör med deploy-filen (vilket begränsar antalet fil-inkluderingar till några få stycken) istället för att inkludera alla separata klassfiler.

  • Skriv ett svar