alannunes
BlogSobre
  • Dicas para um dev, ao entrar em um novo desafio

    07 jan, 2023 · Leitura de 4 min

    A área de tecnologia nunca foi fácil, e nós desenvolvedores, quando saímos da nossa zona de conforto - se é que existe isso nesta área, rs -, para um novo ambiente, seja trocando de equipe, seja trocando de empresa... Um novo projeto de atuação e todo um ramo de negócio diferente do qual está habituado, é normal nos sentirmos "perdidos", e para complicar um pouco mais, recebermos uma chuva de informações difíceis de serem processadas, logo nos primeiros dias. Já passei bastante por isso, e identifiquei alguns pontos essenciais, que talvez possa ajudar a facilitar um pouco as coisas. Por onde começar? 1. Anote, anote e anote... Bom, lhe garanto que sabendo da enxurrada de informações que serão "jogadas" para você dev, a primeira coisa que eu recomendaria, é você estar sempre com seu papel e caneta em mãos, porque você não vai dar conta de lembrar tudo que ver e ouvir. Anote tudo que achar relevante para você, como por exemplo: o papel de cada um na nova equipe, modo de trabalho, curiosidades relacionadas ao código, sistemas que precisará de acesso e para que serve cada um... E depois? 2. Releia suas anotações Considerando que foi anotado tudo que você achou relevante, é importante que você reserve um tempinho para reler tudo que escreveu, e caso necessário, reescreva de uma forma que fica mais organizado para seu próprio entendimento. Não adianta muito, ter escrito tantas coisas importantes, se você mal se lembrar do que foi escrito, certo? 3. Hora de pensar no código? Ainda não... Antes disso, vem algo que acho fundamental para você ser mais assertivo, entender melhor tudo que está sendo construído, e conseguir absorver reuniões e conversas diárias que talvez ficariam confusas para você, mesmo após meses de trabalho. É o momento de você aprender mais do negócio no qual a empresa e equipe está envolvida. Assim como eu já fiz, percebo muitos desenvolvedores fazendo isso a cada novo ciclo que começa e também nos ciclos em andamento... Pensar somente no código e esquecer de toda a parte negocial que existe em torno do ecosistema. Este erro, te faz criar um código menos assertivo, e pode custar caro para você e para a empresa. Pensa comigo: "Como vou conseguir entregar a melhor solução através de código, se não entendo o negócio? Como vou conseguir propor uma solução, entendendo apenas superficialmente o que a empresa precisa?. Provavelmente você entregará uma solução com falhas. Vai por mim, isso fará toda a diferença. Equipe e Tecnologia 4. Conheça melhor a sua equipe É normal, entrarmos em equipes com muitas pessoas, e você ser mais próximo de 1 ou 2 colegas, principalmente em seus primeiros dias de trabalho. Mas se esforce em saber o papel de cada um da sua equipe, notar as responsabilidades e conhecimentos de cada um, e para quem você vai pedir informações quando precisar. Entenda o dia a dia de trabalho, como atuam, se há um bate papo diário ou não. Tente "sugar" toda a informação possível, sobre o negócio e sobre os sistemas da equipe, com os mais experientes... Eles provavelmente sabem o "caminho das pedras", e darão informações que você vai precisar e muito no ínicio. 5. Entenda os sistemas Somos conhecidos por um certo "vício", o vício de querer sair codando, fazer acontecer e esquecer de pensar e se planejar antes disso. Esse vício, acarreta em códigos de má qualidade, e consequentemente, você terá mais trabalho agora ou mais pra frente, porque certamente seu código será refatorado. Busque antes de tudo, entender onde está pisando, como as coisas funcionam, e se possível, peça para seu líder, um tempo para você entender melhor o sistema. Agende reuniões com os mais experientes, para explicar partes do sistema, sempre que você ficar confuso. Mostre interesse em aprender, e puxe seu time para te auxiliar neste início. Use e abuse do recurso de perguntar. 6. Padrões de projeto Todo software tem seus padrões, busque entender os padrões com o qual a equipe está desenvolvendo esse software, seus patterns, as bibliotecas e tecnologias que estão sendo utilizadas. Entenda como a equipe prefere fazer uma condicional, uma validacão. Qual a arquitetura do projeto em si, pastas e subpastas, onde costumam ficar determinadas coisas... Quando caímos de cara em um projeto que está sendo desenvolvido por outras pessoas, é normal termos um pouco de dificuldade de entender. Para piorar, quando vamos finalmente codar, a tendência é fazer da forma que mais nos agrada, mas esse ponto é necessário cuidado. Como você está entrando agora, não é muito legal, você mudar o padrão de um projeto existente logo de cara (mesmo que o padrão que você esteja aplicando, seja melhor), e acabar "bagunçando" um código no qual deveria existir um só padrão, e agora tem dois (o nativo, e o seu rs). Procure se adaptar a forma na qual seus colegas trabalham e com o tempo, você dar os seus "pitacos", levantar ideias e refatorações que você achar necessário, e assim, evitar até algum descontentamento de algum colega. Considerações finais Se você…

  • Pandemia chegou! E a minha produtividade?

    26 mar, 2020 · Leitura de 4 min

    Há pouco tempo atrás, todos estávamos levando a vida normalmente, cada um com sua rotina. Num "belo" dia, noticiários começam a falar sobre um tal Covid-19, que pra mim (e para muitos), em meio a correria, não dei muita importância, achando que isso seria algo pequeno que rapidamente seria resolvido. Os dias foram passando, e as péssimas notícias sobre o novo vírus continuavam a serem exibidas nas manchetes, até que de repente surge a notícia: "PAÍSES TEM CASOS CONFIRMADOS DO NOVO VÍRUS COVID-19", e a minha reação não poderia ser outra... Fonte:  Minilua.com E assim, o caos se instaurou no mundo inteiro, e consequentemente afetou a rotina de todos. Muitos estão perdendo emprego, os autônomos talvez os mais prejudicados... E os moradores de rua, que dependem do fluxo de pessoas para conseguir um trocado para se alimentar e sobreviver a mais um dia? Calma... Se você precisa se adaptar com home office ou está em busca de um novo emprego, talvez eu possa te ajudar! Com o passar dos anos, venho tentando aproveitar meu tempo livre da melhor forma possível, evitando a sensação ao chegar no fim do dia, de que fui nada produtível. Após ler muito conteúdo a respeito (livros, artigos, documentários, etc...), uso uma combinação que chamo de FSD. What?!?! Fonte:  Observatório do cinema É muito simples... FSD nada mais é que: Foco, Saúde e Diversão. Foco É o ponto de equilíbrio, é quem dita o ritmo do quanto você deve fazer isso ou aquilo; Saúde Deixada de lado por muitos, te dá um resultado absurdo. Diversão Essencial para relaxar, dar um prazer no seu dia e não te sobrecarregar; Com isso, melhorei muito em vários aspectos da minha vida, tendo a sensação de controle sobre mim. Mas cada elemento do FSD é diferente para cada indivíduo, então tentarei resumidamente dar algumas dicas de coisas que você pode implementar na sua rotina em sua casa, em meio a essa pandemia: Dicas Programe o seu dia É essencial que você saiba o horário que vai trabalhar e/ou estudar, se divertir e descansar. Lembre-se, você está entrando em uma rotina que não está acostumado (ficar o tempo todo em casa) e não fazendo um planejamento do dia, você corre um grande risco de perder controle do tempo. Tenha ou improvise um ambiente de trabalho/estudos calmo em sua casa Para alguns isso é o mais difícil, principalmente quando se tem filhos (talvez seja necessário uma conversa com as crianças e fazer com que elas entendam a situação), mas é importante você conseguir se isolar (eu por exemplo costumo utilizar fones com música alta para barulho não me interferir). O quanto conseguir esse isolamento, fará total diferença nos resultados do trabalho/estudo. Faça uma lista de tarefas que você precisa fazer no dia Muitos não gostam ou acham baboseira fazer "listinha de tarefas", normal, já pensei assim também. Mas vai por mim, ajuda muito! Ajuda a manter seu foco e você corre menos risco de esquecer algo. Se mantenha motivado É necessário que você busque motivos para ficar mais e mais motivado. Eu vejo a motivação como a gasolina para nosso corpo. A gasolina para mim é aprender algo, evoluir ao menos 1% todo dia. Durma bem. Outro objetivo bem complicado, confesso que é o mais complicado para mim, mas por experiência própria e por vários estudos, a qualidade do seu sono reflete em exatamente tudo no seu dia. Tente dormir pelo menos umas 8 horas. Melhore sua alimentação Calma, você não precisa fazer uma dieta restrita, sem poder comer nenhuma "gordice" e acabar instantaneamente com sua vontade de viver. O que quero dizer, é que sim, é importante você se alimentar melhor, diminuindo: carboidratos, enlatados, alimentos industrializados, refrigerantes. E aumentando: frutas, legumes, verduras e alternando "gordices" com opções mais "lights". Uma alimentação melhor faz você se sentir melhor, ajuda sua imunidade, auto estima e vai te dar muito mais energia. Pratique alguma atividade física. Há várias atividades físicas e tenho certeza que alguma delas você deve gostar, como: musculação (treino adaptado no quintal da sua casa?), caminhada, corrida, dança, yoga, hit ( treinos curtos de queima de calorias - tem no youtube), passear com o cachorro, entre outras diversas opções. Isso te dará mais disposição com o passar do tempo. Não esqueça da sua saúde mental Apesar das dicas acima influenciar positivamente na saúde mental, tem algumas atividades gostaria de compartilhar para melhorar ainda mais: meditação, ler livros, conversa com amigos e familiares entre outras, que te dará sensação de felicidade. Se divirta ! Pegando um gancho com a dica anterior, essa é a melhor dica rs. Costumo fazer da diversão uma certa recompensa pessoal e digo para mim mesmo: "Meu dia foi muito produtivo, agora eu mereço um pouco de descanso.". Com a utilização dessas dicas em sua rotina, o novo cenário da sua vida será esse: Fonte:  Canção nova Todos que precisam de um controle maior do seu dia-a-dia, procuram um emprego ou busca uma evolução pessoal, creio que essas dicas ajudará muito…

  • TDD (Test Driven Development) - minha visão sobre o assunto

    20 fev, 2022 · Leitura de 5 min

    TDD (Test Driven Development) é um paradigma de desenvolvimento de software que visa otimizar o processo de desenvolvimento de software. Resumindo: desenvolver orientado por testes. E como isso funciona? O TDD tem um passo a passo a ser seguido, sendo ele um ciclo de repetição: 1. Escreva um teste que inicialmente não vai passar - Vamos supor que você é um desenvolvedor frontend e precisa implementar uma nova página de login. Você recebe uma documentação com os Use Cases e um protótipo dessa página. Normalmente, sem o TDD, a maioria dos desenvolvedores leem a documentação (ás vezes nem isso rs) e começam o desenvolvimento, visando alcançar o que foi solicitado, e assim que concluído, fazem os testes visando atender o que foi desenvolvido, e não visando a documentação, e isso é falho (cenários do que foi solicitado podem ser esquecidos). Com o TDD, esse processo é invertido, ou seja, tudo começa pelo teste. Neste passo você o Use Case e faz o teste, e roda. O teste irá quebrar, porque o desenvolvimento ainda não foi realizado. 2. Faça o seu teste passar - Essa é a hora de botar a mão na massa. Usando o teste como um guia, você irá desenvolver o código, visando a simplicidade. Assim que o teste passar, este passo foi finalizado. 3. Refatore o seu código - Esse é um passo que vejo muitos desenvolvedores ignorando, ou não dando a devida atenção no TDD, e ao cometer esse erro, o TDD perde o seu sentido. Neste passo, devemos refatorar nosso código produzido no passo anterior, aplicando conceitos, design patterns e boas práticas de desenvolvimento, visando uma aplicação mais robusta, escalável e de fácil manutenção. É aqui que se encontra a aplicação do Clean Code. Após o passo 3, verifique se o teste está passando. Se sim, você volta ao passo 1, agora partindo do próximo Use Case e assim sucessivamente. Caso contrário, verifique sua refatoração, porque você acabou de gerar um bug rs. Minha experiência com TDD Conhecendo os testes unitários e a sua importância Estou no mercado de desenvolvimento desde meados de 2016, e como um desenvolvedor frontend, nas empresas em que passei, não havia o hábito em fazer testes unitários no frontend. Infelizmente até hoje (2022) é uma cultura muito forte no Brasil, porém vejo o cenário sendo mudado aos poucos. Com isso, acabei "indo na onda" e demorei um tempo para conhecer mais sobre testes unitários e seus benefícios. No processo de aprendizado e aplicação de testes unitários no meu dia a dia (certamente, sem o uso do TDD), comecei a entender o quão melhorava a eficácia do meu código, e o teste em si se tornava meu aliado, meu braço direito, me ajudando a entregar um código com mais qualidade e com menor probabilidade de entregar um problema em ambiente produtivo. Como os testes unitários podem ser ainda melhor no meu dia a dia? Comecei a me perguntar se isso era o suficiente, ou poderia ser ainda melhor... Lembro como se fosse hoje, que nos dias de estudos, de meetup ou eventos de tecnologia, escutava muito se falar de um tal de TDD, que até então eu desconhecia. Um dia, participei de um evento do ABC - São Paulo, chamado ABCDev em que uma das paletras na qual eu assisti, falava exatamente sobre TDD. Então minha cabeça simplesmente "explodiu" rs. Achei muito interessante a príncipio, mas dúvidas surgiam, principalmente sobre a demora de entregar determinada feature, com toda essa "burocrácia" de testes. Após tentar colocar o TDD em prática, errando bastante (sim, errando - eu era um dos dev's que estava pulando a parte de refatoração do código de maneira adequada, e não só isso, saia do ciclo pelo meu vício de desenvolvimento NÃO orientado por testes, aplicava o TDD em tarefas gigantes, sem seguir os Use Cases e em cenários que não faziam sentido), e então percebi que algo estava errado, e comecei a estudar mais sobre o assunto, ao invés de sair aplicando um termo que conhecia superficialmente. Encontrei muito conteúdo valioso (vou deixar no final da publicação algumas referências) sobre o assunto, e onde eu estava errando afinal. Um dos conteúdos que mais me ajudou nisso, foi sem sombra de dúvidas os cursos do Rodrigo Manguinho, que explica como aplicar o TDD de forma eficiente. Benefícios ao aplicar o TDD Melhor design de programa e maior qualidade de código Documentação detalhada do projeto TDD reduz o tempo necessário para o desenvolvimento do projeto Manutenção do código é mais fácil Solução confiável Economicamente melhor a longo prazo Afinal, o TDD faz sentido? Claramente, faz muito sentido. O TDD é uma ferramenta que impulsiona o desenvolvedor a programar melhor, a aplicar os conceitos consolidados. A ter uma visão ampla, visando o projeto a longo prazo. É importante ressaltar que não é um paradigma tão simples quanto parece de ser aplicado da melhor forma. Para aplicar o TDD, você deve estar ciente do ciclo dele e ter o conhecimento das melhoras práticas de desenvolvimento. Se você não conhece o Clean Code, do criador Uncle Bob, aconselho dar prioridade nesse…

©2020 alannunes.com • Política de Privacidade • Termos de Uso