Devops for Growth
112.1K views | +0 today
Follow
Devops for Growth
For Product Owners/Product Managers and Scrum Teams: Growth Hacking, Devops, Agile, Lean for IT, Lean Startup, customer centric, software quality...
Curated by Mickael Ruau
Your new post is loading...
Your new post is loading...

Popular Tags

Current selected tag: 'architecture'. Clear
Rescooped by Mickael Ruau from Dev Breakthroughs
December 31, 2013 5:06 AM
Scoop.it!

The future of API design: The orchestration layer

The future of API design: The orchestration layer | Devops for Growth | Scoop.it

The digital world is expanding at an amazing rate, giving us access to applications and content on myriad connected devices in your homes, offices, cars, pockets and on even on your body. The glue that allows all of this to happen, that connect the companies who provide these services to the devices that you use, is the API.

 

Because APIs have such a huge responsibility for so many people and companies, it is natural that API design is often one of the industry’s liveliest discussions, touching on a range of topics including resource modeling, payload format, how to version the system, and security.

 

While these are likely important areas to explore when designing virtually any API, the reality is that a much larger decision needs to be made first. That decision is based on a fundamental question: who are the primary audiences for this API and how can we optimize for those audiences?

 

This seems like an innocuous enough question, but don’t underestimate its importance or complexity in the growing world of APIs.


Via Nicolas Weil
No comment yet.
Scooped by Mickael Ruau
December 22, 2013 5:41 AM
Scoop.it!

18 principes pour professionnaliser le développement logiciel - DotnetDojo

18 principes pour professionnaliser le développement logiciel - DotnetDojo | Devops for Growth | Scoop.it
Comment vous le savez peut être, DotnetDojo a pour objectif d’aider les développeurs à améliorer leurs capacités. J’ai donc préparé un document qui exprime ces idées sous la forme de 18 grands principes.
Mickael Ruau's insight:

Ce document regroupe de bonnes pratiques que tous les développeurs peuvent appliquer immédiatement.
Elles vous permettront de développer dans de meilleurs conditions et surtout de produire des logiciels de meilleure qualité.

No comment yet.
Scooped by Mickael Ruau
December 21, 2013 7:04 AM
Scoop.it!

Is REST losing its flair – REST API Alternatives

Is REST losing its flair – REST API Alternatives | Devops for Growth | Scoop.it

The adoption of REST as the predominant method to build public APIs has over-shadowed any other API technology or approach in recent years. Although several alternatives (mainly SOAP) are still (very) prevalent in the enterprise, the early adopters of the API movement have taken a definitive stance against them and opted for REST as their approach and JSON as their preferred message format. All this for good reasons:

SOAP/WSDL is overly complex in most cases and difficult to consume from thin clients.The REST architectural style fits well with HTTP and the scalability, caching and distribution best practices prevalent in large-scale web and mobile applications.The common use of JSON within REST APIs makes them extremely easy to consume from scripting-based platforms (web/Ajax, node.js, grails, etc.)



Read more: http://blog.programmableweb.com/2013/12/19/is-rest-losing-its-flair-rest-api-alternatives-2/#ixzz2o6taIREi ;
Follow us: @programmableweb on Twitter | ProgrammableWeb on Facebook

Mickael Ruau's insight:
1) Asynchronous APIs2) Orchestration / Experience APIs3) SDKs vs APIs4) Binary protocols

Obviously there is no one-size-fits-all solution for building APIs – and as the world of APIs grows it is only natural for its adopters to look elsewhere when one technology or another doesn’t fit their or their customers needs. Fortunately for us passionate technologists, building and learning new stuff and putting it to use in the best possible way for all stakeholders is what makes our world tick (or at least mine). So, I’m not opposed to this diversity, I welcome it.



Read more: http://blog.programmableweb.com/2013/12/19/is-rest-losing-its-flair-rest-api-alternatives-2/#ixzz2o6thmumG ;
Follow us: @programmableweb on Twitter | ProgrammableWeb on Facebook

No comment yet.
Scooped by Mickael Ruau
December 16, 2013 8:34 AM
Scoop.it!

Dependency Obsession | Blog Arolla

Dependency Obsession | Blog Arolla | Devops for Growth | Scoop.it

Je vais vous faire une confidence, je suis un véritable obsédé. Dans tous mes projets, j’y pense tout le temps, et la plupart de mes décisions de code, de design et d’architecture sont influencées par cette obsession. Vous l’avez deviné, mon obsession tourne autour des dépendances entre les éléments du code, et je pense que vous y êtes sensibles aussi !

 
Mickael Ruau's insight:

L’obsession des dépendances peut s’étendre à tous les aspects, y compris les configurations en XML, par annotations Java ou par attributs .Net.

 

Un nom de classe dans un fichier XML rend ce fichier dépendant de la classe, par exemple en cas de renommage de la classe. Même dans la définition des modules parents ou composite Maven, on s’expose au risque de dépendances inutiles, voire de cycles, avec les types de mêmes périls que dans le code.

 

A l’échelle plus macro, entre des Bounded Contexts qui peuvent représenter des équipes voisines ou lointaines, les techniques de Strategic Design de DDD s’inscrivent aussi dans cette obsession des dépendances pour raisonner sur les relations de dépendances (relation de type Conformist) ou au contraire d’affranchissement (Separate Ways, Anti-Corruption Layer) entre ces contextes.

 

On ne saurait exagérer l’importance du sujet des dépendances en général, une obsession vertueuse pour le développeur logiciel professionnel. Toutes les techniques qui aident à minimiser les dépendances, dont TDD, sont bonnes à prendre et à apprendre.

 

Toutes les techniques que vous connaissez peuvent se redécouvrir sous l’angle des restrictions de dépendances qu’elles imposent.

 
No comment yet.
Scooped by Mickael Ruau
December 13, 2013 2:44 AM
Scoop.it!

The Web API Checklist — 43 Things To Think About When Designing, Testing, and Releasing your API | Mathieu Fenniak

When you’re designing, testing, or releasing a new Web API, you’re building a new system on top of an existing complex and sophisticated system. At a minimum, you’re building upon HTTP, which is built upon TCP/IP, which is built upon a series of tubes. You’re also building upon a web server, an application framework, and maybe an API framework.

Most people, myself included, are not aware of all the intricacies and nuances of every component they’re building upon. Even if you deeply understand each component, it’s probably going to be too much information to hold in your head at one time.

No comment yet.
Scooped by Mickael Ruau
November 29, 2013 10:12 AM
Scoop.it!

Améliorer la qualité du code par restriction du langage

Améliorer la qualité du code par restriction du langage | Devops for Growth | Scoop.it
This post is a written transposition of the talk I gave at Nantes' JUG on November 4th 2013. Since it took place in France, this article is in French. Ce post est une transposition écrite de ma pré...
Mickael Ruau's insight:

Je ne dis pas qu’il faut absolument et complètement banir toutes ces fonctionnalités. Il faut simplement reconnaitre et maitriser leurs inconvénients. On peut alors peser le pour et le contre et prendre de sages décisions.

Les ennuis commencent quand on a affaire a des débutants.


Les problèmes que j’ai exposé sont rarement (jamais ?) abordés lors de la formation des programmeurs, que ce soit à l’école ou dans les livres d’introduction. Au contraire, des fonctionnalités comme l’héritage de classe sont présentées comme héroïques, indispensables, à la base de l’orienté-objet ! Il n’en est rien.


Et pourtant, les SSII demandent tous les jours à des débutants de prendre des décisions concernant le design de code. Il y a manifestement un sérieux problème au niveau de la formation des développeurs. C’est peut-être un des seuls métiers où l’on est traité comme compétent avant d’être sorti de l’école.


Robert “Uncle Bob” Martin (fameux auteur de Clean Code) a récemment publié deux articles à ce sujet : “Hordes of Novices” et “Novices. A Coda“. Je ne peux qu’être d’accord avec lui.

 
No comment yet.
Scooped by Mickael Ruau
November 23, 2013 9:14 AM
Scoop.it!

Software Craftsmanship & Mode d’existence des objets techniques

Software Craftsmanship & Mode d’existence des objets techniques | Devops for Growth | Scoop.it
Les systèmes techniques doivent en permanence être corrélés avec les systèmes sociaux.
No comment yet.
Scooped by Mickael Ruau
November 20, 2013 10:25 AM
Scoop.it!

De geek à directeur technique – Normes PHP : PSR-2… aïe, raté

De geek à directeur technique – Normes PHP : PSR-2… aïe, raté | Devops for Growth | Scoop.it

Si vous êtes versés dans le monde PHP, il y a quelques chances que vous ayez entendu parler de la norme PSR-0. Par contre, les normes PSR-1 et PSR-2 sont plus récentes, et de fait moins connues.

 

Ces normes sont définies par le « PHP Framework Interoperability Group » (FIG en abrégé), un groupe d’acteurs connus du monde PHP, contributeurs de frameworks, ORM et bibliothèques parmi les plus connus.

 

Tout ce petit monde s’est réuni pour tenter de définir un ensemble de règles communes, afin de faciliter l’utilisation de différentes briques logicielles écrites en PHP.

Mickael Ruau's insight:

L’effort est louable. La norme PSR-0 était absolument nécessaire, mais correspondait plutôt à la normalisation d’une bonne pratique répandue. La norme PSR-1 me semble personnellement pleine de bon sens.

Par contre, quand j’ai lu le contenu de la norme PSR-2, je me suis dit qu’ils avaient fait fausse route. 

No comment yet.
Rescooped by Mickael Ruau from Agile, Lean, NoSql et mes recherches informatiques
February 4, 2014 4:01 AM
Scoop.it!

Métier : l'architecte IT plus intégrateur que jamais (15/11/2013)

Vieux comme l'informatique, ou presque, le métier d'architecte IT version 2013 vit à l'heure  de l'acronyme SMAC (Social, Mobile, Analytics et Cloud).


Via Christophe Demulder, Duarte Terencio
No comment yet.
Scooped by Mickael Ruau
November 16, 2013 5:38 PM
Scoop.it!

Une RESTful Architecture

Une RESTful ArchitectureCommunauté .NET Montréal
No comment yet.
Scooped by Mickael Ruau
November 16, 2013 10:59 AM
Scoop.it!

Ergonomie web : Structure de l'info - arborescence - STUDIO VITAMINE l'agence web

Ergonomie web : Structure de l'info - arborescence - STUDIO VITAMINE l'agence web | Devops for Growth | Scoop.it
Construire l'arborescence d'un site web se fait une fois tous les contenus listés, organisés et structurés.
Mickael Ruau's insight:
Structurer l'information s'effectue en général en 4 étapes : Lister tous les contenus d'un site web
Organiser les contenus par catégoriesStructurer l'informationRéaliser un plan de site appelé aussi arborescence d'un site web
No comment yet.
Scooped by Mickael Ruau
November 16, 2013 10:46 AM
Scoop.it!

HATEOAS - Wikipedia, the free encyclopedia

HATEOAS

HATEOAS, an abbreviation for Hypermedia as the Engine of Application State, is a constraint of the REST application architecture that distinguishes it from most other network application architectures. The principle is that a client interacts with a network application entirely through hypermedia provided dynamically by application servers.

No comment yet.
Scooped by Mickael Ruau
November 16, 2013 10:40 AM
Scoop.it!

REST, un style d'architecture universel.

REST, un style d'architecture universel. | Devops for Growth | Scoop.it
Introduction au style d'architecture REST qui a servi de modèle à l'architecture de l'Internet et aux sites les plus efficaces de l'Internet.
No comment yet.
Scooped by Mickael Ruau
December 27, 2013 5:19 AM
Scoop.it!

Formation urbanisation des systèmes d'information

Formation urbanisation des systèmes d'information | Devops for Growth | Scoop.it
 

L’urbanisation touche tous les niveaux de l’organisation. Pour mener à bien cette démarche, et assurer l’alignement des transformations du SI avec le métier, sa stratégie, ses besoins et ses contraintes, quelques étapes incontournables doivent être respectées autour de ses différentes dimensions (métier, fonctionnelle, applicative et technique).

Le but : recenser et capitaliser l'ensemble des informations disponibles sur le SI de l'entreprise (bases de données, applications, services, etc.), en relation avec leur fonction, afin de les rationnaliser et de valoriser le capital informationnel de l'entreprise.

• Dimension métier : positionnement des métiers (étude des différents secteurs fonctionnels de l’entreprise : production, administration, ventes…), cartographie et analyse des processus métier de l’organisation.
• Dimension fonctionnelle : positionnement des fonctionnalités offertes par le SI pour supporter les processus métier.
• Dimension applicative : description de l’ensemble des éléments du système informatique implémentant les services urbanisés sous forme d’éléments logiciels.
• Dimension technique : description de l’infrastructure de fonctionnement des éléments logiciels du système informatique.

 
Mickael Ruau's insight:

 

 

L’urbanisation aboutit à une structuration du SI permettant d’en améliorer les performances et l’évolutivité. Si en pratique, cette démarche est relativement lourde à mettre en place, ses principaux bénéfices sont nombreux : 

• Evolutivité, cohérence et modularité du SI ;
• Adaptation du SI aux changements des processus métier ;
• Optimisation du fonctionnement des processus ;
• Partage des fonctionnalités métier permettant de limiter la portée des maintenances ;
• Déploiement d’une gouvernance des données de référence ;
• Indépendance vis-à-vis de la technologie ;
• Organisation du SI sur la base d’une vision, de référentiels et de règles partagés par tous (zone, quartier, îlot, blocs).

Outre les gains métier engrangés à court terme, le SI complètement urbanisé sera sur le long terme plus facile à faire évoluer, diminuant ainsi les coûts projets et permettant à l’entreprise de procéder à des choix judicieux grâce aux outils fournis par la méthode d’urbanisation. Le processus décisionnel s’en voit grandement simplifié, tant en termes de temps passé, de relation MOE/MOA que de qualité perçue du SI, optimisant ainsi la performance de chacune des strates de l’entreprise.

 
No comment yet.
Scooped by Mickael Ruau
December 21, 2013 7:06 AM
Scoop.it!

The Downfall of Imperative Programming - FP Complete

Imperative programming is in my bloodstream. I’ve been a C++ programmer for most of my life. I wrote a book about C++. I helped Andrei and Walter design an imperative language D. If I dabbled in functional programming, it was mostly to make my imperative programs better.

Mickael Ruau's insight:

Remember the times when progress in software was driven by adding abstraction layers between programming languages and the details of processor architectures? From flipping binary switches to assembly, to FORTRAN and C. Then there was the object-oriented revolution. Programs were written in terms of objects, often with domain-specific names like Student or Account. Java even let go of pointers and explicit memory management. These were the good times. Enter parallel programming…

I may surprise you that the state of the art in parallel programming is OpenMP and OpenCL. At least this is the consensus among panelists who discuss the future of multicore programming at various conferences I attend. To remind you, OpenMP is a system of pragmas that you insert into a program to make parts of it parallel. OpenCL is a low-level language to communicate with GPUs (there’s also CUDA, in case OpenCL is not low enough for you).

No comment yet.
Scooped by Mickael Ruau
December 18, 2013 3:20 AM
Scoop.it!

Binstock on Software: Perfecting OO's Small Classes and Short Methods

These constraints are intended to be excessively restrictive, so as to force developers out of the procedural groove. I guarantee if you apply this technique, their code will move markedly towards object orientation.

Mickael Ruau's insight:

The restrictions (which should be mercilessly enforced in this exercise) are:

1. Use only one level of indentation per method. If you need more than one level, you need to create a second method and call it from the first. This is one of the most important constraints in the exercise.

2. Don’t use the ‘else’ keyword. Test for a condition with an if-statement and exit the routine if it’s not met. This prevents if-else chaining; and every routine does just one thing. You’re getting the idea.

3. Wrap all primitives and strings. This directly addresses “primitive obsession.” If you want to use an integer, you first have to create a class (even an inner class) to identify it’s true role. So zip codes are an object not an integer, for example. This makes for far clearer and more testable code.

4. Use only one dot per line. This step prevents you from reaching deeply into other objects to get at fields or methods, and thereby conceptually breaking encapsulation.

5. Don’t abbreviate names. This constraint avoids the procedural verbosity that is created by certain forms of redundancy—if you have to type the full name of a method or variable, you’re likely to spend more time thinking about its name. And you’ll avoid having objects called Order with methods entitled shipOrder(). Instead, your code will have more calls such as Order.ship().

6. Keep entities small. This means no more than 50 lines per class and no more than 10 classes per package. The 50 lines per class constraint is crucial. Not only does it force concision and keep classes focused, but it means most classes can fit on a single screen in any editor/IDE.

7. Don’t use any classes with more than two instance variables. This is perhaps the hardest constraint. Bay’s point is that with more than two instance variables, there is almost certainly a reason to subgroup some variables into a separate class.

8. Use first-class collections. In other words, any class that contains a collection should contain no other member variables. The idea is an extension of primitive obsession. If you need a class that’s a subsumes the collection, then write it that way.

9. Don’t use setters, getters, or properties. This is a radical approach to enforcing encapsulation. It also requires implementation of dependency injection approaches and adherence to the maxim “tell, don’t ask.”

Taken together, these rules impose a restrictive encapsulation on developers and force thinking along OO lines. I assert than anyone writing a 1000-line project without violating these rules will rapidly become much better at OO. They can then, if they want, relax the restrictions somewhat. But as Bay points out, there’s no reason to do so. His team has just finished a 100,000-line project within these strictures.

No comment yet.
Scooped by Mickael Ruau
December 14, 2013 8:44 AM
Scoop.it!

SOLID: Part 1 – The Single Responsibility Principle

SOLID: Part 1 – The Single Responsibility Principle | Devops for Growth | Scoop.it
Single Responsibility (SRP), Open/Close, Liskov’s Substitution, Interface Segregation, and Dependency Inversion. Five agile principles that should guide you every time you write code.
No comment yet.
Scooped by Mickael Ruau
December 13, 2013 2:44 AM
Scoop.it!

Postman - A powerful HTTP client to test web services

Postman - A powerful HTTP client to test web services | Devops for Growth | Scoop.it

Postman is a powerful HTTP client to help test web services easily and efficiently. Postman let's you craft simple as well as complex HTTP requests quickly. It also saves requests for future use so that you never have to repeat your keystrokes ever again. Postman is designed to save you and your team tons of time. Check out more features below or just install from the Chrome Web Store to get started.

Mickael Ruau's insight:
FeaturesRequest builder

Create and send any HTTP request using the awesome Postman request builder. The clean user interface keeps only those elements in focus which you need. Postman also encodes data for you, upload files or send binary data.

History & Collections

Every request you send using Postman gets stored in the history and can be loaded into the builder later. No more fiddling with the command line! You can store requests for an API together in collections. Along with storing request data you can also store request specific documentation. Collections can be shared within your team or with other users of your API.

Environments

Have to switch between different values for local, staging and production servers? Use environment variables in your request whose values will be set according to the active environment while sending a request. Postman users have quit using other tools just for this feature alone!

Authentication

Postman supports Basic Auth, Digest Auth and OAuth 1 helpers. Just enter your auth credentials and update the request. For OAuth 1 the request will be updated automatically at the time of sending. OAuth 2 is on the way!

Markdown supportRequest descriptions now support Markdown. Create API docs easily and make it accessible to your team right where they need it!Header presetsSave groups of headers together with their values for quick access later. Presets show up in the drop down menu while editing headers. For example - set an Amazon preset to save all headers required for S3 requests.HTTP helpHover over headers or status codes to see popovers which describe things in more detail. Feel right at home if you are new to HTTP!Auto completeAuto complete dropdowns show up wherever needed. Postman lets you fill up the URL bar quickly as well as headers and header presets.Save to diskSave HTTP responses as files on your local disk. Especially useful for debugging APIs which return PDFs images or any binary response type.Capture requestsCapture requests from any app or website using your local machine as a proxy server with the Postman proxy. 
No comment yet.
Scooped by Mickael Ruau
November 29, 2013 9:51 AM
Scoop.it!

Definitions / Methodology / BEM

Definitions / Methodology / BEM | Devops for Growth | Scoop.it
Definitions of BEM methodology.
Mickael Ruau's insight:

BEM stands for Block, Element, Modifier. The meaning of these terms will be described further in the article.

 

One of the most common examples of a methodology in programming is Object-Oriented Programming. It's a programming paradigm embodied by many languages. In some ways, BEM is similar to OOP. It's a way of describing reality in code, a range of patterns, and a way of thinking about program entities regardless of programming languages being used.

 

We used BEM principles to create a set of front-end development techniques and tools, that allow us to build websites quickly and maintain them over a long time.

 

No comment yet.
Scooped by Mickael Ruau
November 23, 2013 9:12 AM
Scoop.it!

If the only tool you have is a hammer, you tend to see every problem as a nail…

By Xavier Perrin (xperrin@xp-consulting.fr)
The lean approach, often discussed in this blog, is now considered essential for our companies’ competitiveness. At the same time, this approach is becoming more and more criticized.
Mickael Ruau's insight:

L'anti-pattern du marteau doré.

No comment yet.
Scooped by Mickael Ruau
November 19, 2013 4:46 PM
Scoop.it!

Why We Chose API First Development

Why We Chose API First Development | Devops for Growth | Scoop.it
At POP, our site is entirely API driven. We separated our frontend codebase from our backend API in it’s entirety. The two sites are even in separate repositories. There are several reasons we decided to use this architecture which I’ll cover below.
Mickael Ruau's insight:

We wanted a complete separation of the frontend and backend codebases for easier management.

 

The word separation of concerns comes to mind. We believe we lowered our future technical debt by not interlacing backend templated code into frontend client views.

 

Our frontend is almost entirely HTML5 and JS driven, which we believe is hugely beneficial as the future of web development progresses.

 
No comment yet.
Scooped by Mickael Ruau
November 16, 2013 5:39 PM
Scoop.it!

OAuth and REST web services

OAuth and REST web services Portland Java User Group Portland, Oregon March 17 2009
No comment yet.
Scooped by Mickael Ruau
November 16, 2013 5:36 PM
Scoop.it!

Testing REST Web Services

SlideShare is the world’s largest community for sharing presentations. Discover great content and connect with like-minded individuals.
No comment yet.
Scooped by Mickael Ruau
November 16, 2013 10:48 AM
Scoop.it!

Architecture Web : définition, conseils, retours d'expérience

Architecture Web : définition, conseils, retours d'expérience | Devops for Growth | Scoop.it
Tous les conseils du journal du Net sur l'architecture Web : définition, actualité, conseils, retours d'expérience, avis d'expert.
No comment yet.
Scooped by Mickael Ruau
November 16, 2013 10:40 AM
Scoop.it!

Representational State Transfer - Wikipédia

Representational State Transfer

REST ( REpresentational State Transfer ) est un style d' architecture pour les systèmes hypermédia distribués, créé par Roy Fielding en 2000 dans le chapitre 5 de sa thèse de doctorat. REST n'est pas un protocole (tel que HTTP) ou un format.

No comment yet.