Go channels

No post anterior, eu falei sobre go routines e criei um programa simples que envia um email de forma concorrente a execução do programa. No programa, nós chamavamos um método para enviar email de forma concorrente que apenas dava um println no final do envio para nos notificar que o email havia sido enviado com sucesso. Mas e se quisessemos que após o envio do email, fosse realizado algum tipo de operação, como efetuar um log, notificar alguém, etc. Poderíamos neste caso chamar uma func no final do envio do email. Mas podemos também utilizar channels, que é uma maneira de conversarmos entre go routines, sincronizando a sua execução. Para isso, basta criar um channel, passá-lo para a func de envio de email e, após o envio, enviar uma mensagem ao channel dizendo que está tudo ok! Agora podemos criar outra func que rode de forma concorrente e que receba esta mensagem do channel e faz o que for preciso.

Continuar lendo

Anúncios

Entendendo go routines

Go routines é o jeito no go de executar código de forma concorrente com outras funcs. Para executar um método de forma concorrente, basta utilizar a palavra chave go antes da sua func. Para exemplificar essa questão, vamos pensar na seguinte situação: sua app precisa enviar um email, mas como o envio de email não é uma operação tão rápida, você não quer deixar o seu usuário esperando para poder continuar utilizando o seu app. Para isso, vamos pedir para uma go routine enviar o nosso email e continuar com a execução do email.
Continuar lendo

Let’s ‘go’ forward

Bom, eu venho procurando uma nova linguagem para aprender a algum tempo. Desde que fui trabalhar no centro de televisão da BM&F Bovespa, e mais recentemente na ERSoft, eu trabalho em ambiente windows, desenvolvendo projetos em windows forms, xna, webforms, mvc, etc. Não que eu ache o C# uma linguagem ruim. Muito pelo contrário, c# é uma das minhas linguagens favoritas. Mas estou cansado de ficar sempre na mesma coisa. Visual Studio, IIS, SQL Server, etc. Parece que nunca muda, parece que parei no tempo. O Visual Studio é uma IDE fantástica, com muitos recursos, etc. Mas quanto mais o tempo passa, mais eu sinto falta de usar o bom e velho vim. Desde o começo da minha carreira, quando eu trabalhava com C prestando serviço para o Bradesco que eu não usava esse editor FODA. Finalmente tomei vergonha na minha cara, baixei o ubuntu e cá estou eu no meu notebook pessoal postando de um so que não seja o windows.

go lang

A procura da linguagem  da linguagem chegou ao fim nesses dias, quando eu resolvi dar uma olhada mais a fundo no go lang. Eu já vinha flertando com o go desde que eu ouvi falar dele, um tempo atrás, mas devido a correria da vida, trabalho, etc, eu vinha adiando. A decisão no final não foi tão dificil, já que o go me lembra bastante o C, só que moderno. Eu vinha flertando com o elixir também. Mas o go acabou me conquistando. Ainda sou um programador .net, ainda pago minhas contas com a microsoft, mas a partir de agora, meus esforços, estudos, etc. em meu tempo livre já não serão mais direcionados ao .net.

Bom, é isso. Provavelmente os próximos posts estarão destinados ao go.

see yah!