Pular para o conteúdo principal

Postagens

C# - Tipos genéricos

A linguagem C# introduziu a funcionalidade de tipos genéricos com a versão 2.0, permitindo que desenvolvedores escrevam código mais flexível e reutilizável. Os tipos genéricos permitem que você escreva uma classe ou método que funciona com qualquer tipo de dados, em vez de estar preso a um tipo específico. Isso permite que o código seja escrito de forma mais genérica, o que aumenta a sua reutilização. Para entender melhor, vamos dar um exemplo de uma classe simples para gerenciar uma lista de objetos. Sem o uso de tipos genéricos, seria necessário escrever uma classe para cada tipo de objeto que desejássemos gerenciar. Por exemplo, uma classe "ListaDeInteiros", outra "ListaDeStrings", e assim por diante. Com o uso de tipos genéricos, é possível escrever uma única classe "Lista<T>" onde T é o tipo genérico. Isso significa que a classe pode ser usada para gerenciar uma lista de qualquer tipo de objeto, sem precisar escreve

PHP - Criando scripts e os executando pela linha de comando

O PHP é uma linguagem de programação popular usada para desenvolvimento web, mas também pode ser usada para criar scripts que podem ser executados diretamente na linha de comando. Neste post, vamos mostrar como criar scripts PHP e como executá-los na linha de comando (você pode ver o que já publicamos sobre o PHP aqui ). Criando scripts PHP Para criar um script PHP, você precisa criar um arquivo com a extensão ".php". Isso pode ser feito com qualquer editor de texto, como o Bloco de Notas ou o Sublime Text. Dentro do arquivo, você pode escrever o código PHP desejado. Por exemplo, o seguinte script imprime "Hello World!" na tela: <?php     echo "Hello World!"; ?> Executando scripts PHP na linha de comando Para executar um script PHP na linha de comando, você precisa usar o interpretador PHP. No Linux e macOS, o interpretador PHP geralmente vem instalado por padrão e pode ser executado

PHP - Como instalar

PHP é uma linguagem de programação popular usada para desenvolvimento web. Neste post, vamos mostrar como instalar o PHP em sistemas operacionais Linux, macOS e Windows, além de como testar a instalação. Instalação no Linux A maneira mais fácil de instalar o PHP no Linux é usando o gerenciador de pacotes do sistema. Para fazer isso no Ubuntu, por exemplo, você pode usar o seguinte comando: sudo apt-get install php Isso instalará a versão mais recente do PHP disponível no repositório do Ubuntu. Se você deseja instalar uma versão específica, pode especificá-la no comando, como por exemplo: sudo apt-get install php7.4 Instalação no macOS Para instalar o PHP no macOS, você pode usar o gerenciador de pacotes Homebrew. Primeiro, você precisa instalar o Homebrew seguindo as instruções no site oficial. Em seguida, você pode usar o seguinte comando para instalar o PHP: brew install php Assim como no Linux, isso instalará a versão mais recente do PHP di

Hangfire - processamento em background fácil no .NET

A necessidade de realizar uma tarefa em segundo plano é muito comum, seja para gravar um arquivo, enviar um e-mail, executar um processo de banco pesado, enfim, qualquer coisa que não deve "bloquear" o usuário no thread principal, e é aí que o Hangfire entra, ele recebe tarefas e as trata em filas realizando a execução em background e mais: As tarefas entram em uma fila e a execução ocorre na sequência; Uma execução só é considerada "falha" quando as tentativas já se esgotaram (por padrão são 10); Dá para criar uma tarefa simplesmente a colocando na fila; Dá para criar um fluxo de execução de tarefas constante dentro de um intervalo; Dá para agendar a execução de tarefas; Dá para condicionar a execução de tarefas após o sucesso de outra tarefa; Todo o fluxo é tratado em tabelas do próprio Hangfire, podendo ser gerido em vários bancos de dados (relacionais ou não); Os registros referentes as tarefas possuem um tempo limitado de vida, depois de concluidos são apagados

Clojure - Símbolos globais e locais

Até agora, sempre que foi necessário manter um valor em memória nós usamos o conceito de "variável", realizando a "definição de um símbolo" com o comando " def ". Porém essa abordagem corresponde ao que conhecemos nas linguagens mais tradicionais como "definição de variável global". Como é de conhecimento, as definições de "variáveis globais" podem trazer uma série de problemas as aplicações, uma vez que é quase impossível ter conhecimento de todas, com isso podemos acabar gerando problemas com a substituição de valores durante seu uso, podendo causar erros em diversos pontos da aplicação e tornando a aplicação instável e de difícil manutenção. Dito isso, veremos como trabalhar com símbolos dentro de um escopo limitado, seguiremos os próximos exemplos dentro de nossas funções. Escopo global Como vimos até aqui, os símbolos de escopo global podem ser acessados de qualquer parte da aplicação, vamos ao exemplo, considerando uma aplicação h

Clojure - Criando nossa primeira função

Anteriormente vimos como configurar o ambiente e em seguida escrevemos nossas primeiras linhas de código para começarmos a entender como o Clojure funciona, usamos algumas funções "nativas", declaramos algumas "variáveis" e também brincamos com um vetor. Nesse post daremos mais um passo, escreveremos nossa primeira função, passando por algumas de suas características e entendendo um pouco sobre como a criação delas funciona. Definindo nossa primeira função Para criar nossa primeira função precisamos ter em mente que o que deve ser feito é algo semelhante a definição de uma variável, a diferença fica por conta do uso do comando " defn " (é possível usar o " def ", mas veremos isso futuramente), basicamente precisaremos: Escrever todo o conteúdo dentro de parênteses; Usar o comando " defn "; Definir uma lista de parâmetros, se não existirem parâmetros (nosso caso agora) essa lista deve estar vazia; Definir o corpo da função; Opcionalmente

Clojure - Funções, vetores e def

Nessa postagem escreveremos nossas primeiras linhas de código com o Clojure, aqui tentaremos trazer alguns conceitos para mais perto de quem já programa com os paradigmas mais tradicionais (orientação a objetos por exemplo), de modo que fique mais simples entender as intenções e começarmos a correlacionar alguns pontos, mesmo que alguns deles não sejam necessariamente a mesma coisa. Funções Como já é de conhecimento, funções são pequenas partes de um programa que executam um trabalho e devolvem um resultado, e para que esse trabalho seja realizado muitas vezes é necessário informar argumentos ou informações para que algo seja feito. Em Clojure toda invocação de uma função ocorre dentro de parênteses, logo podemos interpretar o conteúdo que esta dentro dos parênteses da seguinte forma: O primeiro valor é a função a ser executada; O segundo valor é o primeiro argumento que a função receberá; Vamos agora ao nosso primeiro exemplo, iremos chamar uma função que escreve no console, passando