XGH -OS
- 01
O Architecture Canvas tem 4 camadas. O XGH-OS usa uma e meia.
End-User com tudo lá dentro: screens, blocks, server actions, entities, integrações REST. Foundation é onde vão as Static Entities que ninguém soube onde meter. Core é palavra que o XGH-OS já leu mas não usa. O Discovery abre-se uma vez para ver o aranhol de setas — depois disso, só em apresentação para o cliente.
- 02
Aggregate dentro de For Each é o batimento cardíaco do XGH-OS.
A documentação grita “aggregate or SQL query inside a cycle” há mais de uma década. O AI Mentor sinaliza a vermelho. O Architecture Dashboard contabiliza. O dev XGH-OS faz 1-CP na mesma. O problema do N+1 não é um bug — é uma escolha estética.
- 03
Refresh References. Re-1-CP. Repeat.
“Outdated Producer” → Refresh All → 1-CP → “Outdated Producer” → Refresh All → 1-CP. Se entrar em ciclo, há referência circular entre módulos — solução XGH-OS: aceitar e seguir. O ciclo é o método.
- 04
Quando o IN operator não existe, o XGH-OS concatena strings com #.
A Idea para ter IN em Aggregates tem 500+ likes desde 2015. O XGH-OS já percebeu que nunca vai sair e segue com Index("#"+String_Join.Text+"#", "#"+Entity.Id+"#") <> -1. A performance é problema do otimizador da Aurora.
- 05
If StatusId = 1: o XGH-OS não decora nomes de Static Entities.
Static Entities existem precisamente para evitar magic numbers no código. O XGH-OS respeita o princípio: não usa magic numbers, usa magic Ids. Toda a gente sabe que 1 é “Pendente”, não é? E que 7 é “Cancelado”. Exceto em PRD, onde 7 é “Aprovado” porque alguém renumerou em 2019 e ninguém atualizou os 47 IFs espalhados pelos módulos.
- 06
Toda Server Action grande do XGH-OS termina em FinalResult2.
Aux, Aux2, Temp, Temp_OK, X, Y, Result, Result2, FinalResult, FinalResult_REAL, FinalResult_FINAL, FinalResult_USE_THIS_ONE. Nomenclatura é privilégio de quem tem tempo. O XGH-OS tem prazo.
- 07
Site Property é a variável global do XGH-OS.
Configurar algo sem deploy? Site Property. Passar valor entre Timer e Screen? Site Property. Guardar o último Id processado para retomar amanhã? Site Property. Feature flag? Site Property. Service Center → Site Properties → Edit Value é o painel de admin oculto da empresa, gerido por quem tem acesso, não por quem decide.
- 08
O TrueChange tem três cores. O AI Mentor faz sugestões. O XGH-OS fecha a aba.
Vermelho não 1-CP. Amarelo 1-CP. Os 247 warnings amarelos são parte do tema do Service Studio. “Avoid Aggregate inside cycle.” “Cyclic reference detected.” “Avoid large session variables.” Sugestão. Sugestão. Sugestão.
- 09
Se o Last Modified By não for teu, o erro também não é.
A primeira ação do XGH-OS perante uma exception em produção: abrir a Server Action, consultar o Last Modified By no painel de propriedades, ler o nome. Se for de um colega da equipa — fecha o Service Studio. Se for de alguém que já saiu da empresa — fecha mais depressa. O AI Mentor tem o mesmo workflow: abre-se o finding, vê-se o módulo, vê-se a equipa dona, e se não for a tua, Suppress. O Last Modified By é o git blame do XGH-OS. E o álibi.
- 10
Forge é open source: baixa, copia, esquece o autor.
Componente de 2018, sem versão para Reactive, autor saiu da empresa em 2020? Baixa o .oap, descompila, copia o JavaScript do Web Block, cola num módulo próprio. “Customizámos para a nossa realidade.” (E partiu no upgrade para ODC, mas isso é problema do trimestre seguinte.)
- 11
1-CP em produção é uma forma de coragem.
O LifeTime existe. As Deployment Zones existem. Os approvals existem. O XGH-OS sabe disto e sabe também que basta trocar o ambiente no canto inferior do Service Studio para o 1-CP apontar diretamente a PRD. “É só um hotfix urgente.” “É só um Site Property.” “É só uma Static Entity.” Quem nunca? Se respondeste “eu”, parabéns — não és XGH-OS, és gestor.
- 12
Audit log? O Service Center é o nosso Datadog.
A tabela OSLOG_GENERAL cresce a 4 GB por mês. LogMessage("entrei aqui") é a única instrumentação. Dashboards de observabilidade são comprados em Q4 e abandonados em Q1. Quando um cliente reporta bug em produção, abre-se o Service Center, filtra-se pela hora aproximada, e reza-se para o log estar lá.
- 13
Migração para ODC: tudo na sprint 1, e era isso.
Traditional Web deixou de existir — reescreve-se em Reactive. SQL Server passou a Aurora PostgreSQL — reescrevem-se as queries (case-insensitive deixa de ser default — boa sorte). SOAP virou REST — reescrevem-se as integrações. Estimativa do XGH-OS: “umas duas semanas”. Realidade: 9 meses, duas demissões, e um post-mortem de 47 páginas.