Muitas vezes entramos numa zona perigosa tentando comparar nosso ritmo de aprendizado com nossos colegas, amigos(as) e quaisquer outras pessoas que postam seu ritmo na internet. É necessário lembrar que cada pessoa tem um histórico diferente e isso influencia demais na hora de absorver e colocar em prática um novo conhecimento. # Saiba mais sobre mim :). - https://deveficiente.com/ - https://github.com/asouza - https://twitter.com/alberto_souza # Outros links que podem ajudar - Fique preparado para aprender - https://youtu.be/PY-mOb1xuOw - https://www.twitch.tv/o_gabsferreira
No episódio de hoje falamos sobre um tema que toca no coração de toda aplicação, o design do seu código. Como podemos ter um outro olhar na hora de pensar sobre a distribuição da complexidade do código dentro da aplicação? Algo que vá além dos patterns já estabelecidos no mercado :). Informações sobre o host: Alberto é o único responsável pelo monólogo Saiba tudo sobre a jornada para ser um(a) dev mais eficiente - https://deveficiente.com/ Youtube - https://www.youtube.com/c/deveficiente Twitter - https://twitter.com/alberto_souza Github - https://github.com/asouza Facebook - https://www.facebook.com/deveficiente/ Links: Revisão sobre métricas de código - https://www.youtube.com/watch?v=ddEAAt2bGrU&list=PLVHlvMRWE0Y7dh2L8ncst42M9YjLMfcpx&index=3&t=2s
No episódio eu respondo duas perguntas: Como saber que dominei o bastante de uma tecnologia? e Como você acabou dominando uma linguagem? A resposta junta as duas perguntas e mostra a importância de definir um bom objetivo de aprendizado. Isso é o que vai vai guiar o que você precisa aprender. Informações sobre o host: Alberto é o único responsável pelo monólogo Saiba tudo sobre a jornada para ser um(a) dev mais eficiente - https://deveficiente.com/ Youtube - https://www.youtube.com/c/deveficiente Twitter - https://twitter.com/alberto_souza Github - https://github.com/asouza Facebook - https://www.facebook.com/deveficiente/ Links: Artigo original sobre Abstract Data Type - https://dl.acm.org/doi/pdf/10.1145/942572.807045
A pergunta respondida de hoje foi a seguinte: Com praticar de maneira deliberada de forma eficiente? Se pensarmos que fora de um contexto de trabalhar não temos o feedback sobre as ações. Informações sobre o host: Alberto é o único responsável pelo monólogo Saiba tudo sobre a jornada para ser um(a) dev mais eficiente - https://deveficiente.com/ Youtube - https://www.youtube.com/c/deveficiente Twitter - https://twitter.com/alberto_souza Github - https://github.com/asouza Facebook - https://www.facebook.com/deveficiente/
No episódio de hoje revisamos o artigo chamado Programming with abstract data types, que tem a incrível Barbara Liskov como uma das autoras. O artigo é incrível e fala sobre uma "nova" forma de programar onde supostamente seria mais fácil representar os problemas que queríamos que resolver através de uma linguagem de programação. Recomendo ver/ouvir o episódio e ler o artigo original. Vai ficar claro que não temos nenhuma novidade :). Informações sobre o host: Alberto é o único responsável pelo monólogo Saiba tudo sobre a jornada para ser um(a) dev mais eficiente - https://deveficiente.com/ Youtube - https://www.youtube.com/c/deveficiente Twitter - https://twitter.com/alberto_souza Github - https://github.com/asouza Facebook - https://www.facebook.com/deveficiente/ Links: Artigo original sobre Abstract Data Type - https://dl.acm.org/doi/pdf/10.1145/942572.807045
Hoje falamos sobre as várias decisões que tomamos enquanto programamos. Frameworks, bibliotecas, decisões sobre design de código, interpretação de pedidos de funcionalidades entre outras coisas fazem parte do dia a dia. Cada uma dessas decisões tem prós e contras e estar atento a isso é um pilar super importante para um(a) dev que quer ser mais eficiente. Informações sobre o host: Alberto é o único responsável pelo monólogo Saiba tudo sobre a jornada para ser um(a) dev mais eficiente - https://deveficiente.com/ Youtube - https://www.youtube.com/c/deveficiente Twitter - https://twitter.com/alberto_souza Github - https://github.com/asouza Facebook - https://www.facebook.com/deveficiente/
No vídeo de hoje discutimos o artigo de título SATT: Tailoring Code Metric Thresholds for Different Software Architectures. Ele foi escrito pelos seguintes autores: Maurício Aniche, Christoph Treude, Andy Zaidman, Arie van Deursen, and Marco Aurelio Gerosa. O ano de publicação é 2016. A artigo propõe que as avaliações fornecidas por métricas de código levem em conta o tipo de classe que está sendo avaliado. Por exemplo, numa aplicação web será que um controller deveria ter o mesmo nível de acoplamento de um repositório? Foram analisados 100 projetos web escritos em Java usando Spring MVC e mais 300 projetos mobile construídos diretamente em cima do Android. O texto é todo muito interessante com muitas referências. Se você tem interesse em qualidade de código e pretende melhorar como desenvolvedor(a), eu sugiro fortemente que veja o vídeo e leia o artigo. Informações sobre o host: Alberto é o único responsável pelo monólogo Saiba tudo sobre a jornada para ser um(a) dev mais eficiente - https://deveficiente.com/ Youtube - https://www.youtube.com/c/deveficiente Twitter - https://twitter.com/alberto_souza Github - https://github.com/asouza Facebook - https://www.facebook.com/deveficiente/
No vídeo de hoje discutimos três práticas de código que podem fazer muita diferença na sua vida. No final você quer escrever o mínimo possível, garantir que todo código escrito seja chamado e que a complicação dele seja proporcional a feature que está sendo implementada naquele momento. Informações sobre o host: Alberto é o único responsável pelo monólogo Saiba tudo sobre a jornada para ser um(a) dev mais eficiente - https://deveficiente.com/ Youtube - https://www.youtube.com/c/deveficiente Twitter - https://twitter.com/alberto_souza Github - https://github.com/asouza Facebook - https://www.facebook.com/deveficiente/
Quais as são as características que existem quando decidimos por algum caminho no nosso código? Será que realmente analisamos diversas possibilidades? Hoje temos um artigo super legal cujo título é Characteristics of decision making during coding. Escrito por dois pesquisadores do departamento de ciência da computação da universidade de Auckland. Informações sobre o host: Alberto é o único responsável pelo monólogo Saiba tudo sobre a jornada para ser um(a) dev mais eficiente - https://deveficiente.com/ Youtube - https://www.youtube.com/c/deveficiente Twitter - https://twitter.com/alberto_souza Github - https://github.com/asouza Facebook - https://www.facebook.com/deveficiente/
Neste vídeo falamos da relação entre a teoria da carga cognitiva e a dificuldade de entendimento de um código. Como você pode ter reviews mais assertivos? Como fazer para descobrir se determinado trecho de código tem mais chances de ser entendido por alguém? Eu falo sobre tudo isso! Informações sobre o host: Alberto é o único responsável pelo monólogo Saiba tudo sobre a jornada para ser um(a) dev mais eficiente - https://deveficiente.com/ Youtube - https://www.youtube.com/c/deveficiente Twitter - https://twitter.com/alberto_souza Github - https://github.com/asouza Facebook - https://www.facebook.com/deveficiente/
No vídeo de hoje discutimos o artigo "The Effects of Test Driven Development on Internal Quality, External Quality and Productivity: A systematic review". Publicado por Wilson Bissia, Adolfo Gustavo Serra Seca Netob ,Maria Claudia Figueiredo e Pereira Emerb. O artigo é uma revisão sobre várias outras publicações relativas aos efeitos práticos da utilização de TDD em três frentes: qualidade interna do código, qualidade externa e produtividade. Caso queira ler o artigo completo, basta acessar o endereço https://www.researchgate.net/profile/... Se quiser saber mais sobre a ferramenta CK, criada por Mauricio Aniche, acesse o link https://github.com/mauricioaniche/ck Se já quiser ir um pouco mais afundo na relação entre testes e a suposta qualidade interna de código, leia essa outra publicação aqui http://pure.tudelft.nl/ws/files/12555... PS: No final do vídeo eu dou tchau, mas eu volto porque queria falar uma coisa a mais :). Informações sobre o host: Alberto é o único responsável pelo monólogo Saiba tudo sobre a jornada para ser um(a) dev mais eficiente - https://deveficiente.com/ Youtube - https://www.youtube.com/c/deveficiente Twitter - https://twitter.com/alberto_souza Github - https://github.com/asouza Facebook - https://www.facebook.com/deveficiente/
Neste vídeo tratamos do seguinte pilar: "Separamos as bordas externas do sistema do seu núcleo. Não ligamos parâmetros de requisição externa com objetos de domínio diretamente, assim como não serializamos objetos de domínio para respostas de API." As entradas e saídas do sistema tendem a mudar bastante. Se a sua aplicação atende um negócio B2B, que hoje em dia é a maioria dos casos, então essas mudanças são certas :). Precisamos ter uma tática eficiente para que essas mudanças constantes não virem uma praga e afete toda camada lógica da aplicação. Informações sobre o host: Alberto é o único responsável pelo monólogo Saiba tudo sobre a jornada para ser um(a) dev mais eficiente - https://deveficiente.com/ Youtube - https://www.youtube.com/c/deveficiente Twitter - https://twitter.com/alberto_souza Github - https://github.com/asouza Facebook - https://www.facebook.com/deveficiente/
Hoje é a primeira parte da revisão do artigo super famoso dentro da indústria de programação, o título é No Silver Bullet Essence and Accidents of Software Engineering. Ele foi escrito Frederick P. Brooks, Jr., também autor do livro The Mythical Man-Month. Inclusive um capítulo do livro é justamente o artigo. O texto é muito legal e mesmo tendo sido escrito 34 anos atrás, ainda é muito atual. Informações sobre o host: Alberto é o único responsável pelo monólogo Saiba tudo sobre a jornada para ser um(a) dev mais eficiente - https://deveficiente.com/ Youtube - https://www.youtube.com/c/deveficiente Twitter - https://twitter.com/alberto_souza Github - https://github.com/asouza Facebook - https://www.facebook.com/deveficiente/ Links: Artigo original - http://www.cs.unc.edu/techreports/86-020.pdf
No vídeo eu tento responder duas perguntas que foram feitas na pesquisa que rodei sobre a jornada do(a) dev eficiente. As perguntas foram: 1) Como junto a colcha de retalhos que meu cérebro virou para mostrar todo o conhecimento que adquiri nestes anos de trabalho? 2) Quais seriam as melhores abordagens para melhorar a produtividade? Mais de 50 pessoas deixaram excelentes perguntas! Para mim será um prazer responder todos os questionamentos! Claro que meu objetivo é só compartilhar meu ponto de vista :). Informações sobre o host: Alberto é o único responsável pelo monólogo Saiba tudo sobre a jornada para ser um(a) dev mais eficiente - https://deveficiente.com/ Youtube - https://www.youtube.com/c/deveficiente Twitter - https://twitter.com/alberto_souza Github - https://github.com/asouza Facebook - https://www.facebook.com/deveficiente/
Nesse vídeo eu falo sobre dois pilares que eu sigo para ser um dev eficiente: proteger as bordas do sistema e quanto mais externa é a borda mais proteção a gente tem. Assumir que os parâmetros sempre chegam num estado inválido faz com que você seja mais criterioso(a) na validação e só execute o seu código depois de garantir que todos valores necessários estão ali. Informações sobre o host: Alberto é o único responsável pelo monólogo Saiba tudo sobre a jornada para ser um(a) dev mais eficiente - https://deveficiente.com/ Youtube - https://www.youtube.com/c/deveficiente Twitter - https://twitter.com/alberto_souza Github - https://github.com/asouza Facebook - https://www.facebook.com/deveficiente/ Links: Pilares de desenvolvimento que me guiam - https://github.com/asouza/pilares-design-codigo/blob/master/README.md
A versão mais eficiente de uma pessoa programando é aquela que questiona e implementa estritamente o que foi descrito. Não inventamos coisas que não foram pedidas, não fazemos suposição de funcionalidade e nem caímos na armadilha de achar que entendemos mais do que a pessoa que solicitou a funcionalidade. Informações sobre o host: Alberto é o único responsável pelo monólogo Saiba tudo sobre a jornada para ser um(a) dev mais eficiente - https://deveficiente.com/ Youtube - https://www.youtube.com/c/deveficiente Twitter - https://twitter.com/alberto_souza Github - https://github.com/asouza Facebook - https://www.facebook.com/deveficiente/ Links: Pilares de desenvolvimento que me guiam - https://github.com/asouza/pilares-design-codigo/blob/master/README.md
Neste vídeo vemos como métodos que retornam nulo são uma verdadeira praga no código. Geram insegurança por toda a aplicação, causando proliferação de verificação de nulidade. Sem contar que potencializa a chance de tomar NullPointerException. Não retornar nulo é um dos pilares que sigo enquanto programo, espero que te ajude também. Informações sobre o host: Alberto é o único responsável pelo monólogo Saiba tudo sobre a jornada para ser um(a) dev mais eficiente - https://deveficiente.com/ Youtube - https://www.youtube.com/c/deveficiente Twitter - https://twitter.com/alberto_souza Github - https://github.com/asouza Facebook - https://www.facebook.com/deveficiente/
Só alteramos estado de referências que criamos. Não mexemos nos objetos alheios. A não ser que esse objeto seja criado para isso, como é o caso de argumentos de métodos de borda mais externa. Estes são, geralmente, associados a frameworks. Informações sobre o host: Alberto é o único responsável pelo monólogo Saiba tudo sobre a jornada para ser um(a) dev mais eficiente - https://deveficiente.com/ Youtube - https://www.youtube.com/c/deveficiente Twitter - https://twitter.com/alberto_souza Github - https://github.com/asouza Facebook - https://www.facebook.com/deveficiente/
Hoje falamos sobre o segundo pilar para ser um(a) dev eficiente: execute o seu código o mais rápido possível. Discutimos como ter um ciclo de desenvolvimento pautado em executar o tempo inteiro pode facilitar sua vida em relação debug, qualidade de código etc. É a mentalidade de testes aplicada a algo muito mais interessante do que apenas ficar criando testes automatizados antes de escrever a funcionalidade.
Hoje eu respondo um questionamento que deixaram para mim. Como posso ter uma rotina de estudos? Neste vídeo eu deixo várias dicas que podem ser úteis para você. Informações sobre o host: Alberto é o único responsável pelo monólogo Saiba tudo sobre a jornada para ser um(a) dev mais eficiente - https://deveficiente.com/ Youtube - https://www.youtube.com/c/deveficiente Twitter - https://twitter.com/alberto_souza Github - https://github.com/asouza Facebook - https://www.facebook.com/deveficiente/ Links: O problema de abrir muitas frentes de aprendizado - https://www.youtube.com/watch?v=_8hCpGqDRAw&list=PLVHlvMRWE0Y7_5jsAtVs44ZUNDOr5csx- Como ficar preparado para aprender? - https://www.youtube.com/watch?v=PY-mOb1xuOw&list=PLVHlvMRWE0Y7_5jsAtVs44ZUNDOr5csx-