Tem vários padrões de boas práticas... TDD (Teste depois do Deploy), CPM (Código Padrão Macarrônico), MVC (Meleca Verídica no Código) e por fim o PC (Padrão Cebola) aquele que vc vê e chora. Me sigam para mais dicas kkk
"Ninguém precisa de muitas habilidades e conhecimentos para fazer um programa funcionar. Alunos do ensino médio fazem isso o tempo todo[...] Fazer direito é outra questão. Criar software de maneira correta é que é difícil. Requer um nível de disciplina e dedicação que a maioria dos programadores nunca sonhou que precisaria[...] Requer paixão pela programação e o desejo de se tornar um bom profissional. Códigos ruins funcionam. Funcionam porque fazer algo funcionar - UMA VEZ - não é tão difícil." - Uncle Bob
Atualmente no projeto que estou alocado é imprescindível o estudo de testes e design patterns antes de começar pois o projeto é legado e tem 98% coverage code e com um pattern tão lindo que chega ser gostoso de refatorar algo, então sim, é super importante estudar testes e design pattern mesmo que seu projeto atual esteja mais bagunçado que tudo kkk
Acho super importante. Passei por umas equipes de dev que faltou conhecimento e vontade de melhorar. Acho que nem é cultura da empresa e sim da equipe. Já passei por equipe que não tinha teste, por umas que o rápido funciona (extreme go-horse methodology), e foram equipes que o líder técnico não era a favor dessas coisas e eu estudei muito clean code, solid, design patterns, refactoring. Já apresentei code reviews de teste, boas práticas, solid, pra pelo menos melhorar equipe. Atualmente estou em uma equipe de que entrei como sênior e os planos adoraram as melhoras e o líder no começo foi resistente mas cedeu. Hoje o código melhorou muito com a ajuda de um segundo sênior que veio com a mesma pegada e a manutenção do código limpo é infinitamente melhor e prática. Quando viram a diferença o benefício e reconhecimento veio depois. Eu sou criativo e vivo criando ideias e mecanismos pra melhorar processo, ainda vejo que nunca devo parar de reestudar clean code, solid, patterns e estrutura de dados. Estrutura de dados tem me ajudado e pesar em novas técnicas e melhorar as lógicas mais complexas e simplificar las. Trabalho com arquitetura hexagonal bem aplicada, patterns como strategy, template method, chain of responsibility, factory, builder, adapter, observer, bem aplicados e uma parte saiu de sugestão minha. Estou em momento de refatorar o core do sistema que falta teste e tempo pra fazer. Já é uma evolução. Nunca deixe de estudar e relembrar. Seja open-minded com a equipe e se elem tenham dúvidas disso, faça apresentação. Estudar realça o que sabe e ajuda a maturidade da equipe.
Hoje atuo numa empresa que te uma plataforma pra licitantes como front-end (React), atualmente o time de front é eu e mais outro cara, e o código em si é muito ruim, o pensamento deles é muito contra refatoração, pra eles se está funcionando não mexe. Eu contra todas as indicações comecei a migrar o estado da aplicação que estava em MOBX (ainda tem que usa) pra ContextAPI, introduzi testes, TypeScript, GraphQL, estou mudando algumas plataformas pra Next, coisas que partem de mim, e as vezes faço isso no tempo livre e fins de semana justamente pra ter uma base de tudo que aprendi de forma profissional e poder acrescentar no currículo, pra mim está sendo fantástico, pois é muito mais difícil vc implementar uma tecnologia num código que tem outra do que chegar e ja ter a tecnologia certa pra trabalhar. Acho que é um aprendizado muito maior do que teria em uma empresa de porte maior.
Muito legal o vídeo, é uma conversa que sempre tenho com a equipe que trabalho. Utilizamos muitas dessas boas práticas, e com certeza elas ajudam e muito no desenvolvimento e implantação de software, mas sempre há alguma coisa para melhorarmos. Claro que esse "gap" entre as boas práticas que estudamos e os projetos, empresas e equipes do mundo real é causado por vários fatores, mas um desses fatores que acho extremamente importante, e que é uma grande deficiência da nossa área, é a formação dos profissionais. Muitas faculdades/universidades/cursos técnicos formam profissionais despreparados para o mercado de trabalho, dificultando a sua entrada no primeiro emprego, tendo de buscar cursos extras para se aperfeiçoar e atender as necessidades do mercado. Muitas vezes um programador que estudou sozinho, sem fazer curso nenhum, sabe mais que um que ficou 5 anos cursando BSI. E o canal do CDF TV (e muitos outros) é um dos responsáveis por essa evolução muito mais rápida dos profissionais do que os que ficam apenas com o conhecimento da faculdade. Utilizando um exemplo extremo, um profissional que quer seguir a carreira médica, tem que passar por 5 anos de faculdade, mais alguns anos de especialização, mas alguns anos de residência prática, mais provas nesse meio tempo para conseguir o CRM, para só então poder assumir a responsabilidade sozinho de exercer a profissão. E isso não acontece na nossa área. O profissional sai de uma faculdade de 2 a 3 anos já se inserindo no mercado de trabalho e sendo cobrado como se tivesse 10 anos de experiência, sem ter tido experiência prática alguma. A disparidade é gigantesca. Por isso programas de treinamento e formação de novos profissionais dentro das empresas é tão importante, pois a formação universitária é muito precária. A empresa que trabalho tem um ótimo programa de formação de novos profissionais, e tem feito uma enorme diferença na carreira de muitos programadores.
Parabéns pessoal pelo conteúdo, na minha opinião, precisamos de arquitetos e pessoas que estudem além das boas práticas mas todo o modelo de engenharia e design de software, um dos problemas está na cultura de quem projetou o sistema(muitas vezes esses largam as empresas, deixando os monstrinhos), a 5 anos atrás não se falava de Arquiteto de Software, precisamos de empresas que valorizem não só "operadores" mas também "pensadores e projetores" querem economizar em contratação/tempo e hoje não sabem o porque não param os devs nas empresas. O dia em que software for tratado como na engenharia civil, com papéis mais bem definidos, teremos ambientes melhores, portanto começamos por hoje.
Sim, tu faz um negócio todo planejado, aí o cliente dois minutos antes de botar em produção decide mudar algo que está na raiz do projeto. O programador se vê obrigado a fazer uma gambiarra.
Gambiarra é a alma do negocio hahaha, zueira, isso da uma raiva mano, isso quando não é o cliente, mas quando outro dev escreve variaveis com erros ortograficos, ai quebra a tua aplicação do nada, ontem tive fazer uma gambiarra boba, so pra não quebrar o app, ai do nada, fazendo outra coisa que nada tinha a ver com a task anterior, achei e descobri a variavel errada, aproveitei e arrumei, hahaha!
Muito dos problemas é você querer aplicar algum padrão pra deixar o código arrumado, mas outro dev superior a você não entender e dizer que estamos fazendo muito código pra pouco retorno
Onde trabalho é o contrário mano, tem um dev senior que prefere fazer um codigo clean code e com uma arquitetura de software decente do que fazer de qualquer jeito!
Esse ponto que vocês falaram das expectativas é muito importante. As vezes a gente acha que vai começar no emprego, e vai criar uma ferramenta do zero, da forma que quisermos, e na maioria dos casos é muito pelo contrário, já é pra entrar, mudar e implementar em cima de um sistema já criado, e que as vezes você nem faz ideia de como feito aquilo kkkk.
Por isso é tão importante que o desenvolvedor tenha uma mentalidade mais "TDD", digamos assim: ter autonomia para preparar um ambiente minimamente seguro para modificar esses sistemas legado com menor impacto possível , rastrear erros e reverter, caso não surte o efeito esperado
Muito legal o vídeo, Gabriel e Vanessa!! A meu ver o importante é se importar com o código e fazer o melhor que puder. Muitas vezes percebo as pessoas realizando entregas só pra dizer que fez e que finalizou a task. No final ouvimos muito "funcionando tá bom", mas claramente a pessoa não se importa com a maneira que foi feita.
Esse vídeo me fez lembrar do comentário de um dos meus primeiros chefes. Eu trabalhava em uma software-house com uns 10 programadores. Ele disse: "Toda empresa é uma 'casca' onde vc só vê coisas bonitas. Quando vc se entra dentro dela vc começa a se deparar com 'coisas' não tão bonitas." Isso foi em 1995. De lá pra cá muita coisa evoluiu, mas esse seu pensamento ainda se mantém atual. Achei muito legal a iniciativa de vcs em abordar esse assunto tão polêmico. Inclusive a abordagem foi muito bem feita. Acho o conselho sobre a refatoração um ótimo conselho, e a teoria aprendida não foi um trabalho vão. Mas devemos sempre ter em mente que mudar a cultura de uma empresa é algo praticamente impossível, e em alguns casos a refatoração de códigos pode até lhe custar o emprego, porque tem empresa que valoriza somente o profissional mais rápido, sem olhar como essa produtividade foi conseguida. Tem que ver a situação.
Padrões e boas práticas devem ser como testes em TDD: devem ser aplicados "antes" do código ser efetivamente construído. Como? Usando os recursos de templates/code snippets de sua ferramenta de desenvolvimento
O participante demonstrou uma certa indignação entre o que foi cobrado como candidato a vaga que ele ocupou e o perfil tecnológico da empresa, também é um ponto. Existe muita expectativa pela busca dos melhores profissionais sem a preocupação da adaptação daquele perfil à empresa, a equipe ou ainda às reais necessidades do potencial elegido na vaga aos patamares que a empresa deseja chegar. Regras, ensinos, padrões didáticos merecem o jogo de cintura do ser humano para a realidade, concordo Código Fonte!
Excelente discussão. O código "bem feito" deve ser feito no momento zero de sua construção. A refatoração é parte da construção e não uma etapa posterior a ser seguida após ou mesmo algum tempo depois do código estar em produção. A disseminação dessas boas práticas querem implantar nos desenvolvedores (principalmente) a cultura da preocupação e do cuidado com o código no exato momento em que ele está sendo construído. Eles querem nos mostrar, com suas próprias experiências, o quanto doloroso, frustrante e custoso pode ser quando negligenciamos esses cuidados. Com mais programadores kodando da melhor forma, com o tempo, os sistemas legado ficarão cada vez melhores - legado não é igual a lixo, nunca esqueçam isso.
Eu acredito que um dos problemas é o querer ver resultados a curto prazo. Eu vejo isso onde trabalho. Estou a 11 anos na mesma empresa, e algumas coisas que fiz no começo, por falta de conhecimentos e boas práticas, acabam "estourando" em mim nos dias de hoje. De uns tempos pra cá as questões que caem pra mim estão mais fáceis de acertar, pois como minhas práticas foram melhorando, o débito técnico gerado nos últimos anos não são tão grandes a ponto de demorarem para serem corrigidos.
Essa é a essência da melhoria contínua: o esforço e bugs ficam menores à medida em que vamos aperfeiçoando nosso modo de trabalhar com padrões e boas práticas
trabalho em uma agência, antes de eu chegar eles compraram um sistema de gestão. Fui abrir o código e pensa em um sistema que é 100% gambiarra. O login é puxado em todas as paginas (ele foi escrito em todas as paginas) e para mudar 1 linha tem que abrir página por página
Eu acredito que os dois cenários são válidos. Hoje eu posso dizer que só tenho trabalhado em projetos com o mais fino de tecnologias e patterns. E sempre tive essa linha raciocínio citada no comentário do brother. O que eu fiz quando o cenário não tinha essa possibilidade, era aprender como não fazer. Isso me ajudou bastante na hora de entender o porque das patterns, das novas tecnologias, quais os problemas resolvidos por esses e as facilidades que esses trazem. Só que realmente é frustante pra quem tem essa mentalidade citada pelo brother.
Como programadores é a nossa missão sermos melhores, independente de onde estamos. Eu herdei um sistema em php feito no dreamweaver (!!!) a uns 6 anos atrás... obviamente tanto o código, quando a lógica e a estrutura de arquivos estão "macarronizados" (gostei do neologismo rsrsrs), mas estou tendo que lidar com isso. O importante é sabermos implementar boas práticas sempre, e melhorar o ambiente que encontramos, não deixando ele igual e nem pior do que estava quando chegamos.
Esse e-mail até parece que fui eu que escrevi. Hoje tenho um salário bruto 50% menor do que já ganhei, mas estou muito mais satisfeito, porque hoje consigo aplicar mais do que já aprendi. Ainda não seguimos 100% das boas práticas, mas é melhor que os códigos macarrônicos nos quais eu trabalhava. Salário não é tudo.
Estou em um Projeto que é uma migração para uma solução web. Há um tempo resolvi estudar clean code e isso me ajudou muito a entender porque aquele código estava fácil de confortável de dar manutenção em alguns cantos e em algumas linhas havia "bad smells"". Nessa empresa eles nos deixam aplicar clean code e coisas de arquitetura nos códigos, coisa boa para nós e para o projeto.
Excelente vídeo! Acho que a maioria dos dev já sofreu ou sofre com a síndrome de querer aprender todos os patterns rs Mas acredito que seja tudo no seu tempo. É melhor aprender bem uma coisa e depois procurar algo novo, do que sair estudando tudo de uma vez.
Como disseram, não existe bala de prata, cada projeto tem uma demanda específica e com experiência você saberá onde aplicar a ferramenta adequada para cada necessidade. Por exemplo, DDD eh bom pra resolver problemas complexos, mas modelos anêmicos são melhores pra problemas mais simples, e por aí vai...
Acho q em qualquer área existe a questão teoria x prática, e depende muito da cultura da empresa. Precisamos nos ajustar sem perder a vontade de realizar um trabalho de excelência.
Pelo que vejo, a maioria dos desenvolvedores, sejam júnior, pleno ou sênior, sabem resolver o problema, mas não sabem resolver o problema de forma bem feita. É deprimente ver projetos desenvolvidos com as tecnologias mais recentes do mercado já nascerem com cara de legados. É triste... kkkkk
Já comi bronca na empresa por refatorar um projeto importante utilizando os princípios do SOLID 🤷🏻♂️. Antes, eu mexia em uma feature e quebrava outra. E sempre havia bugs ridículos no app kkk Após a mudança, a manutenção ficou maravilhosa e rápida. Ou seja, mesmo que você coma bronca, dependendo da situação, vale muito a pena ajustar o código para facilitar sua vida e receber elogios depois. Mesmo que seja aos poucos, vai sendo um bom escoteiro.
Problema é você mexer em coisa que já existe e que não vai ser tratada naquele momento, aí precisa de mais testes regressivo e end-to-end, as vezes na boa vontade você acaba quebrando algo que nem faz noção ...
@@RicardoSilvaTripcall É por isso que falam em "baby steps" no mundo agile: modificações pequenas, testáveis e o mais negociadas possíveis, para garantir que esses ajustes não interfiram na vida do cliente e mesmo assim, sigam as boas práticas
Acredito que seja necessário uma dose de realismo no tema. Todo o projeto sempre tem que responder a duas perguntas, PRAZO e CUSTO. E quando colocamos os patterns nesta atmosfera é que podemos saber se eles vão sobreviver ou se são apenas um "Romantic Code" (já que tudo se fala em inglês kkk). Mas verdade seja dita, um código "macarrônico" em PRODUÇÃO já fez mais pelo projeto que um belo código que nunca subiu para o cliente.
:) Gostei da definicao de.codigo.legado: todos pois codigo rodando vai precisar de manutecao um dia. Essa modernidade liquida que nao importa a quantidade de conhecimento em.tecnologia o fullstack ainda fica desfalcado. tecnologia sempre em movimento; fascinante.
Nossa, meu primeiro emprego na área, eu peguei um código legado, sem documentação cheio de código macarrônico, com meia dúzia de boas práticas sim, mas navegar nele era um inferno. Tanto que hoje em dia eu acho quase qualquer linha de código em alguns minutos em QUALQUER projeto (não, não é um exagero, juro). Descobri que não é tão simples fazer e manter um código limpo, tem pressão da chefia pra terminar rápido, tem a questão do tempo que nem sempre você tem pra fazer super bem feito porque a equipe é pequena e o sistema gigante. Enfim, alguns fatores ajudam a deixar o código macarrônico, mesmo que não seja muito do seu agrado fazer assim. O importante é ter consciência e quando tiver tempo, voltar e refatorar.
Parabéns pelo vídeo, valorizando o ensino e a adoção de boas práticas de Engenharia. E quem quiser desenvolver o estado da arte em Engenharia de Software, venha fazer pesquisa de ponta e desenvolver novas técnicas fazendo o mestrado ou doutorado em Engenharia de Software no Canadá. Temos ótimas universidades que prezam pela qualidade e buscam a excelência. Quer saber mais? Procure um professor que trabalhe na sua paixão e entre em contato. Mercado e acadêmia unidas na busca de melhorar a nossa profissão de Engenheiros de Software!
Acho que usar os padrões só porque "tem" que usar para ter um código "bom" não serve pra nada... Entrei numa empresa recentemente e os produtos que desenvolvemos lá são basicamente carrinhos de compra que nada mais são do que etapas e mais etapas de formulários. Lá eu aprendi o uso do padrão de projeto "FormFactory", nesse tipo de projeto é praticamente indispensável o uso desse padrão para garantirmos uma evolução correta dos projetos. Então nesse caso o uso do padrão de projeto traz benefício para quem esta desenvolvendo, do contrário, seria apenas um atraso...
A cultura da empresa é real, trabalho em um lugar onde refatoração é quase um tabu. Não é que nós não queremos mudar, mas o tempo de desenvolvimento é totalmente convertido em criar coisas novas ou aplicações novas. Há muitos projetos legados, mas não há interesse de quem comanda em gastar tempo melhorando o código. Manda quem pode, obedece quem é assalariado.
Acredito que o que eu trabalho estaria no meio termo, o projeto explora muito pouco polimorfismo e foca as soluções separadas em vários métodos. Ainda tem uma boa aplicação do princípio SRP(na medida do possível). Agora eu gostaria de fazer uma pergunta para vocês(ou qualquer outro interessado), boas práticas só rola com OOP, ou se desviar-mos um pouco desse paradigma conseguimos estruturas bem um código? Levando em conta linguagens que fogem desse paradigma, como as linguagens funcionais, ou mesmo linguagens como Go e Rust.
eu já tive que fazer coisas simples como refatorar um arquivo utils em vários menores, mas já tive que usar refatorar um código meu por abuso de operador ternário. Mas isso foi uma coisa que me incomodou nas cadeiras associadas a engenharia de software, como o foco do trabalho era criar uma documentação, tu tinha que escolher patterns para aplicar no teu projeto sem entender elas direito, aprendi certas patterns mais na prática, preferia ter feito trabalhos sobre as próprias patterns.
Olá, @Código Fonte TV. Esse problema de pouco apreço com testes e boas-práticas é algo mais localizado daqui do Brasil ou é lugar-comum no mundo inteiro? Sabe me dizer? Em hacking ético o desleixo aqui é impressionante. Sempre me senti mais à vontade com empresas da Europa, Canadá e Estados Unidos. Depois que decidi dar uma sacudida na minha carreira e recomeçar do zero, sinto que em dev web e mobile é o caos. Já peguei cada arma nuclear como freela para desmontar... Especialmente em e-commerce.
O que observo é que as boas práticas são de fato utilizadas, porém, com a deadline se aproximando, começa a fazer qualquer coisa pra atender o prazo. Nós, dev's , temos o tempo na nossa mão (já diz uncle Bob no livro código limpo). Se precisar de mais 1 semana e fazer um código de qualidade e atender o teu cliente, show de bola!!
Eu estou na faculdade ainda e faço um projeto de desenvolver app com flutter. O meu código melhorou muito depois do clean, mais legível e mais organizado, o que facilita muito quando o orientador pede alterações. Já o design pattern, como os plugins de flutter atualizam constantemente e as vezes eu troco entre plugins semelhantes pq achei um melhor que o outro, comecei a abstrair eles nas minhas próprias classes e depois usar elas, assim concentro toda as futuras mudanças em um só lugar. Faço o msm com o banco de dados, junto com um singleton, pq n sei se no futuro vou mudar de SQLite para um banco externo. Builder tbm sempre está por ali, quando tem algo complexo a se fazer divido em passos menores e um builder cuida de construir tudo. Esse livro tbm me ajudou a entender algo que eu já sentia, na maioria dos casos composição é melhor que herança. Eu sei pouco e programo solo, mas n sinto demora para implementar essas coisas, sai naturalmente, e no futuro ajuda muito a dar manutenção. Tenho terror em voltar nós meus primeiros apps.
Sistemas desenvolvidos ao estilo "freestyle" têm telhado de vidro. Sistemas grandes e complexos, com diversos serviços, integrações, etc., necssariamente precisam ter arquitetura bem desenhada e definida, com boas práticas e correta aplicação de bons design patterns - não tem pra onde correr!
O tempo que você usaria para refatorar um código (no meu caso só trato com sistemas GoHorse) eu não teria tempo para fazer as melhoria e correções necessárias. No meu caso eu mantenho o legado mudando o mínimo possível e nas melhorias escritas por mim eu aplico boas práticas da programação
Atualmente estou em uma empresa que atua na área de automação industrial, a equipe de software conta com duas pessoas, a facilidade de poder tomar certas decisões quanto a padrões e estratégias se perde quando começa a vir cronogramas absurdos pq as pessoas nao entendem muito bem oq um software precisa pra existir mesmo que na forma mais 'bruta' possível
eu sigo o clean code e clean architecture na hora de programar e aplico os design patterns, solid e outros patters sempre que vejo uma situação onde posso aplicar
Fala devs. Concordo que o Scrum deve ser aplicado e adaptado de acordo com a realidade da empresa. Já trabalhei em empresas que seguiam a risca o Scrum e algumas que adaptaram algumas dinâmicas por exemplo e ficou tudo bem, afinal a empresa não permitia seguir o Scrum padrão. Por outro lado, a empresa pedir no teste prático as melhores práticas e testes e tudo e no trabalho não ser aplicado tudo que tinha no teste como requisito é frustante demais pois a gente já busca que o projeto seja "perfeito" ao nível do teste
Boa tarde seus lindos, quero pedir a ajuda de vocês para meus colegas de curso da UNIVESP. No começo do mês de junho teremos de escolher qual curso vamos fazer. Atualmente estamos no final do ciclo básico(Eixo Computação) e os colegas ainda tem duvidas sobre Bacharelado em Tecnologia da Informação, Ciência de Dados e Engenharia de Computação. Se possível façam um vídeo falando sobre as 3 áreas por favor.
será que o PM deixa tempo no cronograma pra os devs fazerem refactoring? ou aplicam o go horse? O que vi em alguns projetos é que os devs são cobrados pra entregar as tarefas o mais rápido possível... parte culpa da metodologia "ágil" aplicada por uma má gestão.
Na verdade, não precisamos de tempo de "refactoring" se usamos as boas práticas já desde o início: refiro-me ao uso de "templates" em nossas ferramentas de desenvolvimento.
Algumas pessoas se prendem muito às boas praticas e acabam esquecendo o bom senso, já vi me passarem coisas que considerei muito desnecessarias e sem sentido algum.
Todos os projetos que executamos na minha empresa utilizam CA. O problema? Todo dev novo que entra reclama e fala que é muito difícil, não estuda o que pedimos e sai em pouco tempo da empresa.
Muitas vezes o projeto da empresa é simples e o programador acaba "complicando" o sistema aplicando algumas boas práticas. Nesses casos não tem nada de errado com a empresa e o programador que tem que procurar um projeto mais desafiador.
Boas práticas eu aplico quando eu tenho tempo pra isso, coisas como testes eu aplico desde o início do projeto pq eu sei que depois é problemático pra colocar depois mas as vezes a solução que a empresa precisa é "pra ontem" aí eu vou tentando aplicar as boas práticas no que der e o que não der eu sacrifico mas faço anotações para posteriormente quando estabilizar o projeto voltar e colocar a "casa em ordem", pra o meu cenário que a empresa tinha uma data para desligar o software antigo que era terceirizado tive que sacrificar algumas coisas mas posteriormente arrumei tudo e hj em dia o software está altamente escalável
Pagando bem, e não rolando assedio moral... se o mercado me apontar um pedaço de madeira e disser que é pedra, eu aceito. Pagando mal... Trago a revolução a vcs!!!!!!!!!!!!!!!!!!! Trabalhadores do mundo, uni-vos!!!!!!!
Acho que tem boas praticas como não ter métodos que fazem um monte de coisas que devem ser aplicadas, mas tem outras que na maioria dos projetos acabam é complicando como repository pattern. Pelo menos no que uso que é o Laravel acho inútil mas o pessoal mais xiita fala q é bom usar.
Eu já rejeitei 2 vagas por causa disso. Já trabalho com legado da prefeitura, seria um aumento bom de salário, porém hoje prefiro ir trabalhar com microsserviços até pra apreender mais.
Eu penso que qualquer código será mais ou menos macarrônico no começo porque o que o empreendedor quer é velocidade para testar o feedback dos clientes, logo que as funcionalidades são aprovadas, a partir daí é que você deve pensar em arquitetura e design patterns para que o código não quebre no futuro.
Ao contrário: se você tem um protótipo ou framework já escrito nos padrões e arquitetura, consegue entregar rapidamente ao empreendedor para que ele diga o que precisa
O problema é quando pegam um código bacana e destróem... aí dói na alma! Aquela gambiarrinha no meio do caminho e o comentário // está funcionando, não alterar...
Quem já entrou num projeto que estava tão macarrônico que nem dava para fazer testes automatizados, porque você começa a mexer e quebra tudo? Dá um like quem já achou esses sistemas de palitinhos colados com chiclete 😜
Use templates de código em sua ferramenta de desenvolvimento
3 года назад+1
Patterns e boas práticas de programação pareciam ter virado coisas obsoletas para essa geração Go Horse startupeiras. Fico feliz que esses temas tenham voltado ao vocabulário dos Devs, embora acho que voltou devido a tanto lixo que fizeram na última década.
Vou ser polêmico, Boas Práticas são: "Fazer um Software que Funcione, no menor tempo possível e obter o lucro desejado !", Pronto falei. kkk Ah, podem me dar pancada, estou preparado. kkkkkk
Programação gourmet kkkkkkk ahhh se veria LinkedIn todo mundo eh clean and patterns kkkkkkk todos engenheiros de soluções que trouxeram milhões de reais para as empresas kkkkk Viva a Soberba
Sugestão: Comentem o vídeo do canal do Brian Will "Object-oriented programming is bad"! (1.2m views). Polêmico, mas interessante! (assunto relacionado ao vídeo)
a maioria das pessoas não sabe programar orientado a objeto. Poderia ser o velho estruturado que daria no mesmo. Os structs sao os objetos que só guardam dados mesmo. Não tem herança, não tem polimorfismo, nada do que é bom na OO
Eu discordo um pouco da opiniao de vcs. Na pratica, a politica manda mais q o tecnico. Se o chefe nao permite, nao tem oq fazer. O mercado prefere algo pronto doq bem feito, infelizmente.
Eu só faço. E dá certo. E pago minhas contas. Programar já é difícil demais sem frecuras. Podem me criticar, mas é esse meu estilo. A gambiarra é uma arte subestimada!
Tem vários padrões de boas práticas... TDD (Teste depois do Deploy), CPM (Código Padrão Macarrônico), MVC (Meleca Verídica no Código) e por fim o PC (Padrão Cebola) aquele que vc vê e chora. Me sigam para mais dicas kkk
kkk muito bom!
😂😂😂😂😂😂
"Ninguém precisa de muitas habilidades e conhecimentos para fazer um programa funcionar. Alunos do ensino médio fazem isso o tempo todo[...] Fazer direito é outra questão. Criar software de maneira correta é que é difícil. Requer um nível de disciplina e dedicação que a maioria dos programadores nunca sonhou que precisaria[...] Requer paixão pela programação e o desejo de se tornar um bom profissional. Códigos ruins funcionam. Funcionam porque fazer algo funcionar - UMA VEZ - não é tão difícil."
- Uncle Bob
Atualmente no projeto que estou alocado é imprescindível o estudo de testes e design patterns antes de começar pois o projeto é legado e tem 98% coverage code e com um pattern tão lindo que chega ser gostoso de refatorar algo, então sim, é super importante estudar testes e design pattern mesmo que seu projeto atual esteja mais bagunçado que tudo kkk
Acho super importante. Passei por umas equipes de dev que faltou conhecimento e vontade de melhorar. Acho que nem é cultura da empresa e sim da equipe. Já passei por equipe que não tinha teste, por umas que o rápido funciona (extreme go-horse methodology), e foram equipes que o líder técnico não era a favor dessas coisas e eu estudei muito clean code, solid, design patterns, refactoring. Já apresentei code reviews de teste, boas práticas, solid, pra pelo menos melhorar equipe. Atualmente estou em uma equipe de que entrei como sênior e os planos adoraram as melhoras e o líder no começo foi resistente mas cedeu. Hoje o código melhorou muito com a ajuda de um segundo sênior que veio com a mesma pegada e a manutenção do código limpo é infinitamente melhor e prática. Quando viram a diferença o benefício e reconhecimento veio depois.
Eu sou criativo e vivo criando ideias e mecanismos pra melhorar processo, ainda vejo que nunca devo parar de reestudar clean code, solid, patterns e estrutura de dados.
Estrutura de dados tem me ajudado e pesar em novas técnicas e melhorar as lógicas mais complexas e simplificar las.
Trabalho com arquitetura hexagonal bem aplicada, patterns como strategy, template method, chain of responsibility, factory, builder, adapter, observer, bem aplicados e uma parte saiu de sugestão minha. Estou em momento de refatorar o core do sistema que falta teste e tempo pra fazer. Já é uma evolução.
Nunca deixe de estudar e relembrar. Seja open-minded com a equipe e se elem tenham dúvidas disso, faça apresentação. Estudar realça o que sabe e ajuda a maturidade da equipe.
Júnior Garcia é um bom exemplo de profissional. O conhecimento nunca é perda de tempo. Parabéns pelo esclarecimento!
Hoje atuo numa empresa que te uma plataforma pra licitantes como front-end (React), atualmente o time de front é eu e mais outro cara, e o código em si é muito ruim, o pensamento deles é muito contra refatoração, pra eles se está funcionando não mexe. Eu contra todas as indicações comecei a migrar o estado da aplicação que estava em MOBX (ainda tem que usa) pra ContextAPI, introduzi testes, TypeScript, GraphQL, estou mudando algumas plataformas pra Next, coisas que partem de mim, e as vezes faço isso no tempo livre e fins de semana justamente pra ter uma base de tudo que aprendi de forma profissional e poder acrescentar no currículo, pra mim está sendo fantástico, pois é muito mais difícil vc implementar uma tecnologia num código que tem outra do que chegar e ja ter a tecnologia certa pra trabalhar. Acho que é um aprendizado muito maior do que teria em uma empresa de porte maior.
Muito legal o vídeo, é uma conversa que sempre tenho com a equipe que trabalho. Utilizamos muitas dessas boas práticas, e com certeza elas ajudam e muito no desenvolvimento e implantação de software, mas sempre há alguma coisa para melhorarmos. Claro que esse "gap" entre as boas práticas que estudamos e os projetos, empresas e equipes do mundo real é causado por vários fatores, mas um desses fatores que acho extremamente importante, e que é uma grande deficiência da nossa área, é a formação dos profissionais. Muitas faculdades/universidades/cursos técnicos formam profissionais despreparados para o mercado de trabalho, dificultando a sua entrada no primeiro emprego, tendo de buscar cursos extras para se aperfeiçoar e atender as necessidades do mercado. Muitas vezes um programador que estudou sozinho, sem fazer curso nenhum, sabe mais que um que ficou 5 anos cursando BSI. E o canal do CDF TV (e muitos outros) é um dos responsáveis por essa evolução muito mais rápida dos profissionais do que os que ficam apenas com o conhecimento da faculdade. Utilizando um exemplo extremo, um profissional que quer seguir a carreira médica, tem que passar por 5 anos de faculdade, mais alguns anos de especialização, mas alguns anos de residência prática, mais provas nesse meio tempo para conseguir o CRM, para só então poder assumir a responsabilidade sozinho de exercer a profissão. E isso não acontece na nossa área. O profissional sai de uma faculdade de 2 a 3 anos já se inserindo no mercado de trabalho e sendo cobrado como se tivesse 10 anos de experiência, sem ter tido experiência prática alguma. A disparidade é gigantesca. Por isso programas de treinamento e formação de novos profissionais dentro das empresas é tão importante, pois a formação universitária é muito precária. A empresa que trabalho tem um ótimo programa de formação de novos profissionais, e tem feito uma enorme diferença na carreira de muitos programadores.
Parabéns pessoal pelo conteúdo, na minha opinião, precisamos de arquitetos e pessoas que estudem além das boas práticas mas todo o modelo de engenharia e design de software, um dos problemas está na cultura de quem projetou o sistema(muitas vezes esses largam as empresas, deixando os monstrinhos), a 5 anos atrás não se falava de Arquiteto de Software, precisamos de empresas que valorizem não só "operadores" mas também "pensadores e projetores" querem economizar em contratação/tempo e hoje não sabem o porque não param os devs nas empresas.
O dia em que software for tratado como na engenharia civil, com papéis mais bem definidos, teremos ambientes melhores, portanto começamos por hoje.
Sim, tu faz um negócio todo planejado, aí o cliente dois minutos antes de botar em produção decide mudar algo que está na raiz do projeto. O programador se vê obrigado a fazer uma gambiarra.
Gambiarra é a alma do negocio hahaha, zueira, isso da uma raiva mano, isso quando não é o cliente, mas quando outro dev escreve variaveis com erros ortograficos, ai quebra a tua aplicação do nada, ontem tive fazer uma gambiarra boba, so pra não quebrar o app, ai do nada, fazendo outra coisa que nada tinha a ver com a task anterior, achei e descobri a variavel errada, aproveitei e arrumei, hahaha!
Muito dos problemas é você querer aplicar algum padrão pra deixar o código arrumado, mas outro dev superior a você não entender e dizer que estamos fazendo muito código pra pouco retorno
Onde trabalho é o contrário mano, tem um dev senior que prefere fazer um codigo clean code e com uma arquitetura de software decente do que fazer de qualquer jeito!
Esse ponto que vocês falaram das expectativas é muito importante. As vezes a gente acha que vai começar no emprego, e vai criar uma ferramenta do zero, da forma que quisermos, e na maioria dos casos é muito pelo contrário, já é pra entrar, mudar e implementar em cima de um sistema já criado, e que as vezes você nem faz ideia de como feito aquilo kkkk.
Por isso é tão importante que o desenvolvedor tenha uma mentalidade mais "TDD", digamos assim: ter autonomia para preparar um ambiente minimamente seguro para modificar esses sistemas legado com menor impacto possível , rastrear erros e reverter, caso não surte o efeito esperado
Muito legal o vídeo, Gabriel e Vanessa!!
A meu ver o importante é se importar com o código e fazer o melhor que puder. Muitas vezes percebo as pessoas realizando entregas só pra dizer que fez e que finalizou a task. No final ouvimos muito "funcionando tá bom", mas claramente a pessoa não se importa com a maneira que foi feita.
Esse vídeo me fez lembrar do comentário de um dos meus primeiros chefes. Eu trabalhava em uma software-house com uns 10 programadores. Ele disse: "Toda empresa é uma 'casca' onde vc só vê coisas bonitas. Quando vc se entra dentro dela vc começa a se deparar com 'coisas' não tão bonitas." Isso foi em 1995. De lá pra cá muita coisa evoluiu, mas esse seu pensamento ainda se mantém atual. Achei muito legal a iniciativa de vcs em abordar esse assunto tão polêmico. Inclusive a abordagem foi muito bem feita. Acho o conselho sobre a refatoração um ótimo conselho, e a teoria aprendida não foi um trabalho vão. Mas devemos sempre ter em mente que mudar a cultura de uma empresa é algo praticamente impossível, e em alguns casos a refatoração de códigos pode até lhe custar o emprego, porque tem empresa que valoriza somente o profissional mais rápido, sem olhar como essa produtividade foi conseguida. Tem que ver a situação.
Padrões e boas práticas devem ser como testes em TDD: devem ser aplicados "antes" do código ser efetivamente construído. Como? Usando os recursos de templates/code snippets de sua ferramenta de desenvolvimento
O participante demonstrou uma certa indignação entre o que foi cobrado como candidato a vaga que ele ocupou e o perfil tecnológico da empresa, também é um ponto. Existe muita expectativa pela busca dos melhores profissionais sem a preocupação da adaptação daquele perfil à empresa, a equipe ou ainda às reais necessidades do potencial elegido na vaga aos patamares que a empresa deseja chegar. Regras, ensinos, padrões didáticos merecem o jogo de cintura do ser humano para a realidade, concordo Código Fonte!
Excelente discussão. O código "bem feito" deve ser feito no momento zero de sua construção. A refatoração é parte da construção e não uma etapa posterior a ser seguida após ou mesmo algum tempo depois do código estar em produção. A disseminação dessas boas práticas querem implantar nos desenvolvedores (principalmente) a cultura da preocupação e do cuidado com o código no exato momento em que ele está sendo construído. Eles querem nos mostrar, com suas próprias experiências, o quanto doloroso, frustrante e custoso pode ser quando negligenciamos esses cuidados. Com mais programadores kodando da melhor forma, com o tempo, os sistemas legado ficarão cada vez melhores - legado não é igual a lixo, nunca esqueçam isso.
Excelente!
A vibe desse vídeo ficou muito boa, seria god mais vídeos nessa pegada
Ficamos felizes que vc tenha curtido! Estamos produzindo mais vídeos no CDF Café! :D
Eu acredito que um dos problemas é o querer ver resultados a curto prazo.
Eu vejo isso onde trabalho. Estou a 11 anos na mesma empresa, e algumas coisas que fiz no começo, por falta de conhecimentos e boas práticas, acabam "estourando" em mim nos dias de hoje.
De uns tempos pra cá as questões que caem pra mim estão mais fáceis de acertar, pois como minhas práticas foram melhorando, o débito técnico gerado nos últimos anos não são tão grandes a ponto de demorarem para serem corrigidos.
Essa é a essência da melhoria contínua: o esforço e bugs ficam menores à medida em que vamos aperfeiçoando nosso modo de trabalhar com padrões e boas práticas
trabalho em uma agência, antes de eu chegar eles compraram um sistema de gestão. Fui abrir o código e pensa em um sistema que é 100% gambiarra. O login é puxado em todas as paginas (ele foi escrito em todas as paginas) e para mudar 1 linha tem que abrir página por página
Eu acredito que os dois cenários são válidos. Hoje eu posso dizer que só tenho trabalhado em projetos com o mais fino de tecnologias e patterns. E sempre tive essa linha raciocínio citada no comentário do brother.
O que eu fiz quando o cenário não tinha essa possibilidade, era aprender como não fazer. Isso me ajudou bastante na hora de entender o porque das patterns, das novas tecnologias, quais os problemas resolvidos por esses e as facilidades que esses trazem. Só que realmente é frustante pra quem tem essa mentalidade citada pelo brother.
Como programadores é a nossa missão sermos melhores, independente de onde estamos.
Eu herdei um sistema em php feito no dreamweaver (!!!) a uns 6 anos atrás... obviamente tanto o código, quando a lógica e a estrutura de arquivos estão "macarronizados" (gostei do neologismo rsrsrs), mas estou tendo que lidar com isso.
O importante é sabermos implementar boas práticas sempre, e melhorar o ambiente que encontramos, não deixando ele igual e nem pior do que estava quando chegamos.
Esse e-mail até parece que fui eu que escrevi. Hoje tenho um salário bruto 50% menor do que já ganhei, mas estou muito mais satisfeito, porque hoje consigo aplicar mais do que já aprendi. Ainda não seguimos 100% das boas práticas, mas é melhor que os códigos macarrônicos nos quais eu trabalhava.
Salário não é tudo.
Estou em um Projeto que é uma migração para uma solução web. Há um tempo resolvi estudar clean code e isso me ajudou muito a entender porque aquele código estava fácil de confortável de dar manutenção em alguns cantos e em algumas linhas havia "bad smells"". Nessa empresa eles nos deixam aplicar clean code e coisas de arquitetura nos códigos, coisa boa para nós e para o projeto.
Excelente vídeo!
Acho que a maioria dos dev já sofreu ou sofre com a síndrome de querer aprender todos os patterns rs
Mas acredito que seja tudo no seu tempo. É melhor aprender bem uma coisa e depois procurar algo novo, do que sair estudando tudo de uma vez.
Gosto muito de vídeos que falam sobre Design Patterns...👍🏻
Como disseram, não existe bala de prata, cada projeto tem uma demanda específica e com experiência você saberá onde aplicar a ferramenta adequada para cada necessidade.
Por exemplo, DDD eh bom pra resolver problemas complexos, mas modelos anêmicos são melhores pra problemas mais simples, e por aí vai...
Acho q em qualquer área existe a questão teoria x prática, e depende muito da cultura da empresa. Precisamos nos ajustar sem perder a vontade de realizar um trabalho de excelência.
Parabéns pela abordagem!
Uma curiosidade sobre a placa CDF CAFE, lembrei de “cumulative distribution function” ensinado em estatística rs!
Abs!
Pelo que vejo, a maioria dos desenvolvedores, sejam júnior, pleno ou sênior, sabem resolver o problema, mas não sabem resolver o problema de forma bem feita.
É deprimente ver projetos desenvolvidos com as tecnologias mais recentes do mercado já nascerem com cara de legados.
É triste... kkkkk
Já comi bronca na empresa por refatorar um projeto importante utilizando os princípios do SOLID 🤷🏻♂️. Antes, eu mexia em uma feature e quebrava outra. E sempre havia bugs ridículos no app kkk Após a mudança, a manutenção ficou maravilhosa e rápida. Ou seja, mesmo que você coma bronca, dependendo da situação, vale muito a pena ajustar o código para facilitar sua vida e receber elogios depois. Mesmo que seja aos poucos, vai sendo um bom escoteiro.
Muita sorte não terem te desligado.
"Comi Bronca" ? Que expressão mais estranha...😂😂
Problema é você mexer em coisa que já existe e que não vai ser tratada naquele momento, aí precisa de mais testes regressivo e end-to-end, as vezes na boa vontade você acaba quebrando algo que nem faz noção ...
show de bola, mostra o quanto você é mais profissional do que os outros.
@@RicardoSilvaTripcall É por isso que falam em "baby steps" no mundo agile: modificações pequenas, testáveis e o mais negociadas possíveis, para garantir que esses ajustes não interfiram na vida do cliente e mesmo assim, sigam as boas práticas
Ótimo conteúdo, obrigado.
Acredito que seja necessário uma dose de realismo no tema. Todo o projeto sempre tem que responder a duas perguntas, PRAZO e CUSTO. E quando colocamos os patterns nesta atmosfera é que podemos saber se eles vão sobreviver ou se são apenas um "Romantic Code" (já que tudo se fala em inglês kkk). Mas verdade seja dita, um código "macarrônico" em PRODUÇÃO já fez mais pelo projeto que um belo código que nunca subiu para o cliente.
:) Gostei da definicao de.codigo.legado: todos pois codigo rodando vai precisar de manutecao um dia. Essa modernidade liquida que nao importa a quantidade de conhecimento em.tecnologia o fullstack ainda fica desfalcado. tecnologia sempre em movimento; fascinante.
No mundo real falta tempo e paciência de olhar para as boas práticas de design patterns. E depois a conta chega com juros e correções monetárias.
Nossa, meu primeiro emprego na área, eu peguei um código legado, sem documentação cheio de código macarrônico, com meia dúzia de boas práticas sim, mas navegar nele era um inferno. Tanto que hoje em dia eu acho quase qualquer linha de código em alguns minutos em QUALQUER projeto (não, não é um exagero, juro).
Descobri que não é tão simples fazer e manter um código limpo, tem pressão da chefia pra terminar rápido, tem a questão do tempo que nem sempre você tem pra fazer super bem feito porque a equipe é pequena e o sistema gigante. Enfim, alguns fatores ajudam a deixar o código macarrônico, mesmo que não seja muito do seu agrado fazer assim. O importante é ter consciência e quando tiver tempo, voltar e refatorar.
Parabéns pelo vídeo, valorizando o ensino e a adoção de boas práticas de Engenharia. E quem quiser desenvolver o estado da arte em Engenharia de Software, venha fazer pesquisa de ponta e desenvolver novas técnicas fazendo o mestrado ou doutorado em Engenharia de Software no Canadá. Temos ótimas universidades que prezam pela qualidade e buscam a excelência. Quer saber mais? Procure um professor que trabalhe na sua paixão e entre em contato. Mercado e acadêmia unidas na busca de melhorar a nossa profissão de Engenheiros de Software!
Acho que usar os padrões só porque "tem" que usar para ter um código "bom" não serve pra nada...
Entrei numa empresa recentemente e os produtos que desenvolvemos lá são basicamente carrinhos de compra que nada mais são do que etapas e mais etapas de formulários. Lá eu aprendi o uso do padrão de projeto "FormFactory", nesse tipo de projeto é praticamente indispensável o uso desse padrão para garantirmos uma evolução correta dos projetos. Então nesse caso o uso do padrão de projeto traz benefício para quem esta desenvolvendo, do contrário, seria apenas um atraso...
A cultura da empresa é real, trabalho em um lugar onde refatoração é quase um tabu. Não é que nós não queremos mudar, mas o tempo de desenvolvimento é totalmente convertido em criar coisas novas ou aplicações novas.
Há muitos projetos legados, mas não há interesse de quem comanda em gastar tempo melhorando o código.
Manda quem pode, obedece quem é assalariado.
Todos os projetos que faço sempre são baseados em designs paterns, facilita muito mesmo ao longo do projeto!
Tá vivendo o sonho irmão, parabéns
Aceita meu currículo?
Acredito que o que eu trabalho estaria no meio termo, o projeto explora muito pouco polimorfismo e foca as soluções separadas em vários métodos. Ainda tem uma boa aplicação do princípio SRP(na medida do possível). Agora eu gostaria de fazer uma pergunta para vocês(ou qualquer outro interessado), boas práticas só rola com OOP, ou se desviar-mos um pouco desse paradigma conseguimos estruturas bem um código? Levando em conta linguagens que fogem desse paradigma, como as linguagens funcionais, ou mesmo linguagens como Go e Rust.
Em PL/SQL, há um livro de boas práticas, do autor Steven Feuerstein
eu já tive que fazer coisas simples como refatorar um arquivo utils em vários menores, mas já tive que usar refatorar um código meu por abuso de operador ternário. Mas isso foi uma coisa que me incomodou nas cadeiras associadas a engenharia de software, como o foco do trabalho era criar uma documentação, tu tinha que escolher patterns para aplicar no teu projeto sem entender elas direito, aprendi certas patterns mais na prática, preferia ter feito trabalhos sobre as próprias patterns.
Olá, @Código Fonte TV. Esse problema de pouco apreço com testes e boas-práticas é algo mais localizado daqui do Brasil ou é lugar-comum no mundo inteiro? Sabe me dizer?
Em hacking ético o desleixo aqui é impressionante. Sempre me senti mais à vontade com empresas da Europa, Canadá e Estados Unidos. Depois que decidi dar uma sacudida na minha carreira e recomeçar do zero, sinto que em dev web e mobile é o caos. Já peguei cada arma nuclear como freela para desmontar...
Especialmente em e-commerce.
Me refiro a mobile e front-end. Pq back-end já tenho resposta. E não é boa. DB, misericódia!!!
O que observo é que as boas práticas são de fato utilizadas, porém, com a deadline se aproximando, começa a fazer qualquer coisa pra atender o prazo. Nós, dev's , temos o tempo na nossa mão (já diz uncle Bob no livro código limpo). Se precisar de mais 1 semana e fazer um código de qualidade e atender o teu cliente, show de bola!!
Eu estou na faculdade ainda e faço um projeto de desenvolver app com flutter. O meu código melhorou muito depois do clean, mais legível e mais organizado, o que facilita muito quando o orientador pede alterações.
Já o design pattern, como os plugins de flutter atualizam constantemente e as vezes eu troco entre plugins semelhantes pq achei um melhor que o outro, comecei a abstrair eles nas minhas próprias classes e depois usar elas, assim concentro toda as futuras mudanças em um só lugar. Faço o msm com o banco de dados, junto com um singleton, pq n sei se no futuro vou mudar de SQLite para um banco externo. Builder tbm sempre está por ali, quando tem algo complexo a se fazer divido em passos menores e um builder cuida de construir tudo. Esse livro tbm me ajudou a entender algo que eu já sentia, na maioria dos casos composição é melhor que herança.
Eu sei pouco e programo solo, mas n sinto demora para implementar essas coisas, sai naturalmente, e no futuro ajuda muito a dar manutenção. Tenho terror em voltar nós meus primeiros apps.
Qual é a área que você cursa Roberto?
@@FallHealer2375 engenharia da computação
Sistemas desenvolvidos ao estilo "freestyle" têm telhado de vidro. Sistemas grandes e complexos, com diversos serviços, integrações, etc., necssariamente precisam ter arquitetura bem desenhada e definida, com boas práticas e correta aplicação de bons design patterns - não tem pra onde correr!
O tempo que você usaria para refatorar um código (no meu caso só trato com sistemas GoHorse) eu não teria tempo para fazer as melhoria e correções necessárias. No meu caso eu mantenho o legado mudando o mínimo possível e nas melhorias escritas por mim eu aplico boas práticas da programação
Atualmente estou em uma empresa que atua na área de automação industrial, a equipe de software conta com duas pessoas, a facilidade de poder tomar certas decisões quanto a padrões e estratégias se perde quando começa a vir cronogramas absurdos pq as pessoas nao entendem muito bem oq um software precisa pra existir mesmo que na forma mais 'bruta' possível
eu sigo o clean code e clean architecture na hora de programar e aplico os design patterns, solid e outros patters sempre que vejo uma situação onde posso aplicar
Fala devs. Concordo que o Scrum deve ser aplicado e adaptado de acordo com a realidade da empresa. Já trabalhei em empresas que seguiam a risca o Scrum e algumas que adaptaram algumas dinâmicas por exemplo e ficou tudo bem, afinal a empresa não permitia seguir o Scrum padrão. Por outro lado, a empresa pedir no teste prático as melhores práticas e testes e tudo e no trabalho não ser aplicado tudo que tinha no teste como requisito é frustante demais pois a gente já busca que o projeto seja "perfeito" ao nível do teste
Tem razão Hallison! A frustração é real nesses casos.
Boa tarde seus lindos, quero pedir a ajuda de vocês para meus colegas de curso da UNIVESP. No começo do mês de junho teremos de escolher qual curso vamos fazer. Atualmente estamos no final do ciclo básico(Eixo Computação) e os colegas ainda tem duvidas sobre Bacharelado em Tecnologia da Informação, Ciência de Dados e Engenharia de Computação. Se possível façam um vídeo falando sobre as 3 áreas por favor.
será que o PM deixa tempo no cronograma pra os devs fazerem refactoring? ou aplicam o go horse? O que vi em alguns projetos é que os devs são cobrados pra entregar as tarefas o mais rápido possível... parte culpa da metodologia "ágil" aplicada por uma má gestão.
Na verdade, não precisamos de tempo de "refactoring" se usamos as boas práticas já desde o início: refiro-me ao uso de "templates" em nossas ferramentas de desenvolvimento.
normalmente começo a programar segundo o fluxo da minha lógica testo se tudo está bem, e depois vou organizando para outras pessoas entenderem
muito bom vídeo 👏
Estamos em uma faze de Resolver Legado Macaronico(vagas de TI atualmente) , ainda não estamos na faze clean code , simples assim
Algumas pessoas se prendem muito às boas praticas e acabam esquecendo o bom senso, já vi me passarem coisas que considerei muito desnecessarias e sem sentido algum.
Todos os projetos que executamos na minha empresa utilizam CA.
O problema?
Todo dev novo que entra reclama e fala que é muito difícil, não estuda o que pedimos e sai em pouco tempo da empresa.
Muitas vezes o projeto da empresa é simples e o programador acaba "complicando" o sistema aplicando algumas boas práticas. Nesses casos não tem nada de errado com a empresa e o programador que tem que procurar um projeto mais desafiador.
Boas práticas eu aplico quando eu tenho tempo pra isso, coisas como testes eu aplico desde o início do projeto pq eu sei que depois é problemático pra colocar depois mas as vezes a solução que a empresa precisa é "pra ontem" aí eu vou tentando aplicar as boas práticas no que der e o que não der eu sacrifico mas faço anotações para posteriormente quando estabilizar o projeto voltar e colocar a "casa em ordem", pra o meu cenário que a empresa tinha uma data para desligar o software antigo que era terceirizado tive que sacrificar algumas coisas mas posteriormente arrumei tudo e hj em dia o software está altamente escalável
Use templates de código da sua ferramenta de desenvolvimento para facilitar a aplicação das boas práticas
Para utilizar os frameworks eles são essenciais.
"Quando eu escrevi esse codigo, somente eu e Deus sabia como funcionava, agora só Deus" Cristiano Camacho
no curso da trybe eu sinto que passo muito tempo aprendendo sobre boas praticas e lendo documentação do que codando em si.
Seguindo os princípios do mais é menos: Quanto mais genérico, menos utilizável. O Clean Architeture pode ser um tiro no pé.
Pagando bem, e não rolando assedio moral... se o mercado me apontar um pedaço de madeira e disser que é pedra, eu aceito.
Pagando mal... Trago a revolução a vcs!!!!!!!!!!!!!!!!!!! Trabalhadores do mundo, uni-vos!!!!!!!
Acho que tem boas praticas como não ter métodos que fazem um monte de coisas que devem ser aplicadas, mas tem outras que na maioria dos projetos acabam é complicando como repository pattern. Pelo menos no que uso que é o Laravel acho inútil mas o pessoal mais xiita fala q é bom usar.
Eu trabalho com legado em Java, é osso meu amigo..
Eu já rejeitei 2 vagas por causa disso. Já trabalho com legado da prefeitura, seria um aumento bom de salário, porém hoje prefiro ir trabalhar com microsserviços até pra apreender mais.
F
Acho que a pior parte eh quando estamos em um projeto onde nao temos autonomia para refatorar o codigo e isso acaba gerando mais gambiarra...
Ja deixei a qualdiade por prioridade e tempo, mas deixe sempre claro o debito.
Eu penso que qualquer código será mais ou menos macarrônico no começo porque o que o empreendedor quer é velocidade para testar o feedback dos clientes, logo que as funcionalidades são aprovadas, a partir daí é que você deve pensar em arquitetura e design patterns para que o código não quebre no futuro.
Ao contrário: se você tem um protótipo ou framework já escrito nos padrões e arquitetura, consegue entregar rapidamente ao empreendedor para que ele diga o que precisa
Sua companheira olha pra vc falando sobre POG com vontade de rir kkkk. Será que ela tem história pra contar?
O problema é quando pegam um código bacana e destróem... aí dói na alma!
Aquela gambiarrinha no meio do caminho e o comentário // está funcionando, não alterar...
Quem já entrou num projeto que estava tão macarrônico que nem dava para fazer testes automatizados, porque você começa a mexer e quebra tudo? Dá um like quem já achou esses sistemas de palitinhos colados com chiclete 😜
Sugestão de nome pra códigos que parecem bonitos, mas estão uma bagunça: código maquiado rsrs
Eu tento aplicar o máximo que posso. O maior inimigo são os deadlines.
Use templates de código em sua ferramenta de desenvolvimento
Patterns e boas práticas de programação pareciam ter virado coisas obsoletas para essa geração Go Horse startupeiras. Fico feliz que esses temas tenham voltado ao vocabulário dos Devs, embora acho que voltou devido a tanto lixo que fizeram na última década.
Deadline nãooooo , Por favor... É só falar PRAZO, não custa nada rsrsrsrsrs
Bom aí vai depender pois minha fase EAD não foi muito boa e já falei para os meus tutores mas vou aprender sem eles
Quando o Gabriel começa a falar já coloco na velocidade 1.25 kkkkkkkkkk
@The Code Master Kkkkkkk
Esses dois dao aula?
Vocês não usam nem uma gambiarra aí kkkkk duvido. Tipo assim depois ajusto melhor kkkkk
Kkkkk tem razão será não?
Kkkkk tem razão será não?
Você vê a galera falando da teoria, mas na prática é outra coisa...
Porque não embutem essas boas práticas e padrões nas próprias ferramentas de desenvolvimento. Já seria 40% do caminho percorrido
Vou ser polêmico, Boas Práticas são: "Fazer um Software que Funcione, no menor tempo possível e obter o lucro desejado !", Pronto falei. kkk
Ah, podem me dar pancada, estou preparado. kkkkkk
Para muitas empresas é isso mesmo kkk
kk E a parte do código ser bem estruturado pra ser escalável?
Pode ser polêmico à vontade Paulo! Você é VIP, adoramos ver você por aqui. 😉
e quando precisar melhorar, demorará o máximo de tempo possível kkkkkk
Cara, sinceramente eu só vi isso.
Programação gourmet kkkkkkk ahhh se veria LinkedIn todo mundo eh clean and patterns kkkkkkk todos engenheiros de soluções que trouxeram milhões de reais para as empresas kkkkk Viva a Soberba
Quero coraçãozinho !
Sugestão: Comentem o vídeo do canal do Brian Will "Object-oriented programming is bad"! (1.2m views). Polêmico, mas interessante! (assunto relacionado ao vídeo)
a maioria das pessoas não sabe programar orientado a objeto. Poderia ser o velho estruturado que daria no mesmo. Os structs sao os objetos que só guardam dados mesmo. Não tem herança, não tem polimorfismo, nada do que é bom na OO
Pensou? não é Go Horse!
Eu discordo um pouco da opiniao de vcs. Na pratica, a politica manda mais q o tecnico. Se o chefe nao permite, nao tem oq fazer. O mercado prefere algo pronto doq bem feito, infelizmente.
No canal dev eficiente ele o Alberto faz crítica constantes a esse modelo
Eu só faço. E dá certo. E pago minhas contas. Programar já é difícil demais sem frecuras. Podem me criticar, mas é esse meu estilo. A gambiarra é uma arte subestimada!
resposta: nao são kkk
return
Opa