Développement

Archi & techno

Reprise de données lors d’une refonte IT agile

Les données sont au cœur de votre business. Susceptible de reporter la mise en production de votre nouvelle application, il faut considérer la reprise de données comme une étape importante de votre processus de refonte. La reprise de données est un aspect technique particulier de la refonte qui doit être pris en charge par une équipe dédiée (il suffit d'un développeur et d'un PO pour former une équipe) dès le début du projet afin d'anticiper la complexité des règles de reprise, de vérifier le bon fonctionnement de…

Lire la suite
Archi & techno

Design Patterns : Saison 2

  Design Patterns are signs of weakness in programming languages -- Mark Dominus Our patterns assume Smalltalk/C++-level language features, and that choice determines what can and cannot be implemented easily -- Design Patterns, Gang Of Four Face aux lacunes de chaque langage, les programmeurs ont inventé des mécanismes réutilisables pour faire face à un certain nombre de problèmes récurrents. Au travers de plusieurs exemples concrets, cet article va montrer comment un programmeur peut rendre son code plus compact en choisissant un langage de programmation qui…

Lire la suite
Archi & techno

Les Patterns des Grands du Web – Contribution au Logiciel Libre

Mais pourquoi Facebook, Google et autre Twitter contribuent-ils autant à l'open source ? L’avance technologique est un atout important dans la conquête du Web. Que ce soit pour se démarquer de la concurrence en lançant de nouveaux services (pensez à la sortie de Gmail et de son large stockage à l’époque de l’hégémonie Hotmail), ou plus pragmatiquement pour faire face aux contraintes qui leur sont propres comme le défit de croissance lié à leurs bases utilisateurs, nous allons voir que les Géants du Web ont…

Lire la suite
Archi & techno

D’un site mobile à une véritable application Web

La navigation mobile (smartphone ou tablette) s’est sans conteste accaparée une partie non négligeable du trafic Internet, et son augmentation ne fait pas de doute. Pour répondre à l’arrivée de ce nouveau support de consultation, nombres de sites ont commencé par adapter leur présentation pour une lecture agréable. Aujourd’hui, le mobile fait l’objet d’une véritable stratégie d’entreprise et ce sur de nombreux fronts : organisationnel, marketing et technologique notamment. Ce dernier point amorce aujourd’hui un virage naturel mais peu évident à négocier, tiré par la…

Lire la suite
Archi & techno

Vers une Usine de Développement 2.0

En repartant de l’usine de développement tel que nous la connaissons aujourd’hui, nous allons tenter de vous initier à notre vision de l’UDD (Usine de développement) de demain. En effet, en interne chez OCTO nous travaillons activement sur ce sujet de recherche. Pourtant, avant de rentrer dans les séduisants concepts qu'il pourrait apporter, revenons sur les principes et limites de ce que l’on considère comme une UDD 1.0.   Mais c’est quoi une UDD ? C’est une usine logicielle, contenant des outils pour le développement…

Lire la suite
Archi & techno

Thrift et Protocol Buffers : compacité du message sérialisé dans le monde Java

Un précédent article a exposé les grands principes de la sérialisation avec Thrift et Procotol Buffers. Ces deux frameworks promettent notamment une représentation des messages optimisée en termes de taille, ce qui est avéré dans le benchmark JVM Serializers : Thrift et Protocol Buffers y obtiennent une réduction de taille du message de 73% par rapport à la sérialisation native Java. Ce benchmark regroupe par ailleurs de nombreux autres frameworks de sérialisation du monde Java, mais se limite toutefois à l'utilisation d'un unique message de…

Lire la suite
Archi & techno

Sérialisation : Thrift et Protocol Buffers, principes et aperçu

La sérialisation est une des bases de la transmission de données entre systèmes. Certains langages proposent d'ailleurs une méthode de sérialisation en standard, qui leur est souvent propre. L'interopérabilité entre systèmes hétérogènes nécessite que le format de sérialisation soit compréhensible par différents langages et plates-formes. De nombreux standards utilisent le mécanisme d'IDL (Interface Description Language) pour répondre à ce besoin : ASN.1, CORBA ou encore SOAP. Depuis quelques années, de nouveaux frameworks basés sur un IDL ont vu le jour pour l'interopérabilité de technologies hétérogènes…

Lire la suite
Archi & techno

Applications mobiles multi-plateformes: les approches PhoneGap et Titanium Mobile

Introduction Le développement d'applications pour terminaux mobiles (iPhone, iPad, Android, Blackberry, Windows Phone, Nokia Symbian, Samsung Bada...) se heurte à la fragmentation des technologies de développements: environnement iOS/Objective-C pour l'iPhone et l'iPad, SDK Java spécifique pour Android, J2ME pour Symbian, etc. Deux approches possibles lorsque l'on débute un projet d'application ciblant plusieurs de ces plateformes sont de développer une application pour chacune d'elle, ou de développer un site Web compatible. Dans le premier cas, l'inconvénient concerne bien évidemment le coût des développements. Dans le deuxième,…

Lire la suite
Archi & techno

Domain Driven Design : des armes pour affronter la complexité

"La complexité, c'est comme le cholestérol. Il faut surtout se débarasser du mauvais." (Proverbe gascon-malgache) DDD est l’acronyme de Domain Driven Design. Ce n’est ni un framework, ni une méthodologie, mais plutôt une approche décrite dans l’ouvrage du même nom d’Eric Evans. Un de ses objectifs est de définir une vision et un langage partagés par toutes les personnes impliquées dans la construction d’une application, afin de mieux en appréhender la complexité. Nous ne souhaitons pas faire ici une présentation de DDD (voir plutôt ici…

Lire la suite
Archi & techno

La programmation haute performance n’est-elle réservée qu’à une élite de développeurs C++ ?

Récemment un papier d'étude de Google UK a été publié sur la performance des langages de programmation JAVA, Scala, C++ et Go (Loop Recognition in C++/Java/Go/Scala). Dans ce papier, les performances des langages sont comparées sur la base d'un algorithme de recherche de boucles dans un graphe (Algorithme de Tarjan). Principalement basé sur la performance d'exécution d'instructions séquentielles (boucles), la gestion de la mémoire, le temps de compilation et le nombre de lignes de code écrites cette étude montre que pour arriver à des hautes…

Lire la suite