CARNET DE ROUTE DU
DÉVELOPPEUR
Partage d’expérience sur le dev en entreprise
AGENDA
• Présentation
• La société 4D
• Les plate-formes
• Arrivée dans l’entreprise
• Une JournéeTypique
• Développement
• Rester ouvert
• La carrière
PRÉSENTATION
•Alexandre Morgaut
Community Manager
Alexandre.Morgaut@4D.com
@amorgaut
•Olivier Randriamanana
Senior Developer
Olivier.Randriamanana@4D.com
LA SOCIÉTÉ 4D
ENTREPRISE INTERNATIONALE
D2D
D2D
outils réalisés
D2D
par des Développeurs
outils réalisés
D2D
pour des Développeurs
par des Développeurs
outils réalisés
ENTREPRISE INNOVANTE
INNOVATION CONTINUE
• 1984 - 1ère base sur Apple
• 1992 - client / serveur intégré
• 1995 - Cross- platform Mac / Windows
• 1997 - Serveur Web intégré
• 2003 - XML & Web Services natifs
VERS LES STANDARDS
• 2004 - ODBC intégré
• 2007 - Unicode, SQL, SVG, Zone Web intégrée
• 2010 - PHP, Synchronisation, Replication
• 2012 - Wakanda....
LE LAB
2008
Pivot de Langage
Modernisation 4D
2007
Pivot de R&D
Séparation Produit
2008
Pivot de Langage
Modernisation 4D
2007
Pivot de R&D
Séparation Produit Développement Wakanda
Fin 2010
Pivot Modèle d’Affaire
2008
Pivot de Langage
Modernisation 4D
2007
Pivot de R&D
Séparation Produit Développement Wakanda
Fin 2010
Pivot Modèle d’Affaire
2008
Pivot de Langage
Modernisation 4D
2007
Pivot de R&D
Séparation Produit Développement Wakanda
Open Source
Fin 2010
« à l’épreuve du feu »
Mars 2011
Pivot Renaming
Ecosystème 4D Outside 4D
Fin 2010
« à l’épreuve du feu »
Mars 2011
Pivot Renaming
Ecosystème 4D
Avril 2011
Pivot MVP
Outside 4D
Fin 2010
« à l’épreuve du feu »
Mars 2011
Pivot Renaming
Ecosystème 4D
Avril 2011
Pivot MVP
Mai 2011
Pivot Earlyvangelist
Outside 4D
LES PLATE-FORMES
4D et Wakanda
• Applications
• Standalone et/ou Client-Server
• Natives Mac OS & Windows
• Mises à jour du client automatiques
• Direct data binding
• Langage unique de la base de données à l’interface
utilisateur
➡ Le langage 4D
• Technologies Web
• HTTP Server
• SOAP
• SVG
• HTML templates
• Webkit
Wakanda
Wakanda Server
(aka WakandaDB)
Wakanda Application
Framework
(aka WAF)
Wakanda Studio
DataStore Model Editor
Code Editor
GUI Designer
Debugger
Users & Groups
Administration
REST/JSON
Extensions
Wakanda
Wakanda Server
(aka WakandaDB)
Your Client or Server Framework
Java, .NET, node.js PHP, Python, Ruby...
ExtJS, Sencha Touch, Kendo UI, Backbone.js...
Your Development Tools
Visual Studio, XCode, NetBeans, Eclipse,
Cloud9, Orion, Sencha Architect
REST/JSON
JSON-RPC
Webkit debugger protocol 1.0
Git, REST, JSON-RPC
JavaScriptCore
multi-threaded, preemptive, thread-safe, 64bits, strict mode
fast, well structured & documented, maintained by Apple
JavaScriptCore
multi-threaded, preemptive, thread-safe, 64bits, strict mode
fast, well structured & documented, maintained by Apple
Employee
company
firstName
lastName
dateOfBirth
...
company
Company City
zip
name
country
city
name
webSite
...
city
town
string
string
...
City
city.name
string
string
Date
...
Company
DESIGN YOUR MODEL
Employee
company
firstName
lastName
dateOfBirth
...
company
Company City
zip
name
country
city
name
webSite
...
city
town
string
string
...
City
city.name
ds.Employee.find("lastName = Doe").company.town
string
string
Date
...
Company
DESIGN YOUR MODEL
CommonJS Modules 1.1.1
- test, assert, worker, console
-partially: system
W3C / HTML5
- Storage,Worker, Blob,Timers, XMLHttpRequest, FileSystem
- Upcoming:Web Socket, File
Node.js compatibility
- Buffer, Process, Events, Net,TLS, OS
ARRIVÉE DANS L’ENTREPRISE
Editeur de logiciels
Programme
Q/A
Marketing
Architecte
Support
Commercial
Programme
Q/A
Marketing
Architecte
Support
Commercial
Programme
Q/A
Marketing
Architecte
Support
Commercial
UNE JOURNEETYPIQUE
OUTILS ET METHODES
OUTILS ET METHODES
★Maîtrise des outils
✴Build
✴Gestion de version
★Méthodes et process du métier
✴Bug fixing
✴Design & développement
★Qualité
OUTILS ET METHODES
★Maîtrise des outils
✴Build
✴Gestion de version
★Méthodes et process du métier
✴Bug fixing
✴Design & développement
★Qualité
OUTILS
OUTILS
★Découvrir de son périmètre fonctionnel
✴Builder le(s) produit(s)
✴Explorer l’architecture du code
✴Comprendre l’intégration des projets
OUTILS
METHODES : BUG FIXING
★Un art
★Un art codifié (process)
★Tester
★Tester
★Tester
METHODES : BUG FIXING
★Un art
★Un art codifié (process)
★Tester
★Tester
★Tester
METHODES : BUG FIXING
★Un art
★Un art codifié (process)
★Tester
★Tester
★Tester
METHODES : BUG FIXING
★Un art
★Un art codifié (process)
★Tester
★Tester
★Tester
METHODES : BUG FIXING
★Un art
★Un art codifié (process)
★Tester
★Tester
★Tester
METHODES : BUG FIXING
★Un art
★Un art codifié (process)
★Tester
★Tester
★Tester
THE ART OF BUG FIXING
THE ART OF BUG FIXING
★Correction chirurgicale
THE ART OF BUG FIXING
★Correction chirurgicale
★Correction radicale
THE ART OF BUG FIXING
★Correction chirurgicale
★Correction radicale
THE ART OF BUG FIXING
★Impact(s), compatibilité ?
★Correction chirurgicale
★Correction radicale
THE ART OF BUG FIXING
★Gestion de la compatibilité
DÉVELOPPEMENT
Programme
Q/A Marketing
DÉVELOPPEMENT
SPORT D’ÉQUIPE
DÉVELOPPEMENT
DÉVELOPPEMENT
SAVOIR FAIRE
★Faire simple (pas simpliste)
★Ne pas vouloir tout faire soi-même...
★Lire (le code des autres)
★Tester, tester, tester
DÉVELOPPEMENT
SAVOIR ÊTRE
★Ouvert, communicant
★Flexible
★Modeste
SAVOIR FAIRE
★Faire simple (pas simpliste)
★Ne pas vouloir tout faire soi-même...
★Lire (le code des autres)
★Tester, tester, tester
RESTER OUVERT
RESTER OUVERT
• Bonus Points
• Veille technologique:
mailing lists, twitter, github...
• Entretenir les fondamentaux
• Sortir, participer aux meetups des “user groups”
• Partager, faire des présentations

Carnet de Route du Développeur - ENSIMAG 2012