-
Notifications
You must be signed in to change notification settings - Fork 2
[DEV] Conselhos, dicas e truques de programação
Esta página é uma coleção de itens de informação (FYI) e aprendizado de hoje (TIL) que destacam utilitários ou padrões de programação úteis que não são óbvios ou são pouco conhecidos. Considere-os como uma sugestão e não como algo obrigatório.
-
A classe base
Disposablefacilita para as subclasses o registro de valores que devem ser descartados quando a instância for descartada. -
DisposableStoregerencia com segurança uma coleção de valores descartáveis. É preferível aIDisposable[]. -
DisposableMapgerencia um mapa onde os valores são descartáveis. Isso ajuda a evitar alguns bugs complicados de ciclo de vida em comparação com a implementação de umMap<K, IDisposable>por conta própria. -
MutableDisposablegerencia com segurança um valor descartável que pode ser alterado. Isso evita bugs em que você se esquece de descartar o valor antigo ao sobrescrevê-lo com um novo valor.
- Os tipos nativos
MapeSetsão ordenados pela ordem de inserção 💡 Isso é pouco conhecido, mas pode ser útil -
ResourceMapeResourceSetque são mapas/conjuntos normais, mas indexados porURI -
LRUCacheé um mapa com recursos de recência e remoção de elementos aleatórios -
TernarySearchTreeé semelhante a um mapa com a capacidade de pesquisar substrings e superstrings (útil para contenção de caminhos) -
SkipListé um mapa que é classificado com base em uma função de comparação personalizada -
LinkedListé semelhante a arrays, mas com remoção/inserção mais rápida.
Os módulos src/vs/base/common/arrays.ts e src/vs/base/common/strings.ts possuem diversos utilitários muito úteis para lidar com arrays ou strings.
O módulo src/vs/base/common/iterator.ts contém utilitários para trabalhar com iteráveis. Iteráveis podem ser uma alternativa melhor do que arrays, pois impõem o modo somente leitura por padrão, economizando chamadas a Array.slice.
Temos utilitários para atrasar certas operações ou valores.
-
Lazy<T>um valor preguiçoso é calculado apenas quando acessado pela primeira vez -
IdleValue<T>é semelhante aLazy, mas usa os tempos ociosos do navegador para calcular seu valor imediatamente. Implementa o padrão "ocioso até que seja urgente", veja: https://philipwalton.com/articles/idle-until-urgent/ -
runWhenIdleé o nosso wrapper para a funçãowindow.requestIdleCallbackdos navegadores - Os métodos
scheduleAtNextAnimationFrameerunAtThisOrScheduleAtNextAnimationFramepermitem entrar neste ou no próximo quadro de animação do navegador.
Gerenciamento de Projetos
- Roteiro
- Planos de Iteração
- Processo de Desenvolvimento
- Rastreamento de problemas
- Campeão de Construção
- Processo de lançamento
- Executando o Fim do Jogo
- Projetos Relacionados
Contribuindo
- Como contribuir
- Enviando Bugs e Sugestões
- Canais de feedback
- Organização do código-fonte
- Diretrizes de codificação
- Teste
- Lidando com a instabilidade do teste
- Contrato de Licença do Colaborador
- Diretrizes da API de extensão
- Diretrizes de acessibilidade
Documentação