sábado, 1 de agosto de 2015

[2 de 97]. Comece com um esqueleto funcional.

“Start with a walking skeleton”.

Clint Shank


Seguindo os comentários do livro:
97 things Every Software Architech Should Know.

---
Start with a walking skeleton.

One very useful strategy for implementing, verifying, and evolving an application architecture is to start with what Alistair Cockburn calls a Walking Skeleton . A Walking Skeleton is a minimal, end-to-end implementation of the system that links together all the main architectural components. Starting small, with a working system exercising all the communication paths, gives you confidence that you are heading in the right direction.

Once the skeleton is in place, it's time to put it on a workout program. Bulk it up with full body workouts. This means implement incrementally, adding end-to-end functionality. The goal is to keep the system running, all the while growing the skeleton.
---

Esta estratégia é uma das minhas favoritas, especialmente para integrações muito complexas ou que tenham uma média ou grande equipe  de desenvolvedores.

Concordo plenamente com o comentário de Clint Shank, em pequenos desenvolvimentos uma pessoa pode fazer tudo da sua própria maneira e não precisa  desse tipo de estratégia.

A ideia é simples, você deve alcançar um esqueleto funcional que vá de uma extremidade a outra da integração.

O objetivo também  é simples,   verificar que o caminho seja eficiente e  descobrir oportunamente as implicações que podem ter construí-lo, fortalecê-lo, modificá-lo.


Os objetos e serviços mock podem ajudar muito com esta estratégia.

Imagine um cenário hipotético, mas muito comum, temos de fazer a integração de vários sistemas, incluindo: um serviço de nível muito baixo (que ainda não tenha sido criado) passando por uma transformação dos dados (não totalmente definidos) seguida por uma tradução (um pouco confusa) e terminando com uma visualização dos dados (ainda em desenho).

Nosso esqueleto usaria objetos mock para:

  • Simular a invocação de serviços para o nível mais baixo.
  • Simular a transformação de dados, que receba a saída do passo anterior como entrada para este passo.
  • Traduzir um conjunto de dados válidos, mas arbitrários e retornar o formato esperado pela camada superior.
  • Mostrar o componente de visualização de dados com os dados arbitrários.


E o nosso esqueleto está completo. :)

A partir desse esqueleto pudemos crescer e fortalecer o nosso aplicativo, sem afetar  significativamente as camadas superiores. A construção do esqueleto nos ilumina o necessário para saber o custo de modificar qualquer um dos pontos de conexão;  de cada "bone" do esqueleto.
E saber o custo, ajuda a definir pontos de conexão mais fáceis de serem trocados.

E você?

Quantos esqueletos já encontrou pelo caminho?
Somente contam os que vemos no início, os que vemos ao final do projeto nem os mencione.

;)

---
RuGI Isaac Ruiz Guerra.

-----------------------------------------------------
Autor da foto acima: germeister
------------------------------------------------------

No hay comentarios:

Publicar un comentario