WEB DEVELOPMENT TRENDS--------------------------------------------------- In my view -----------
Who I am
Rajib AhmedCTO of D32Things I know a little about PHP5 CakePHP JQuery Ruby On Rails ActionScript 3.0 MySQL and Oracel
Things I wish I Knew
Java C# C++
New technology that interests me Android – open source mobile OS by
google Symfony Iphone + Objective C Drupal
Daily Development tools
Languages – PHP, Ruby , ActionScript Editor – E-textEditor , Vim , Flash
Develop IDEs – NetBeans , Eclipse , Flash
Builder Version Control : git github.com Redmine Apache Ubuntu Linux
My works
I have developed only 4-5 web application.Throughout my 2 years in web development.
Inventory Management System for Square textile (PHP5 + Jquery + MySQL)
Development time : 4 months Developers : 3 Features
Complex Report Generation Destop application like interface Multiple User Level privilege system
Focus Builder
Real Estate management + Project Management
CakePHP , JQuery , JQueryUI Development time : 8 months (2
years) Developers: 3 Features :
This is a paid service for managing your employees.
URL: http://focusbuilder.com
Bandtycoon
RPG game CakePHP , Jquery, JQueryUI Developer : 4 Designers : 3 URL: http://bandtycoon.com
Section One
Things I learned
Large scale project needs Project management tools Version control Planning Testing Documentaions
UML Database Diagrams Requirement Analysis
Project Management Tool
JIRA Redmine MantisAnd there are thousand moreCollaborated development success
partly depends on this
Version Control
SVN CVS GIT MercuralAnd there are thousand moreWithout this collaborated development
is a mess
Planning
There must be some goals to fulfill There must be some targeted clients
or users Knowing what are trying to do.
Testing
Unit Testing for TDD Rspec for BDD
Documentation
We everybody know how important this is !!!
Knowing
Deadlines Limitations Best approach The available tools
Section 2
PHP5
PHP5 is Object Oriented New language features from 5.3.0 Namespacing Clojures / blocks
OOP vs Procedural Programming Manageable vs Unmanageable Scalable vs Stagnant Structured vs Unstructured Patterns
OOP Concept
Inheritance Polymorphism Encapsulation
This is easy !!!
Simple PHP vs Ruby class
Inheritance
Add the functionality and Behavior of parent
Children can override parents Behavior
Children can extend from only one parent
Interfaces are used for multiple inheritance
Design Patterns
Structural Design Pattern Behavioral Design Pattern Creational Design Pattern
“With great power come great responsibility”
Design Patterns in web development After boom of Ruby On Rails 2003 Everybody is using MVC pattern
Section 3
Application in 10 minutes
CakePHP Ruby On Rails
ORMs
Object Relational Mapping Mapping Class Property from
database fields PHP orm – Propal , Doctrine .NET orm – Nhibernate Java orm – Hibernate Ruby orm – ActiveRecord ,
DataMapper, Arel
Benefits of using ORMs
Database abstraction layer No SQL or Less SQL Domain Specific mapping