Tänkte sammanställa de baskrav av teknisk funktionalitet som man behöver när man skapar en ny sajt med fokus på hög trafik såsom jag nyligen gjort med den senaste startupen och som gäller just nu för Open Source platformen:
PHP/Apache/MySQL
Open Source paket:
- PHP minst 5.2.x (objektorienterad utveckling är bättre i komplexa sammanhang)
- MySQL 5.x (visserligen fungerar 4.1.x och uppåt bra, men för sessionsorienterade sajter är 5.x ett lyft i prestanda som halverar maskinparken)
- Apache (senaste versionen av 1 eller 2)
- eAccellerator är ett måste (eAccellerator är snabbare, fast APC är lite stabilare som alternativ)
- Dojo handlar främst om Ajax-funktionalitet på själva sidorna (JQuery är också ett alternativ)
- Subversion, versionshantera utvecklingen och skapar möjlighet att dela upp projekt till flera utvecklare
Utvecklingsmiljö:
- Eclipse är min favorit och har allt man kan önska med alla plugins.
- Dreamweaver är ett alternativ till Eclipse, man kommer igång ganska snabbt, men den har mindre support för stora komplexa sajter eller när man är flera utvecklare.
- XDebug är ett måste för att snabbt lokalisera problem i koden, eller också för att lära sig hur olika processer fungerar i sitt system för att effektivisera koden
- MySQL Workbench för att skapa schemas – synka med ramverkets funktionalitet
Ramverk (se mitt tidigare inlägg om populära ramverk):
- Zend Framework är min favorit och är otroligt flexibelt. Det är väl inget komplett ramverk (ännu i alla fall) utan mer en massa PHP Klasser som man bygger funktionaliteten kring i ett MVC mönster.
- Code Igniter är också ett värdefullt alternativ som jag tar upp här eftersom det handlar om högpresterande sajter och det sägs att detta ramverk har rätt grund för denna miljö
Symfony är ett ramverk som jag upptäckte man väldigt snabbt kan bygga en ganska komplex miljö i, men ett varnings finger för att man hamnar i en väldig svår serveroptimering när man är beroende av hur processerna lämnar över till varandra där. Jag antar att det är därför Symfony kräver lite mer kraft i systemet för att klara de enklaste funktionerna. Jag misstänker att det krävs mycket efterarbete för att komma ikapp i prestanda som redan är naturligt i de andra ramverken. Med andra ord är min erfarenhet att detta ramverk är att undvika om man ska skapa högtrafikerad sida på ett effektivt sätt.
Jag gillar Zend Framework för att jag känner att jag har full kontroll och OOP är klockrent i ZF, bara sådana saker som gettext har de istället lagt in OOP gränssnitt för och man kan nu köra flerspråkskod i flertrådsservrar som liksom är ett krav när man vill ha lite drag i sajten. Det är nämligen så att en del av PHP 5 egna funktioner inte har stöd för flertrådssystem och flera andra ramverk har inte tänkt på detta.
Ja, nu avslöjade jag att vi knappar kod för en framtida internationell lansering också – där ser man. Jag har tidigare jobbat med språkhantering för Windows-program och startade ett företag i Australien som sålde dessa verktyg. En del av dessa erfarenheter tar jag med mig när vi skapar dessa sajter nu.