transformAÇÃO na EETEPA Icoaraci

Em 2010, realizamos um #tasafoemacao na Escola de Ensino Técnico do Estado do Pará (EETEPA) de Icoaraci, que oferta os cursos de Informática, Suporte e manutenção, Design de interiores e Hospedagem, onde Fábio e Jaime foram nos representar. Pelo relato, deve ter sido “duka” mesmo. E no dia 27 de Agosto de 2016, tive a satisfação de representar o Tá safo! para uma ação, em conjunto, chamada I FISOL 2016, articulada pelo Marcelo Sá, da Jambu Tecnologia, Ézyo Lamarca do Linux Pai D’Égua e Raimundo Xavier do projeto LibreOffice.

Continuar lendo

Anúncios

Porque utilizar AngularJS no seu próximo projeto

Vamos começar pela definição: AngularJS é um framework JavaScript para construção de aplicações web dinâmicas, comumente referenciado como um framework MVC client side. Essa definição não está errada, mas o fato é que MVC é um padrão para dividir uma aplicação em diferentes partes (modelo, visão e controle), cada uma com suas respectivas responsabilidades. O AngularJS  não implementa um MVC na sua forma tradicional, mas algo próximo de um MVVM (Model – View – ViewModel). Logo, seu próprio time de desenvolvimento resolveu batizá-lo, carinhosamente, de um framework MVW  – Model View Whatever. Bem, o time de desenvolvimento do Angular dispensa apresentação, ele nasceu e é mantido por uma empresa que entende de web, o Google.

“AngularJS – Superheroic JavaScript MVW Framework”

A principal característica do AngularJS é que ele funciona como uma extensão do HTML, diferente de outros frameworks JavaScript, não é necessário manipular o DOM. Isso possibilita a criação de um front end mais organizado e sem a necessidade de manipular “html + dados”.

Suas principais características são:

  • Two-way Data binding
  • Injeção de Dependências
  • Criação de diretivas (Extensão do HTML)
  • Modularização e reuso (Controllers, Services e Filters)
  • Testabilidade

Basicão


<html ng-app>
 <head>
     <title>AngularJS</title>
    <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.2.25/angular.min.js"></script>
 </head>
 <body>
     <p>Meu nome é: {{ nome }}</p>
     <input type="text" ng-model="nome">
 </body>
</html> 

Este é o exemplo mais básico em AngularJS. A diretiva ng-app na tag <html> inicializa a aplicação e define esta tag como o elemento root da aplicação, tudo a partir dela pode ser gerenciado pelo Angular. Ao digitar algo no input o nome será atualizado em realtime na tela. Essa mágica é chamada de Two-way data binding. Qualquer interação na view será refletida no modelo e vice-versa, isso é feito através do objeto $scope, criado automaticamente pelo angular. A propriedade ng-model é responsável por fazer o canal de comunicação e a sintaxe utilizada é o “bigode-bigode”: {{ atributo }}. Note que até aqui não escrevemos nenhum código JavaScript.

Continuar lendo

Os custos ocultos do débito técnico

O débito técnico, na definição de Rodrigo Machado, é a distância entre o estado atual de um artefato técnico e como ele o seria em seu estado da arte. Acesse o artigo que ele escreveu para saber mais sobre a definição e outras discussões. Este artigo aborda uma questão que nós, geralmente, não prestamos atenção no dia a dia: como reagimos psicologicamente quando fazemos um trabalho ruim?

Veja o seguinte relato:

A pressão por resultados rápidos me impede de raciocinar direito. Fico ansioso, somente pensando em terminar logo, pois tem alguém esperando apressadamente e o sucesso do negócio dos meus clientes depende disso. As pessoas querem entrega urgente, porém me culpam quando um bug aparece em produção. E ainda se sentem no direito de me repreender. Mas eu avisei para eles que isso iria acontecer.

Veja que as consequências negativas do débito técnico não influenciam somente as funcionalidades de um software, elas vão muito além. Sempre existem três prejudicados pelo débito técnico:

Continuar lendo

Domain Driven Design – Melhorando a comunicação

Software é complexidade. E tal complexidade vem diretamente do domínio do problema ao qual o software se destina a resolver. É aqui que entram uma série de práticas voltadas a tentar combater ou mesmo amenizar tal complexidade. A criação de um modelo de domínio é uma delas.

Um modelo é uma simplificação, uma interpretação de algo mais complexo no qual gostaríamos de mostrar os aspectos mais relevantes. Um modelo de domínio serve como base para uma comunicação entre as pessoas que participam de um projeto. Esta comunicação deve ser realizada através de uma linguagem que facilite a interação entre pessoas que possuem visões diferentes sobre o domínio.

Em um projeto de software podemos encontrar vários perfis de profissionais. Os especialistas de negócio possuem sua própria linguagem, seus próprios jargões técnicos sobre o domínio. Diferente dos desenvolvedores que, por sua vez, possuem seus próprios conceitos para se referenciar ao domínio, muitas das vezes mais voltado para a solução.

Para os desenvolvedores torna-se difícil entender o domínio, algo novo, algo complexo, passado a eles através de uma linguagem que não compreendem muito bem. Alguns até se destacam e conseguem falar as duas linguagens, mas isso é mais um problema do que solução. A comunicação torna-se uma via de mão dupla. Tendo de ser traduzida a todo instante. Esse é o grande mal que aflige os projetos de software. Uma tradução mal interpretada pode colocar tudo a perder.

Continuar lendo

EDD – Events Driven Development

Não! Não é uma metodologia como FDD. Também não é uma técnica como ATDD, TDD ou BDD. Muito menos uma abordagem como DDD e MDD. Nem de longe pensei em completar o alfabeto, senão criaria a sigla CDD, se é que já não criaram. E antes que você venha comentar esse post, também já sei que linguagens como o Visual Basic trabalham orientadas a eventos. Mas não é disso que vamos conversar aqui. Vamos falar de desenvolvimento de pessoas. Tá safo?

  1. É jogo rápido. Responda as perguntas abaixo:
  2. Quantos eventos de sua área você participa por ano?
  3. Você participa de quantos eventos fora de sua cidade ou estado?
  4. Quando participa, você consegue ver todas as palestras e não ir a nenhuma #horaextra?
  5. Você já participou da organização de algum evento?
  6. Afinal de contas, você gosta de ir a eventos?

Se você respondeu não para a maioria das perguntas, principalmente para a ultima, seu problema é sério. Rapaz vai por mim. Mas não se desespere, seu caso tem solução ou não :p.

Hoje em dia a informação está a um clique de distância para quem consome de uma forma voraz os meandros da Internet. Mas você consegue mesmo transformar essa avalanche de informação em conhecimento? E ainda por cima, se divertir com isso?

Como é bom ler um bom livro, ainda mais quando não é por obrigação e sim por prazer. E já pensou ter a oportunidade de ver a palestra de um de seus autores favoritos “ao vivo” sem cortes ou como o vídeo gravado pela metade e com baixa qualidade na gravação. É angustiante, não?

Imagine aprender novos conceitos e técnicas que surgem a cada instante mundo a fora. E se você puder interagir com os palestrantes em uma #horaextra após o cansativo dia do evento. Cansativo sim! Não pense que participar de eventos é só curtição. As pessoas que se propõem a organizar e apresentar trabalhos tem a obrigação de prover informação e o direito de se divertir.

A experiência que cada pessoa acumula durante o tempo foi custeada por várias privações em suas vidas. Nada vem de graça e ninguém acontece de uma hora para a outra, creio que pelos menos em TI. Daí lá vem você me dizer que não tem tempo nem dinheiro pra participar de algum congresso, seminário ou encontro que, em boa parte do tempo, acontece em sua própria cidade. Fala sério!

O perfil do profissional de TI está mudando constantemente, já não somos mais conhecidos como os nerds que vivem no CPD. Ainda somos nerds, disso não vamos nos livrar tão cedo. Mas agora somos mais “sociáveis” e ecléticos, até namoramos e praticamos esporte. Olha só que evolução :). Falando sério agora. Não fique preso em seu mundo (vulgo desktop). A rotina mata! Se dê uma chance. Faça seu “pé de meia” e planeje ir pelo menos a um evento por ano fora de sua cidade ou estado. Se for colocar na balança o quanto você gasta com besteiras durante o ano, já dá para bancar uns dois eventos anuais. Não esqueça de montar uma caravana, pois viajar só é um tédio. Te dou certeza que você se tornará um melhor profissional e indivíduo. E além de conhecer belos lugares, conhecerá excelentes pessoas.

Caro leitor desse humilde blog, você já deve conhecer nossa comunidade e deve também conhecer nossos valores e princípios. Então o convidamos a colocar em prática a teoria exposta nesse aqui. Convide seus amigos e colegas de trabalhos nerds a participarem de nossos encontros e eventos. Vem pra caixa você também, quer dizer, seja um #tasafoemacao.

O que rolou no #tasafoemacao com Rafael Prikladnicki

No dia 24 de Novembro, aconteceu em Belém um evento que abalou muita gente. Não foi a chuva torrencial no fim da tarde. Foi mais um #tasafoemacao. Desta vez, Rafael Prikladnicki marcou presença no Auditório do Cesupa e deu uma verdadeira aula sobre Agile.

A evento estava previsto para começar às 19:00 horas, porém começou 19:30. Como o próprio Rafael enfatizou, sempre há mudanças nos requisitos. E este foi um dos temas mais discutidos em sua palestra. Continuar lendo