"Sim, é teórico porque acredito que a ideia é ser uma descrição do "caso geral". Ao codificar, vc verifica se tem uma situação similar e aí vê se tem algum pattern que pode te ajudar. Por exemplo, eu preciso criar um tipo diferente conforme determinados..."3 tabcoins · 0 comentário · kht · 1 hora atrás
"Sim, são necessários até hoje. Isso porque Design Patterns são basicamente soluções conhecidas e catalogadas para problemas comuns. De forma bem resumida, ao longo do tempo muitas pessoas foram chegando à soluções muito parecidas para problemas similar..."4 tabcoins · 2 comentários · kht · 2 horas atrás
"Concordo que desmotiva. Mas se a pergunta não está dentro do escopo do site, será que ela deveria ser respondida? Ou as pessoas se esforçam pra seguir os critérios (que reconheço que são complicados), ou mudam-se esses critérios. O primeiro ponto já vi..."1 tabcoin · 0 comentário · kht · 4 dias atrás
"Os critérios de ambos os sites são parecidos, mas tem uma coisa que muita gente ignora: a escala. O site em português (SOpt) meio que estagnou (segundo dados de hoje, tem em média 12 perguntas por dia). Já o site em inglês (SOen) recebe mais de 2 mil p..."3 tabcoins · 2 comentários · kht · 4 dias atrás
"Não é necessariamente o hotspot, ainda mais pra poucas requisições. Tem outras coisas que podem ter contribuído para este resultado. Quando a JVM começa a executar, tem uma série de coisas que ela precisa fazer para iniciar. Por exemplo, tem várias est..."3 tabcoins · 0 comentário · kht · 4 dias atrás
"Complementando, existe outra forma de declarar propriedades que caem neste caso mais "comum" (o getter só retorna e o setter só recebe o valor). Basta usar a sintaxe de Auto-implemented properties. E neste caso, para criar o objeto, use um object initi..."5 tabcoins · 0 comentário · kht · 5 dias atrás
"Acho que a ideia principal é aproveitar o fato de não precisar recalcular tudo todas as vezes. Por exemplo, vamos supor que eu já calculei $3!$ usando um loop (multiplicando todos os inteiros de 1 a 3). Depois, quando for calcular $4!$, não preciso faz..."3 tabcoins · 1 comentário · kht · 13 dias atrás
"Estou na área há mais de 20 anos e até hoje eu copio. Claro que não o tempo todo. A cópia em si não é ruim. O problema é copiar cegamente, sem procurar entender (pesquisando se for o caso) o que o código faz, como faz, se realmente serve pro seu caso o..."4 tabcoins · 1 comentário · kht · 15 dias atrás
"É bem por aí. Uma situação que vejo muito em diversos sites similares, em que os usuários votam no conteúdo dos outros: a pessoa reclama que tomou negativo e ninguém explicou o motivo. Até que um dia alguém resolve explicar, mas aí a pessoa não aceita,..."3 tabcoins · 0 comentário · kht · 26 dias atrás
"acabei alcançando seu blog Legal! Infelizmente ele está bem desatualizado, não estou conseguindo escrever com a frequência que gostaria. Mas espero que goste do que já tem lá, sugestões e críticas são bem vindas também :-)"1 tabcoin · 0 comentário · kht · 1 mês atrás
"É perfeitamente possível criar commits com qualquer data que vc quiser, veja aqui. Por exemplo, acabei de fazer um teste aqui, criei um repositório do zero e fiz um commit assim: GIT_COMMITTER_DATE="1980-01-01 10:00" git commit --date="1981-01-01 10:00..."8 tabcoins · 2 comentários · kht · 1 mês atrás
"float não é adequado para valores monetários. Os números de ponto flutuante são imprecisos e possuem várias nuances difíceis de perceber. Se quiser se aprofundar mais, aqui tem vários links sobre o assunto - e cada um desses links tem vários outros, sã..."4 tabcoins · 1 comentário · kht · 2 meses atrás
"Ah, os velhos tempos (não necessariamente "bons" - algumas coisas até que eram sim, outras não). Na faculdade usei Turbo Pascal na matéria de Introdução à Programação, todos diziam que "Pascal é uma linguagem bem didática", etc. De fato era bem simples..."8 tabcoins · 0 comentário · kht · 2 meses atrás
"Muito bom! Complementando, todas estas opções de formatação podem ser encontradas na documentação (é bem ampla, com várias outras opções, sugiro a leitura). Um detalhe interessante é que os parâmetros de formatação (tamanho, alinhamento, etc) podem ser..."3 tabcoins · 0 comentário · kht · 2 meses atrás
"Como saber se sou pleno? Não tem como responder de forma objetiva, simplesmente porque não existe uma definição oficial desses "níveis" (júnior, pleno, sênior, e qualquer outro que inventarem). Então cada um tem sua própria definição, com critérios que..."5 tabcoins · 0 comentário · kht · 2 meses atrás
"em menos de dois anos e meio que não programava nada Mas vc mexia muito com Python? Porque as características que vc relatou não são tão recentes assim... for i in i range(a,quantidade) Isso nunca foi uma sintaxe válida em Python, a menos que seja um e..."2 tabcoins · 1 comentário · kht · 2 meses atrás
"Bom, mudando um pouco de assunto, uma dica que posso dar é que - pelo menos no último exemplo - vc está não está usando map da melhor maneira. Quer dizer, até "funciona", mas não é a ferramenta adequada para este caso. A ideia do map é executar algo co..."2 tabcoins · 0 comentário · kht · 2 meses atrás
"Vc pode compartilhar o código completo? Ou pelo menos algum exemplo reduzido que dê o mesmo resultado. Porque sem isso não tem como analisar o que está fazendo com que um seja mais rápido que outro, nem o que de fato está sendo comparado. Em geral, um..."1 tabcoin · 2 comentários · kht · 2 meses atrás
"O problema de qualquer critério que for definido é que não tem como escapar da subjetividade. Sempre vai ter um componente subjetivo, que depende muito do background e da experiência prévia de cada um. Por exemplo, perguntas sobre algum assunto batido..."3 tabcoins · 1 comentário · kht · 2 meses atrás
"Pessoas diferentes encaram as publicações de formas diferentes, então votam de maneiras diferentes. Perfeito. Nem sempre todo mundo vai concordar com todo mundo. O que é bom pra um pode ser muito ruim pra outro. Tem vezes que vejo posts que eu acho bon..."3 tabcoins · 3 comentários · kht · 2 meses atrás
"Só um detalhe, que é uma confusão que muitos fazem: complexidade não mede o tempo de execução. O único jeito de saber o tempo exato que um programa leva para executar é testando-o em condições reais. O que funções como o Big-O fazem é determinar o "tra..."2 tabcoins · 0 comentário · kht · 2 meses atrás
"O WebStorm tem uma versão trial de 30 dias, por que vc não instala e testa? Assim vc mesmo poderá ver se vale a pena ou não - inclusive, usar é a melhor maneira de decidir isso, já que a escolha de IDE costuma ser algo pessoal, vai da preferência de ca..."3 tabcoins · 1 comentário · kht · 2 meses atrás
"Muito bom! Complementando: sobre os comandos switch e restore, eu já fiz este post. Vale lembrar que até hoje, a documentação oficial (aqui e aqui) ainda diz que eles são comandos experimentais e podem mudar. De qualquer forma, é interessante conhecê-l..."5 tabcoins · 1 comentário · kht · 2 meses atrás
"vão todos os arquivos do meu repositório local e não apenas os que eu selecionei no git add Mas a ideia do git push é justamente essa: enviar para o repositório remoto todas as alterações do seu branch local que ainda não estão lá. Aqui tem uma explica..."1 tabcoin · 0 comentário · kht · 2 meses atrás
"Outra opção interessante deste comando é mudar o nome do branch inicial. Por padrão, git init cria o branch "master". Mas é possível alterar o nome do branch inicial usando a opção --initial-branch ou -b. Por exemplo, se eu quiser que seja "main": : A..."5 tabcoins · 0 comentário · kht · 2 meses atrás
"Só pra complementar, além de transformar o número em string, tem também a solução matemática. A mais comum que se vê por aí é a de construir o número inverso e comparar com o original: // gerar o número inverso de "num" e comparar com o original functi..."4 tabcoins · 0 comentário · kht · 2 meses atrás
"Sobre matemática, já falei aqui e aqui. Sugiro ler tudo para um panorama mais completo, mas pra resumir um ponto essencial: matemática não é só aquilo que vemos na escola (decorar fórmulas e fazer continhas), vai muito além disso. Um trecho do segundo..."2 tabcoins · 0 comentário · kht · 2 meses atrás
"Uma das utilidades de closure é o caso clássico de precisar usar uma função anônima de callback dentro de um loop. Exemplo: for (var i = 0; i < 5; i++) { setTimeout(function () { console.log(i) }, 1000 * i); } Ou seja, em cada iteração do for, eu chamo..."1 tabcoin · 1 comentário · kht · 2 meses atrás
"Sobre os data attributes, o propósito deles é simplesmente de armazenar dados customizados associados a um elemento, quando não há nenhum outro atributo que sirva. Isso é descrito pela própria especificação do HTML: Custom data attributes are intended..."2 tabcoins · 0 comentário · kht · 2 meses atrás
"Pra mim, qualquer um que defenda ou leve a sério esses pacotes tipo is-odd já é desqualificado na hora. E pra completar o show de horrores, o is-even tem como dependência o is-odd, inclusive seu código fonte é: module.exports = function isEven(i) { ret..."1 tabcoin · 0 comentário · kht · 2 meses atrás