Componentes de conhecimento
A área Knowledge, em /knowledge, é o vocabulário do Fito: todas as tecnologias
que ele conhece e as peças de conhecimento presas a cada uma. Esta página é para
quem abriu essa tela e quer conseguir lê-la — o que significam os três rótulos
sob uma tecnologia, o que um componente guarda, e o que nada disso tem a ver com
a nota que um caso dá a você.
Ela não cobre a autoria do vocabulário, nem cobre resolver um caso. Para um caso de ponta a ponta, veja Comece seu primeiro caso.
O que é um componente de conhecimento
Seção intitulada “O que é um componente de conhecimento”O Fito não modela uma tecnologia como um bloco só. Ele divide cada uma em peças pequenas e endereçadas separadamente, chamadas componentes de conhecimento (knowledge components), e esses componentes são o vocabulário que todo o resto do produto fala: um caso declara o que ensina em componentes, o tutor fica limitado aos componentes que o caso dele referencia, e sua proficiência é registrada por componente.
Todo componente carrega um id de referência canônico, montado a partir do tipo,
do slug da tecnologia dele e do slug dele próprio — concept:javalin.handler,
execution-fact:javalin.ctx-json-sets-result-and-content-type,
usage-scenario:javalin.serving-a-json-rest-endpoint. Esse id é o que um caso
fixa, o que o aplicativo web usa nas rotas e o que o terminal imprime de volta
para você. Ele aparece em fonte de código sob o nome do componente, na página
dele.
Um id publicado nunca muda. Onde dois componentes gerariam o mesmo slug, o
segundo recebe um sufixo -2.
As leituras sob /knowledge são públicas, então o vocabulário inteiro pode ser
navegado sem uma conta.
Os três tipos de componente
Seção intitulada “Os três tipos de componente”Os componentes de uma tecnologia vêm em três tipos. A tabela a seguir lista os três na ordem que as abas de tipo usam:
| Tipo | O que ele captura | Exemplo |
|---|---|---|
| Concept | Vocabulário do domínio e o modelo conceitual. | “Idempotência em HTTP” |
| Usage scenario | Um padrão orientado a objetivo para aplicar a tecnologia. | “Implementar um endpoint de pagamento idempotente” |
| Execution fact | Um fato de comportamento sobre como a tecnologia funciona em execução. | “PUT tem de ser idempotente” |
A divisão não é enfeite: ela é a diferença entre saber o que um termo significa, saber como a coisa se comporta quando roda, e saber buscá-la de propósito. A página de uma tecnologia carrega um selo e uma contagem por tipo, e as abas de tipo — All, Concepts, Usage Scenarios, Execution Facts — reduzem a lista a um tipo por vez.
Em que um componente se apoia
Seção intitulada “Em que um componente se apoia”Um componente não se liga a uma tecnologia diretamente. Ele vale para uma ou mais linhas principais (major lines) daquela tecnologia, e toda linha à qual ele se aplica pertence à mesma tecnologia — é isso que permite que um único slug de tecnologia fique dentro do id de referência.
Duas páginas carregam essa estrutura:
- Tecnologias, ferramentas e práticas
— o que é uma tecnologia e por que o tipo dela é
tooloupractice. - Versões e definições alternativas — linhas principais, o histórico de revisões de um componente, e os enquadramentos irmãos que não são nem uma coisa nem outra.
O que um componente guarda
Seção intitulada “O que um componente guarda”O conteúdo de um componente é estruturado em campos, não em texto livre. Um template declara os campos que um componente daquele tipo tem de preencher — as chaves, os rótulos, a ordem, e se cada um é um valor único ou uma lista — e o componente registra contra qual versão de template ele foi escrito. O script de carga do backend carrega os templates; não existe interface para editá-los.
Cada valor de campo é um fragmento de markdown: parágrafos, ênfase, código em linha, listas, citações, tabelas e blocos de código cercados com uma marca de linguagem. HTML cru não é permitido, e H1 também não — o nome do componente ocupa esse nível. Um título escrito dentro de um campo é rebaixado ao ser exibido, para ficar abaixo do campo em que está.
Os campos são o que vira as seções com título na página do componente e as entradas do sumário dela. O sumário fica no nível dos campos: um título dentro de um campo nunca aparece nele.
O conteúdo é gerado e curado pela comunidade, então o aplicativo web higieniza cada fragmento antes de exibi-lo e colore o código cercado conforme a linguagem marcada na cerca.
Da nota de um caso à sua proficiência
Seção intitulada “Da nota de um caso à sua proficiência”Esta é a parte que faz o vocabulário importar em vez de enfeitar.
A rubrica de um caso é uma lista de critérios, e cada critério nomeia um
componente de conhecimento e o nível de Bloom que ele mira para aquele
componente. Quando seu trabalho é avaliado, cada critério recebe uma nota de 0 a
3. Uma nota 2 ou 3 registra o nível de Bloom do critério como a proficiência do
componente dele, e uma nota 0 ou 1 registra NOT_ACHIEVED. A proficiência é
registrada por componente de conhecimento, nunca por competência.
A regra completa, o que NOT_ACHIEVED quer dizer ao lado de um componente não
avaliado e como esses registros viram uma competência estão todos em
Níveis de Bloom e proficiência.
O que aponta de volta para um componente
Seção intitulada “O que aponta de volta para um componente”Duas estruturas referenciam componentes, e elas não são a mesma coisa. Uma competência é uma capacidade permanente cujos elementos são definidos, cada um, por um componente. Um objetivo de aprendizagem é um vínculo que um único caso declara sobre si mesmo.
O painel Used in cases na página de um componente lê o segundo tipo: ele lista os casos publicados que referenciam o componente como objetivo de aprendizagem ou como pré-requisito. Para a diferença, e o teste que a resolve, veja Competências e objetivos de aprendizagem.
O que vem a seguir
Seção intitulada “O que vem a seguir”- Navegar pela área de conhecimento — encontre uma tecnologia, abra um componente e leia os painéis dele.
- Comece seu primeiro caso — abra um caso de verdade no terminal e veja uma nota contra esses componentes.