Nos Offres de services


Développement objet

Developpement-objet

Depuis sa création, Arolla se positionne en expert des technologies et approches de développement, du terminal mobile à l’entreprise dans son intégralité. Cette approche s’articule autour de la programmation orientée objet et de ses principes, toujours d’actualité mais qui s’enrichissent désormais des principes de la programmation fonctionnelle.

Certaines compétences survivent à toutes les modes, et c’est le cas des fondamentaux de l’orienté objet. Au-delà des modes passagères sur les frameworks techniques et les stratégies d’architecture, les principes de faible couplage et de forte cohésion, d’immutabilité et d’absence d’effets de bord, ainsi que les nombreux patterns de la littérature forment un solide socle de compétences prêt à accueillir les nombreuses et fréquentes innovations de façon pragmatique.

Les plateformes telles que la JVM et .Net, désormais des standards dans les entreprises, supportent déjà toutes ces approches, avec des langages tels que Java, C#, Groovy et Ruby, et sont au coeur d’écosystèmes dynamiques, avec des normes et frameworks qui prennent en charge des aspects complets d’un système logiciel. La norme JPA et les frameworks ORM (Hibernate et NHibernate) pour la persistance, l’injection des dépendances avec Spring ou Guice en sont quelques exemples.

       Java_Logo.svg            .Net



Pratiques agiles

Le succès des projets de nos clients repose aussi sur des pratiques, (« méthodologies »). Nous mettons l’accent sur les approches dites agiles de gestion de projet et parfois d’ingénierie telles que Scrum, XP et Kanban, qui toutes revendiquent l’importance des facteurs humains, même dans les projets logiciels.

Arolla accorde en conséquence un grand soin au recrutement et à la formation de ses collaborateurs sur le développement itératif, l’intégration continue, les tests unitaires et l’influence sur la qualité du code et du design de commencer par les tests (TDD), les tests d’acceptation automatisés et leur rôle en spécification (Specifications by Example) et en auto-documentation (BDD). Même l’architecture entre désormais dans le champ de TDD, pour prouver ses bénéfices par des tests à l’échelle du système.

Cela se traduit concrètement, selon les désirs de nos collaborateurs, par des formations théoriques et pratiques, des actions de veille et évidemment des participations aux conférences pour s’informer des avancées les plus récentes et profiter de retours d’expériences internationaux.

 

Pratiques agiles


Architecture & design

Architecture & design

A l’échelle de l’entreprise et de ses problématiques d’intégration, les approches orientées ressources (ROA), par leur simplicité et l’efficacité du système de contraintes REST, concurrencent progressivement l’approche classique SOA et ses Web Services.

De son côté, l’approche Domain-Driven Design (DDD) apporte des recommandations stratégiques et invite à se concentrer sur le cœur de métier, précisément où réside la valeur. Cette approche met l’accent sur un travail d’approfondissement progressif d’un modèle du domaine grâce à une communication la plus directe possible entre les experts du domaine et les experts techniques. Ce travail de modélisation peut s’appuyer si besoin sur l’UML.

Les patterns d’intégration d’entreprise (EI patterns), entre autres, et les concepts de bus d’entreprise (ESB) deviennent aussi de plus en plus incontournables lors de la mise en œuvre d’une architecture d’entreprise, qui privilégie fréquemment l’usage de messaging comme moyen d’intégration.

 



Programmation fonctionnelle

Certaines compétences survivent à toutes les modes, et c’est bien le cas des principes de la programmation fonctionnelle, qui, en dépit de leur âge, accèdent enfin à la popularité.

Les principes d’immutabilité et d’absence d’effets de bord, les opérateurs de plus haut niveau tels que Map et Fold, ainsi que les patterns fonctionnels connus ou en cours de formalisation enrichissent la façon de développer et de concevoir, que ce soit avec un langage fonctionnel ou non. Avec l’essor de la programmation fonctionnelle arrive aussi une nouvelle conception de la concurrence avec le modèle orienté Acteurs, et des solutions pour la montée en charge sur de nombreux cœurs de CPU.

Les plateformes telles que la JVM et .Net, des standards en entreprise, supportent immédiatement ce mode de programmation avec des langages fonctionnels tels que Scala, F#, et Clojure en particulier. Pour ceux qui ne peuvent utiliser ces langages, de simples API proposent néanmoins d’introduire certains avantages de la programmation fonctionnelle dans tout projet.

   scala   clojure

Programmation fonctionnelle

Back to Top