Ontwikkeling met Open Source Frameworks

De laatste jaren krijgen we steeds meer te maken met grote projecten. Waar we vroeger vooral bedrijfswebsites maakten, ontwikkelen we nu vaker maatwerk applicaties. Met deze verschuiving in werkzaamheden krijgen we ook te maken met andere manieren van ontwikkelen. In dit blog wijden we daarom een artikel aan de nieuwe technieken, die grotendeels leunen op Open Source software.

We spreken hier over versiebeheer en frameworks voor de front-end (voorkant van de website) en back-end (achterkant van de website). Frameworks worden bijgehouden door meerdere ontwikkelaars, waardoor ze zo veel mogelijk ‘best-practices’ naleven en regelmatig updates blijven doorvoeren.

Versiebeheer: GIT

Om goed samen te werken aan een project, is versiebeheer onmisbaar. Git (een versiebeheer systeem) groeit aan populariteit en biedt uitgebreide mogelijkheden om ontwikkelaars in eigen versies door te laten werken, die later makkelijk samen te voegen zijn. Ook kan je altijd terug naar een vorige versie, zonder dat je zelf kopieën bij moet houden.

Bijna alle Open Source projecten gebruiken tegenwoordig de website Github om hun code (via git) te delen en problemen te melden. Alle gebruikers kunnen hier zelf verbetering indienen (pull requests) om het project nog beter te maken.

Voor commerciële projecten is tegen betaling een besloten Github account mogelijk, maar bij Bitbucket, een vergelijkbare site, kan er voor kleine teams een onbeperkt aantal projecten bijgehouden worden.

Front-end Framework

Met de verschillen tussen de browsers van tegenwoordig (Chrome, Firefox, Safari, IE 8 t/m 10), wordt het voor ontwikkelaars lastiger om overal rekening mee te houden. Door gebruik te maken van front-end frameworks, heb je een basis waarin veel van deze verschillen gecorrigeerd. Ook specifiekere projecten als HTML5 Boilerplate en Normalize.css zorgen ervoor dat je een goed uitgangspunt hebt.

Veel van onze projecten gebruiken de structuur van Twitter Bootstrap, maar hebben wel onze eigen aanpassingen aan de code en natuurlijk een geheel eigen ontwerp. Voor de administratiesystemen zorgt dit ervoor dat we snel een mooi systeem op kunnen zetten en ons kunnen focussen op de functionaliteit.

Back-end Frameworks

In plaats van steeds hetzelfde werk doen, kan je je beter richten op de zaken die er echt toe doen. Om grotere projecten beter te kunnen ontwikkelen, leunen we op grote betrouwbare frameworks. In ons geval gebruiken we Laravel als basis, wat weer leunt op de componenten van Symfony 2.

Door het gebruik van deze frameworks, hebben we een basis die goed getest is, waarbij vele ontwikkelaars verbeteringen doorvoeren en problemen oplossen. Daarnaast maakt dit de uiteindelijke software beter doorgeefbaar aan nieuwe ontwikkelaars.

Ook is door het gebruik van Composer en de PSR-0 standaard, het inladen van andere libraries erg eenvoudig.

Waarom wij voor Laravel 4 gekozen hebben, kunnen we kort opsommen:

  • Goede basis
  • Makkelijk gebruik van Open Source libraries
  • Veilig, door gebruik van ORM en andere controles
  • Goed geschikt voor API ontwikkeling
  • Maakt ontwikkeling sneller.

Onze huidige site (en blog + CMS) zijn ook ontwikkeld op basis van Twitter Bootstrap en Laravel 4.

Mobiele applicaties

Door deze frameworks te combineren, kunnen we sneller mobiele applicaties ontwikkelen. Deze applicaties kunnen communiceren met een API, zodat de informatie real-time doorgegeven kan worden of, indien gewenst, offline kan worden bewaard en op een later tijdstip opgeslagen kan worden.

Door gebruik te maken van een API hoeft functionaliteit maar eenmalig ontwikkeld te worden en kan deze door zowel een website als mobiele app gebruikt worden.

Conclusie

Het gebruik van open source maakt het ontwikkelen van software een stuk leuker, aangezien het saaie/herhalende werk daarmee grotendeels wordt opgevangen. We kunnen ons nu volledig focussen op de wensen van de klant en hebben tegelijkertijd een snellere doorlooptijd voor projecten, een stabielere basis en een duidelijkere structuur, zodat toekomstige ontwikkeling eenvoudiger is. Met versiebeheer is bovendien de samenwerking makkelijker en kunnen wijzigingen altijd teruggedraaid worden.