Pular para o conteúdo

Tecnologias, ferramentas e práticas

Uma tecnologia é o assunto no qual o conhecimento se apoia. Todo componente de conhecimento (knowledge component) no Fito pertence a exatamente uma, e a lista em /knowledge é uma lista de tecnologias, não de componentes.

Esta página é para quem viu as pílulas tool e practice e quer saber o que elas decidem. Ela cobre o que uma tecnologia guarda e por que a classificação tem só dois valores. Ela não cobre os componentes em si — para esses, veja Knowledge components.

O Fito não se importa se uma tecnologia é distribuída como uma biblioteca. O Javalin é uma tecnologia. A Arquitetura Hexagonal também, e os Feature Toggles também. O que faz algo ser uma tecnologia no Fito é que as pessoas podem ser competentes nisso e que essa competência pode ser escrita como componentes.

Cada tecnologia carrega quatro coisas que você vê:

  • Um nome, como Hexagonal Architecture.
  • Um slug, como hexagonal. O slug é um trecho de toda referência de componente daquela tecnologia — concept:hexagonal.port — e da URL dela.
  • Um tipo (kind), tool ou practice.
  • Uma descrição, que é opcional.

Sob cada tecnologia fica pelo menos uma linha principal (major line). É lá que mora o texto específico de versão, e é por isso que a descrição acima é a que não depende de versão: o que a tecnologia é em todas as linhas dela.

tool quer dizer software concreto — uma biblioteca, um framework, um programa de linha de comando. practice é definido como tudo que não é uma ferramenta — técnicas e metodologias incluídas, em vez de ficarem ao lado como um terceiro e um quarto tipo.

Isso parece perder informação, e é proposital. Nada no Fito lê o tipo para decidir o que você pode fazer. Ele é mostrado num cartão e declarado quando alguém cria a tecnologia. Uma classificação de quatro valores multiplicaria o que os autores teriam de julgar — TDD é uma técnica ou uma prática? A Arquitetura Hexagonal é uma prática ou uma metodologia? — e nenhuma parte do produto consumiria a resposta.

O único lugar em que o tipo decide algo é qual template um componente daquela tecnologia usa. Um concept sobre uma ferramenta e um concept sobre uma prática pedem campos diferentes.

Abra /knowledge/<technology-slug> e você recebe, nesta ordem:

  1. O nome, com o tipo ao lado como uma pílula.
  2. A descrição que não depende de versão, ou No description yet. quando ninguém escreveu nenhuma.
  3. Três pílulas de contagem — Concepts, Usage Scenarios, Execution Facts — cada uma um link que filtra a barra lateral por aquele tipo.
  4. Uma seção Versions, um cartão por linha principal.
  5. Uma barra lateral com os componentes da tecnologia.

As contagens são a leitura mais rápida de quão bem uma tecnologia está coberta. Uma tecnologia com dois concepts e nenhum usage scenario consegue ensinar o que as palavras significam, e ainda não consegue colocar você numa situação que as use.

Ninguém no Fito mantém um catálogo fixo. Quem escreve casos provisiona uma tecnologia quando precisa de uma, e os componentes dela são gerados a partir das fontes que essa pessoa ingeriu. Então a lista em /knowledge cresce de lado, no formato do que as pessoas de fato ensinaram.

É por isso também que uma tecnologia pode ficar ali com uma descrição magra e dois componentes. Ela é um assunto real que alguém começou, não um esboço que o Fito entregou pronto.