O documento discute projeto de APIs, abordando conceitos como aprendizado, programação, integração e boas práticas de projeto. A seção de programação destaca a importância de iniciar cedo com casos de uso e TDD, além de testar código que utiliza a API.
Nesta palestra, vemos como é a carreira de um desenvolvedor Java, falamos um pouco sobre o mercado, sobre o desenvolvimento de um profissional e damos algumas dicas de como se tornar um ninja.
1. O documento discute conceitos e tecnologias para desenvolvimento front-end como estado, APIs, frameworks e conclusões.
2. É apresentada uma comparação entre estilos imperativo e funcional e entre APIs do tipo RPC, REST e GRAPH.
3. Frameworks como Angular, React e Polymer são discutidos e a conclusão é que é importante separar a lógica da aplicação dos frameworks.
O documento fornece uma introdução sobre automação de testes de software com Selenium e BDD, focando no front-end. Ele discute conceitos como ágil, TDD, BDD, frameworks para teste end-to-end, HTML, CSS, XPath, e dá instruções sobre como configurar o ambiente de desenvolvimento com Node.js, TypeScript, Git e navegadores.
O documento apresenta as metodologias Behavior Driven Development (BDD) e Test Driven Development (TDD) usando Ruby on Rails. Discute como ferramentas como RSpec e Cucumber podem ser usadas para escrever testes de aceitação e comportamentais que guiem o desenvolvimento do código. Enfatiza os benefícios de seguir princípios de BDD/TDD como foco no comportamento, código limpo e satisfação do cliente.
DESIGNER E FRONT-END DEV: Prontos para mudar seu workflow?RC Comunicação
O documento discute as mudanças no workflow entre designers e desenvolvedores front-end, propondo um fluxo de trabalho ideal que envolve o design diretamente no navegador para permitir interatividade e versionamento, melhorando a comunicação e a produtividade da equipe.
Este documento é um capítulo de um curso sobre banco de dados com C# e Visual Studio .NET 2005. O capítulo introduz o ADO.NET, apresentando as motivações para seu desenvolvimento e as necessidades do mercado atual de acesso a dados distribuídos e em diferentes plataformas. O capítulo também inclui um exemplo prático de criação de um formulário para inserção, atualização e exclusão de registros usando ADO.NET.
[JS EXPERIENCE 2018] Do jQuery aos microfrontends: os desafios de manter uma ...iMasters
Do jQuery aos microfrontends: os desafios de manter uma aplicação web - Luiz Fernando Rodrigues, ContaAzul
[JS EXPERIENCE 2018] - 5 de julho de 2018
São Paulo/SP
Experiências, Erros e Acertos no Desenvolvimento de Projeto ÁgeisRaphael Molesim
O documento apresenta lições aprendidas pelo autor em projetos ágeis, enfatizando a importância de (1) entregar valor ao cliente o mais rápido possível, (2) manter visibilidade do projeto para todos os envolvidos, e (3) adotar postura ágil constante para lidar com problemas e mudanças.
Nesta palestra, vemos como é a carreira de um desenvolvedor Java, falamos um pouco sobre o mercado, sobre o desenvolvimento de um profissional e damos algumas dicas de como se tornar um ninja.
1. O documento discute conceitos e tecnologias para desenvolvimento front-end como estado, APIs, frameworks e conclusões.
2. É apresentada uma comparação entre estilos imperativo e funcional e entre APIs do tipo RPC, REST e GRAPH.
3. Frameworks como Angular, React e Polymer são discutidos e a conclusão é que é importante separar a lógica da aplicação dos frameworks.
O documento fornece uma introdução sobre automação de testes de software com Selenium e BDD, focando no front-end. Ele discute conceitos como ágil, TDD, BDD, frameworks para teste end-to-end, HTML, CSS, XPath, e dá instruções sobre como configurar o ambiente de desenvolvimento com Node.js, TypeScript, Git e navegadores.
O documento apresenta as metodologias Behavior Driven Development (BDD) e Test Driven Development (TDD) usando Ruby on Rails. Discute como ferramentas como RSpec e Cucumber podem ser usadas para escrever testes de aceitação e comportamentais que guiem o desenvolvimento do código. Enfatiza os benefícios de seguir princípios de BDD/TDD como foco no comportamento, código limpo e satisfação do cliente.
DESIGNER E FRONT-END DEV: Prontos para mudar seu workflow?RC Comunicação
O documento discute as mudanças no workflow entre designers e desenvolvedores front-end, propondo um fluxo de trabalho ideal que envolve o design diretamente no navegador para permitir interatividade e versionamento, melhorando a comunicação e a produtividade da equipe.
Este documento é um capítulo de um curso sobre banco de dados com C# e Visual Studio .NET 2005. O capítulo introduz o ADO.NET, apresentando as motivações para seu desenvolvimento e as necessidades do mercado atual de acesso a dados distribuídos e em diferentes plataformas. O capítulo também inclui um exemplo prático de criação de um formulário para inserção, atualização e exclusão de registros usando ADO.NET.
[JS EXPERIENCE 2018] Do jQuery aos microfrontends: os desafios de manter uma ...iMasters
Do jQuery aos microfrontends: os desafios de manter uma aplicação web - Luiz Fernando Rodrigues, ContaAzul
[JS EXPERIENCE 2018] - 5 de julho de 2018
São Paulo/SP
Experiências, Erros e Acertos no Desenvolvimento de Projeto ÁgeisRaphael Molesim
O documento apresenta lições aprendidas pelo autor em projetos ágeis, enfatizando a importância de (1) entregar valor ao cliente o mais rápido possível, (2) manter visibilidade do projeto para todos os envolvidos, e (3) adotar postura ágil constante para lidar com problemas e mudanças.
10 coisas que você precisa saber para se tornar um desenvolvedor javaMarcelo Rodrigues
1. Java é uma linguagem de programação orientada a objetos usada principalmente para desenvolvimento web.
2. É importante montar uma boa base de conhecimentos sobre conceitos de orientação a objetos e padrões de projeto.
3. Frameworks como Spring facilitam o desenvolvimento e é essencial aprender sobre tecnologias como JDBC, Hibernate e scripts do lado cliente.
Construir um framework é basicamente escrever o CSS do jeito certo, ou seja, escrever código sem dependências, modular, leve e altamente documentado.
Palestra feita pela primeira vez na QCon 2013.
DOM, CSSOM e RenderThree - Introdução ao Browser Render PathDiego Eis
Entender como funciona o processo de renderização do browser é simples e ajuda bastante na hora de pensar em performance. Nessa apresentação, mostro um pouco sobre esse processo.
Este documento fornece uma introdução sobre o que é desenvolvimento front-end, incluindo as principais tecnologias (HTML, CSS e JavaScript), boas práticas de organização de código e projetos, ferramentas, e como se manter atualizado na área.
O documento fornece dicas sobre desenvolvimento front-end, enfatizando a importância de escolher soluções simples e testadas, manter o código atualizado e dar suporte a navegadores antigos de forma progressiva. Recomenda focar no conteúdo e na acessibilidade, e estar aberto à evolução dos padrões web.
O documento descreve o papel do desenvolvedor front end, responsável por projetar e construir interfaces web de forma compatível entre navegadores e dispositivos móveis, além de produzir código limpo e otimizado para melhorar o desempenho. A interface das aplicações web está ficando mais complexa, tornando essencial a presença de um profissional especializado em front end.
1) Grails é um framework para desenvolvimento web em Java que tem como objetivos simplificar e agilizar o desenvolvimento;
2) Ele utiliza convenções que permitem gerar automaticamente código CRUD e estruturas de pastas, além de integrar perfeitamente com bibliotecas Java;
3) Sua sintaxe em Groovy torna a curva de aprendizagem quase nula para desenvolvedores Java.
Java: o que estudar para o mercado de trabalhoPedro Cavalero
Java é uma linguagem de programação compilada e interpretada criada em 1991 que utiliza uma máquina virtual para rodar em diferentes plataformas. Para o mercado de trabalho, é importante estudar principalmente a parte web de Java, usando frameworks como JSF e Struts, além de saber Javascript. Certificações como Oracle Certified Java Programmer também são valorizadas por empresas.
O documento discute como iniciar a construção de um framework CSS, incluindo por que criar ou não criar um framework, como escolher uma boa base, padronizar nomenclatura e código, e cuidados como manter uma documentação atualizada à medida que o framework evolui.
Estrutura de um Front-End eficiente (para iniciantes)Sérgio Vilar
Este documento fornece diretrizes sobre a estruturação eficiente de um front-end, incluindo a organização de pastas para CSS, imagens e JavaScript, além de recomendações sobre modularização, semântica e escrita de HTML.
O documento fornece informações sobre Java, incluindo suas versões, grupos de usuários (JUG), oportunidades de mercado, especializações, desafios e como se preparar para uma carreira em Java.
Machucando o código - Técnicas para escrever um código com uma maior legibil...Vinícius Krolow
O documento discute como programadores escrevem códigos como pequenas histórias que se interligam e passam por mudanças constantes. Várias técnicas como TDD, unit tests, frameworks, bons nomes, padrões de projeto e revisão de código ajudam os programadores a escrever APIs de alta qualidade e manter o foco na camada de negócio.
O documento apresenta Rodrigo Branas, um especialista em testes automatizados que possui 10 anos de experiência na plataforma Java. Ele é formado em Ciências da Computação e Gerenciamento de Projetos e ministra palestras sobre tópicos como testes automatizados, Clean Code e Selenium.
Desenvolvimento web ágil e descomplicado usando ruby on railsMaurício Linhares
Este documento discute o framework web Ruby on Rails, descrevendo-o como uma forma ágil e descomplicada de desenvolvimento web. O documento explica que Rails facilita o desenvolvimento web através de princípios como convenção sobre configuração e não repetir código, e fornece ferramentas como mapeamento objeto-relacional e geração de HTML que simplificam vários aspectos do desenvolvimento web. Finalmente, o documento discute quando Rails pode ou não ser apropriado para um projeto.
Slides da palestra apresentada no Tchê Linux Pelotas, sobre desenvolvimento PHP, onde mostra: ferramentas, boas práticas, frameworks e bibliotecas a serem usadas pelos profissionais PHP.
O mundo e as tecnologias estão evoluindo e sem dúvidas o JavaScript vem tomando conta de uma boa fatia do mercado atual. E não se engane pois o WordPress não vai ficar de fora dessa!
Nessa palestra vou te mostrar porque você deve aprender JavaScript pra ontem!
Você verá tudo que está sendo feito hoje e o que vem sendo pesquisado para o amanhã em relação ao WordPress.
O documento introduz React Native, uma biblioteca criada pelo Facebook para desenvolvimento de aplicativos móveis usando Javascript e React, permitindo criar interfaces nativas com componentes reutilizáveis. A biblioteca não usa HTML, mas possui componentes como View e Text, e folhas de estilo em Javascript para estilização. O documento também discute por que usar React Native, empresas que o usam e preparação do ambiente de desenvolvimento.
Design para WordPress- Anyssa Ferreira - WordCamp BH 2015Anyssa Ferreira
O documento fornece diretrizes para desenvolvimento de layouts web, incluindo a utilização de ferramentas como Sketch ou Adobe XD ao invés de Photoshop, definição de grids, estilos, imagens e pontos de quebra para responsividade.
O documento discute engenharia de frontend de alta performance, incluindo conceitos como sprites, CSS, JavaScript e HTML para melhorar o desempenho de sites. Ele também lista ferramentas e conhecimentos importantes para engenheiros front-end.
O documento discute os princípios de código limpo, incluindo: (1) código limpo deve ser eficiente e ter lógica direta para minimizar bugs, (2) deve ter poucas dependências, e (3) deve ser legível para facilitar manutenção. Ele também fornece dicas como usar nomes significativos e formatar código claramente.
O documento discute os princípios do código limpo, incluindo a importância de nomes claros, comentários úteis, métodos pequenos e testes abrangentes. Ele também aborda tópicos como arquitetura, design, programação em pares e como escrever código de alta qualidade.
10 coisas que você precisa saber para se tornar um desenvolvedor javaMarcelo Rodrigues
1. Java é uma linguagem de programação orientada a objetos usada principalmente para desenvolvimento web.
2. É importante montar uma boa base de conhecimentos sobre conceitos de orientação a objetos e padrões de projeto.
3. Frameworks como Spring facilitam o desenvolvimento e é essencial aprender sobre tecnologias como JDBC, Hibernate e scripts do lado cliente.
Construir um framework é basicamente escrever o CSS do jeito certo, ou seja, escrever código sem dependências, modular, leve e altamente documentado.
Palestra feita pela primeira vez na QCon 2013.
DOM, CSSOM e RenderThree - Introdução ao Browser Render PathDiego Eis
Entender como funciona o processo de renderização do browser é simples e ajuda bastante na hora de pensar em performance. Nessa apresentação, mostro um pouco sobre esse processo.
Este documento fornece uma introdução sobre o que é desenvolvimento front-end, incluindo as principais tecnologias (HTML, CSS e JavaScript), boas práticas de organização de código e projetos, ferramentas, e como se manter atualizado na área.
O documento fornece dicas sobre desenvolvimento front-end, enfatizando a importância de escolher soluções simples e testadas, manter o código atualizado e dar suporte a navegadores antigos de forma progressiva. Recomenda focar no conteúdo e na acessibilidade, e estar aberto à evolução dos padrões web.
O documento descreve o papel do desenvolvedor front end, responsável por projetar e construir interfaces web de forma compatível entre navegadores e dispositivos móveis, além de produzir código limpo e otimizado para melhorar o desempenho. A interface das aplicações web está ficando mais complexa, tornando essencial a presença de um profissional especializado em front end.
1) Grails é um framework para desenvolvimento web em Java que tem como objetivos simplificar e agilizar o desenvolvimento;
2) Ele utiliza convenções que permitem gerar automaticamente código CRUD e estruturas de pastas, além de integrar perfeitamente com bibliotecas Java;
3) Sua sintaxe em Groovy torna a curva de aprendizagem quase nula para desenvolvedores Java.
Java: o que estudar para o mercado de trabalhoPedro Cavalero
Java é uma linguagem de programação compilada e interpretada criada em 1991 que utiliza uma máquina virtual para rodar em diferentes plataformas. Para o mercado de trabalho, é importante estudar principalmente a parte web de Java, usando frameworks como JSF e Struts, além de saber Javascript. Certificações como Oracle Certified Java Programmer também são valorizadas por empresas.
O documento discute como iniciar a construção de um framework CSS, incluindo por que criar ou não criar um framework, como escolher uma boa base, padronizar nomenclatura e código, e cuidados como manter uma documentação atualizada à medida que o framework evolui.
Estrutura de um Front-End eficiente (para iniciantes)Sérgio Vilar
Este documento fornece diretrizes sobre a estruturação eficiente de um front-end, incluindo a organização de pastas para CSS, imagens e JavaScript, além de recomendações sobre modularização, semântica e escrita de HTML.
O documento fornece informações sobre Java, incluindo suas versões, grupos de usuários (JUG), oportunidades de mercado, especializações, desafios e como se preparar para uma carreira em Java.
Machucando o código - Técnicas para escrever um código com uma maior legibil...Vinícius Krolow
O documento discute como programadores escrevem códigos como pequenas histórias que se interligam e passam por mudanças constantes. Várias técnicas como TDD, unit tests, frameworks, bons nomes, padrões de projeto e revisão de código ajudam os programadores a escrever APIs de alta qualidade e manter o foco na camada de negócio.
O documento apresenta Rodrigo Branas, um especialista em testes automatizados que possui 10 anos de experiência na plataforma Java. Ele é formado em Ciências da Computação e Gerenciamento de Projetos e ministra palestras sobre tópicos como testes automatizados, Clean Code e Selenium.
Desenvolvimento web ágil e descomplicado usando ruby on railsMaurício Linhares
Este documento discute o framework web Ruby on Rails, descrevendo-o como uma forma ágil e descomplicada de desenvolvimento web. O documento explica que Rails facilita o desenvolvimento web através de princípios como convenção sobre configuração e não repetir código, e fornece ferramentas como mapeamento objeto-relacional e geração de HTML que simplificam vários aspectos do desenvolvimento web. Finalmente, o documento discute quando Rails pode ou não ser apropriado para um projeto.
Slides da palestra apresentada no Tchê Linux Pelotas, sobre desenvolvimento PHP, onde mostra: ferramentas, boas práticas, frameworks e bibliotecas a serem usadas pelos profissionais PHP.
O mundo e as tecnologias estão evoluindo e sem dúvidas o JavaScript vem tomando conta de uma boa fatia do mercado atual. E não se engane pois o WordPress não vai ficar de fora dessa!
Nessa palestra vou te mostrar porque você deve aprender JavaScript pra ontem!
Você verá tudo que está sendo feito hoje e o que vem sendo pesquisado para o amanhã em relação ao WordPress.
O documento introduz React Native, uma biblioteca criada pelo Facebook para desenvolvimento de aplicativos móveis usando Javascript e React, permitindo criar interfaces nativas com componentes reutilizáveis. A biblioteca não usa HTML, mas possui componentes como View e Text, e folhas de estilo em Javascript para estilização. O documento também discute por que usar React Native, empresas que o usam e preparação do ambiente de desenvolvimento.
Design para WordPress- Anyssa Ferreira - WordCamp BH 2015Anyssa Ferreira
O documento fornece diretrizes para desenvolvimento de layouts web, incluindo a utilização de ferramentas como Sketch ou Adobe XD ao invés de Photoshop, definição de grids, estilos, imagens e pontos de quebra para responsividade.
O documento discute engenharia de frontend de alta performance, incluindo conceitos como sprites, CSS, JavaScript e HTML para melhorar o desempenho de sites. Ele também lista ferramentas e conhecimentos importantes para engenheiros front-end.
O documento discute os princípios de código limpo, incluindo: (1) código limpo deve ser eficiente e ter lógica direta para minimizar bugs, (2) deve ter poucas dependências, e (3) deve ser legível para facilitar manutenção. Ele também fornece dicas como usar nomes significativos e formatar código claramente.
O documento discute os princípios do código limpo, incluindo a importância de nomes claros, comentários úteis, métodos pequenos e testes abrangentes. Ele também aborda tópicos como arquitetura, design, programação em pares e como escrever código de alta qualidade.
O Programador Pragmático se concentra no processo fundamental do desenvolvimento de software:
a partir de um requisito, produzir código funcional e de fácil manutenção que agrade aos usuários.
Sem se ater a uma tecnologia específica, esta obra aborda tópicos que vão do desenvolvimento da carreira a técnicas de projeto para manter seu código flexível e fácil de adaptar
A apresentação introduz o Behavior-Driven Development (BDD) utilizando a ferramenta JBehave. O palestrante explica os conceitos por trás do BDD, como se relaciona com TDD e DDD, e demonstra um exemplo prático utilizando JBehave em português.
Este documento resume os principais conceitos e dicas de programação pragmática. Ele descreve o perfil do programador pragmático, enfatizando a adoção rápida de novas tecnologias e o pensamento crítico. Também discute abordagens como evitar duplicação de código, manter sistemas ortogonais e a importância de estimativas realistas e testes.
1) O documento apresenta os papéis e técnicas de automação de testes para equipes ágeis, discutindo como a automação pode ajudar a resolver problemas como falta de tempo para testar e garantir a qualidade ao longo dos sprints. 2) É destacado que nem todos os casos de teste devem ser automatizados e que é importante separar os ambientes de desenvolvimento e teste. 3) A apresentação discute diferentes níveis de automação, desde scripts lineares até abordagens data-driven e keyword-driven, concluindo que a combinação das últimas é a melhor opção
O documento discute arquitetura web e desenvolvimento para a web. Ele apresenta três evoluções na abordagem de desenvolvimento, começando por separar a lógica da apresentação, depois introduzindo o padrão MVC, e finalmente focando no Domain-Driven Design. O documento também discute tecnologias como Java EE, EJB, JPA e JSF que podem ser usadas para implementar uma arquitetura web robusta.
Algumas dicas que servem para ajudar quando vamos desenvolver códigos com mais precisão, empatia e legibilidade. Essa apresentação tem base do Clean Code do Uncle Bob.
Palestra sobre Clean Code ministrada na Benner em Outubro de 2018. Baseada no livro Clean Code do Uncle Bob (Robert Cecil Martin).
Código fonte em: https://github.com/paulohs/CleanCodeSample/
Clean Code: Por um mundo com códigos melhores - SETI 2017Thiago Barradas
O documento apresenta os principais pontos para se escrever código limpo de forma concisa e eficiente, incluindo nomenclatura, classes, métodos, condições, objetos, abstração, comentários, formatação, exceções e testes. O objetivo é promover um mundo com códigos melhores e de mais fácil manutenção.
O documento discute os benefícios de adotar frameworks para desenvolvimento de software. O autor argumenta que frameworks aumentam a produtividade, facilitam a manutenção do código e promovem boas práticas de programação orientada a objetos. Ele também fornece dicas para iniciar o uso de frameworks e menciona algumas opções populares como Laravel e Django.
Este documento fornece uma introdução à análise orientada a objetos, discutindo conceitos como modelagem de domínio, modelagem eficiente, conhecimento compartilhado e implementação iterativa. Inclui exemplos de modelagem de sistemas como um simulador de rotas de rede.
O documento discute os principais aspectos de desenvolvimento de sites, incluindo escolha de ferramentas, linguagens de programação, bancos de dados, estrutura, padrões web, acessibilidade e testes.
O documento discute anti-padrões de programação PHP, como fazer coisas erradas e evitar. Ele explica o que são anti-padrões e por que devemos conhecê-los, e discute exemplos específicos como "spaghetti code" e "overdesign". O documento encoraja os desenvolvedores a pensarem em segurança, usar frameworks e seguir padrões comprovados.
É possível ter Zero Bugs em seu projeto? Nessa apresentação vocês terão acesso as técnicas efetivas de programação para chegar a esse objetivo, são boas práticas que farão uma diferença gigantesca em seu projeto!
Juliana Fideles apresenta sobre código limpo em uma palestra na 25a Semana da Tecnologia da Fatec Sorocaba. Ela discute princípios como usar nomes significativos, estruturar o código em funções menores, e tratar erros com exceções. O objetivo é escrever código que seja fácil de ler, modificar e expandir no futuro.
A apresentação discute os princípios de código limpo com base no livro Clean Code e experiência profissional. Os tópicos incluem nomes significativos, funções pequenas, comentários úteis, formatação consistente e uso apropriado de objetos versus estruturas de dados. O objetivo é mostrar como escrever código de alta qualidade que é fácil de manter e modificar.
Nessa palestra relato minha experiência não como um desenvolvedor de software altamente sinistro com duzentos anos de experiência e mil livros publicados - mas sim como um "mero mortal", um desenvolvedor "de verdade", do "mundo real" aplicando a teoria que aprendeu do TDD.
Não deixe seu projeto só nas mãos do frameworkGiuseppe Lopes
O documento discute a importância de não depender apenas do framework para o desenvolvimento de projetos, mas sim de entender os princípios de back-end e de escolher o framework correto para o projeto. Também apresenta exemplos de frameworks populares e um caso de sucesso do Instagram, desenvolvido inicialmente por dois programadores sem muita experiência em back-end.
O documento apresenta um treinamento sobre desenvolvimento de software limpo e qualidade de código. Ele discute princípios como clean code, boas práticas de programação, ferramentas para teste e controle de versão que auxiliam na manutenção de código limpo e de qualidade.
Design System as a Product - Maria Elena Duenias, Esther Butcher
Design systems are a great example where web development and design meet. You can find innumerable resources on the internet, books and conferences on how to build them, and how they are exactly what your organization needs. But, building one requires a lot more than following a recipe. In this talk we are going to discuss how to build a design system as an internal product, and how it evolves to become what the users need.
Designers, Developers and Dogs: Finding the magic balance between product and tech - Charlotte Vorbeck, ShareNow and Sahil Bajaj
How can an agile delivery team become a successful product team? When does collaboration between product and tech succeed and when not? Why do people in some teams inspire each other while others in the same environment don't speak the same language? In this talk we want to share our learnings and experiences from rebuilding an internal tool for customer support at ShareNow. What could have been just another boring rewrite surprisingly became one of our best experiences in collaboration. We will look at how a joint discovery phase helped us to come up with a shared vision, how a better team setup enabled us to do the necessary work, how focusing on the customer kept us aligned during our journey, and also how we built upon existing collaborative techniques to achieve this new level of cooperation and trust.
During this presentation, Ward Coessens, ThoughtWorks' Consultant will share best practice insights from the Daimler partnership, helping the automotive group on their cloud innovation journey.
How to create more business impact with flexible teams - Jan Hegewald, Zalando & Rebekka Beels, Zalando
Usually, Software Engineering teams are organized around a fixed set of components which they develop further and maintain. Such component teams gain a high level of expert knowledge about their services. However, with agile product development, it often is difficult to implement the most important initiatives with such teams. This leads to a situation where the teams do not work on the most relevant business topics but on those for the respective team. At Zalando, we introduced a new model where we shape teams flexibly around business goals to create the highest impact. How we organize these teams and which challenges especially for the software quality need to be addressed, will be explored in this talk.
Amazon’s Culture of Innovation & The Working Backwards session
Working Backwards; leading organisations achieve growth by marrying customer-obsession with a modern technology strategy. Where do you begin? By focusing on the customer.
During this webinar, Amazon will discuss key innovation principles which have been instrumental in their continued success and their Working Backwards approach.
Dual-Track Agile for Discovery & Development - Adriana Katrandzhieva
The talk will focus on one of the ways teams can ensure continuous delivery and design in their projects. The so-called ‘Dual-track’ model shows the parallel tracks of discovery and development throughout the product design and delivery process. These continually feedback into each other informing new hypothesis that can be tested in order to be proven/disproven. This model is not always easy to implement out of the box and so I will share my own experiences in applying it in practice - what worked, what didn't and how the model can be adjusted to fit different teams and organisational environments.
This document discusses developer experience (DX) and how to design for it. It begins with introductions of the presenters and defines DX as the experience developers have when using a product. It then discusses understanding developer pain points and personas, designing the developer journey, and using different interfaces like APIs, portals, and CLIs. The document outlines challenges in the design process like getting buy-in and measuring DX metrics. It argues that improving DX benefits business goals like enabling experiments, increasing flexibility, and attracting talent. It concludes that developers are also users and designers, and that DX is important to consider for business reasons.
When we design together - Sabrina Mach, Ammara Gafoor and James Emmott
From three distinct perspectives, this talk will contend that design is an activity undertaken by everyone in a software development team. It occurs throughout the process of delivery — not only at the beginning or the end — and it is a powerful instrument for learning about and adapting to the problems our work seeks to solve, which is a shared responsibility. Making the best use of our multidisciplinary expertise in the activity of design requires forms of collaboration that are too often disrupted by the role-based silos that keep us separated and weaken the valuable contribution our diverse approaches could make to our collective efforts. If you care about accelerating time to market, improving customer experience, or building happy and productive teams, you will want to know why and how it matters that we believe ‘design is in everything that we do’.
Hardware is hard(er): designing for distributed user experiences in IoT - Claire Rowland, www.clairerowland.com
Designing connected devices and hardware-enabled services is significantly more complex than pure software. There are more devices on which code can run, connectivity and data sharing patterns to consider, and often multiple and varied touchpoints for users to interact with. Pulling this all together into a coherent experience involves strong collaboration between design and engineering, and a systems thinking approach to UX. In this talk, we’ll introduce what designers need to know about the tech, what engineers need to know about UX for IoT, and how to facilitate the whole-collaboration needed to create great products.
www.clairerowland.com
Customer-centric innovation enabled by cloudThoughtworks
Working Backwards - Leading organisations achieve growth by marrying customer-obsession with a modern technology strategy. In this upcoming webinar, we’ve partnered with AWS to bring you exclusive insights from one of the world’s most innovative companies, Amazon.
The document discusses Amazon's culture of innovation. It emphasizes starting with the customer and working backwards to develop solutions. Amazon focuses on small, autonomous teams that are nimble and own their work. The company's leadership principles guide decision-making and encourage inventiveness, customer obsession, high standards, and long-term thinking to solve customer problems.
The document discusses techniques for establishing shorter feedback loops between developing features and measuring user behavior, including:
1) Shadow traffic which runs new and old features simultaneously to get early feedback without users noticing a difference.
2) Visual reports which assess the quality of a feature through a report (e.g. HTML page) of key metrics.
3) A/B testing which statistically compares user behavior between a control and test group after exposing each to a different variant of a feature. Sample size considerations and statistical significance are discussed.
As a tech leader at ThoughtWorks, a large part of my job involves recommending practices to our clients so they can build and deliver good quality software faster. In doing so repeatedly for many clients I have created a toolkit that contains practical advice from being on the ground. This is what we do, we know it works. When Julius Caesar entered Rome with his army by crossing the river Rubicon, he did something that couldn’t be undone ever again. In your journey as a leader, avoid mistakes that are difficult to correct later. Here are a set of practices that you want to adopt as soon as possible.
Handling error conditions is a core part of the software we write. However, we often treat it as a second class citizen, obscuring our intent through abuse of null values and exceptions that make our code hard to understand and maintain. In the functional programming community, it is common to use datatypes such as Option, Either or Validated to make our intentions explicit when dealing with errors. We can leverage the compiler to verify that we are handling them instead of hoping for the best at runtime. This results in code that is clearer, without hidden path flows. We’ll show how we have been doing this in Kotlin, with the help of the Arrow library.
Mutation testing in software development surfaced in academia during the 70's and has recently seen a resurgence in popularity as a legitimate tool in your testing arsenal. In this session we review the conventional testing pyramid, modern approaches to testing software and look at how mutation testing can help fill in those blind spots.
The document discusses security challenges and best practices for Docker containers. It outlines risks at different stages of the container lifecycle from image development to deployment. Key risks include lack of isolation, complex ecosystems, and known vulnerabilities. The document recommends practices like using linting and scanning during development, restricting resources and access controls at deployment, and signing images from trusted sources to improve container security.
Mainframes handle 30 billion business transactions each day and 87% of all credit card transactions*, they are not traditionally associated with flexible, fail-fast development approaches. Can we bring the practices of agile, CI/CD and fully automated deployments to applications running on a mainframe? During our talk, we'll tell you a story about test automation; redefining the smallest testable unit of a program. And we'll discuss our learnings from introducing continuous integration and agile practices to the world of insurance and mainframes.
*9 Mainframe statistics that may surprise you
ThoughtWorks' Lucy Kurian, James Lewis & Kief Morris discuss tech trends in our latest Technology Radar, covering techniques, platforms, tools, languages and frameworks.
The document discusses the benefits of exercise for mental health. Regular physical activity can help reduce anxiety and depression and improve mood and cognitive functioning. Exercise boosts blood flow, releases endorphins, and promotes changes in the brain which help regulate emotions and stress levels.
The document discusses the benefits of exercise for mental health. Regular physical activity can help reduce anxiety and depression and improve mood and cognitive function. Exercise causes chemical changes in the brain that may help protect against mental illness and improve symptoms.
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...Faga1939
Este artigo tem por objetivo apresentar como ocorreu a evolução do consumo e da produção de energia desde a pré-história até os tempos atuais, bem como propor o futuro da energia requerido para o mundo. Da pré-história até o século XVIII predominou o uso de fontes renováveis de energia como a madeira, o vento e a energia hidráulica. Do século XVIII até a era contemporânea, os combustíveis fósseis predominaram com o carvão e o petróleo, mas seu uso chegará ao fim provavelmente a partir do século XXI para evitar a mudança climática catastrófica global resultante de sua utilização ao emitir gases do efeito estufa responsáveis pelo aquecimento global. Com o fim da era dos combustíveis fósseis virá a era das fontes renováveis de energia quando prevalecerá a utilização da energia hidrelétrica, energia solar, energia eólica, energia das marés, energia das ondas, energia geotérmica, energia da biomassa e energia do hidrogênio. Não existem dúvidas de que as atividades humanas sobre a Terra provocam alterações no meio ambiente em que vivemos. Muitos destes impactos ambientais são provenientes da geração, manuseio e uso da energia com o uso de combustíveis fósseis. A principal razão para a existência desses impactos ambientais reside no fato de que o consumo mundial de energia primária proveniente de fontes não renováveis (petróleo, carvão, gás natural e nuclear) corresponde a aproximadamente 88% do total, cabendo apenas 12% às fontes renováveis. Independentemente das várias soluções que venham a ser adotadas para eliminar ou mitigar as causas do efeito estufa, a mais importante ação é, sem dúvidas, a adoção de medidas que contribuam para a eliminação ou redução do consumo de combustíveis fósseis na produção de energia, bem como para seu uso mais eficiente nos transportes, na indústria, na agropecuária e nas cidades (residências e comércio), haja vista que o uso e a produção de energia são responsáveis por 57% dos gases de estufa emitidos pela atividade humana. Neste sentido, é imprescindível a implantação de um sistema de energia sustentável no mundo. Em um sistema de energia sustentável, a matriz energética mundial só deveria contar com fontes de energia limpa e renováveis (hidroelétrica, solar, eólica, hidrogênio, geotérmica, das marés, das ondas e biomassa), não devendo contar, portanto, com o uso dos combustíveis fósseis (petróleo, carvão e gás natural).
Em um mundo cada vez mais digital, a segurança da informação tornou-se essencial para proteger dados pessoais e empresariais contra ameaças cibernéticas. Nesta apresentação, abordaremos os principais conceitos e práticas de segurança digital, incluindo o reconhecimento de ameaças comuns, como malware e phishing, e a implementação de medidas de proteção e mitigação para vazamento de senhas.
Este certificado confirma que Gabriel de Mattos Faustino concluiu com sucesso um curso de 42 horas de Gestão Estratégica de TI - ITIL na Escola Virtual entre 19 de fevereiro de 2014 a 20 de fevereiro de 2014.
As classes de modelagem podem ser comparadas a moldes ou
formas que definem as características e os comportamentos dos
objetos criados a partir delas. Vale traçar um paralelo com o projeto de
um automóvel. Os engenheiros definem as medidas, a quantidade de
portas, a potência do motor, a localização do estepe, dentre outras
descrições necessárias para a fabricação de um veículo
4. ¡ Web
(SOAP,
REST,
etc)
¡ SO
(Unix,
Windows,
etc)
¡ Linguagens
de
Programação
(C++,
Java,
etc)
¡ Protocolos
(Java
–
RMI
à
IIOP)
5. É
uma
coleção
de:
§ Funções,
Classes,
Tipos
de
Dados
§ Eventos,
Protocolos,
Arquivos,
etc.
Onde
temos
um
sistema
Que
se
comunica
Com
outro
Através
dessas
Coleções
6. É
uma
coleção
de:
• Funções,
Classes,
Tipos
de
Dados
• Eventos,
Protocolos,
Arquivos,
etc.
Onde
temos
um
sistema
Que
se
comunica
Com
outro
Através
dessas
Coleções
Biblioteca,
Componente,
Framework,
Sistema
Operacional,
Recurso
na
Web,
Etc.
9. Se
você
programa,
então
você
provavelmente
trabalha
com
módulos
ou
pelo
menos
deveria.
Bons
programas
são
modulares
e
cada
módulo
deve
ter
uma
API.
Pensar
em
termos
de
API
melhora
a
qualidade
do
código.
10. Uma
API
pode
ser
um
dos
maiores
tesouros
de
uma
empresa.
Clientes
investem
ao
integrar
uma
API.
"A
key
lesson
here
is
that
API
is
not
just
a
documented
class.
And,
APIs
don't
just
happen;
they
are
a
big
investment."
Erich
Gamma.
11. ¡ Clientes
investem:
comprando,
escrevendo
e
aprendendo
¡ APIs
promovem
a
reutilização
e
reduz
custos
¡ O
custo
em
parar
de
usar
uma
API
pode
ser
proibitivo
¡ APIs
públicas
de
sucesso
captam
clientes
12. APIs
também
podem
ser
um
dos
maiores
débitos
de
uma
empresa.
Podem
resultar
em
intermináveis
chamadas
ao
suporte.
”Public
APIs
like
diamonds,
are
forever.
You
have
one
chance
to
get
it
right
So
give
it
your
best."
Joshua
Bloch.
13.
Intuitiva
14. ¡ Fácil
de
aprender
¡ Fácil
de
usar,
mesmo
sem
documentação
¡ Difícil
de
usar
incorretamente
¡ Fácil
de
estender
¡ Fácil
de
ler
e
manter
o
código
que
a
usa
¡ Focada
em
um
propósito
¡ Poderosa
o
bastante
para
atender
os
requisitos
¡ Apropriada
e
direcionada
a
um
público
¡ Bem
documentada
(exemplar)
16. ¡ Iniciando
um
projeto
de
API
¡ Princípios
de
projeto
¡ Projeto
de
classes
17. 1) Liste
os
requisitos
2) Valide-‐os
escrevendo
casos
de
uso
3) Escreva
código
para
cada
caso
de
uso
Faça
tudo
sob
a
perspectiva
do
usuário
da
API
Envolva
mais
pessoas
o
quanto
possível
nesse
processo
18. ¡ Escreva-‐os
em
não
mais
do
que
uma
página
§ Quanto
menor
melhor
(estamos
começando)
§ Fácil
de
compartilhar
e
modificar
¡ Valide-‐os
em
caso
de
uso
R:
Deveríamos
ter
um
programa
para
gerar
boletos
do
Bradesco
e
salvar
o
código
de
barras
no
banco
de
dados
para
controlar
a
cobrança.
Caso
de
Uso:
Gerar
boleto
para
banco
Bradesco
Caso:
Obter
código
de
barras
do
boleto
gerado
C:
Salvar
boleto
gerado
em
PDF
19. ¡ Codifique
o
mais
cedo
possível
¡ Comece
sem
realmente
implementar
Caso
de
Uso:
Gerar
boleto
para
banco
Bradesco
✓ Perspectiva
do
usuário
public
static
void
main..
{
Boleto
boleto
=
new
Boleto(Banco.Bradesco);
}
✓ Perspectiva
Implementação
class
Boleto{
private
String
codigoDeBarras;
...
}
20. Melhor
do
que
começar
a
implementar
cedo
é
começar
com
TDD
mesmo
para
rascunho
¡ Ajuda
manter
visível
apenas
o
que
interessa
¡ Gera
exemplos
de
uso
sempre
atualizados
¡ Direciona
o
design
¡ Evita
implementar
casos
que
seriam
descartados
¡ Evita
surpresas
desagradáveis
21. Além
de
usar
TDD
no
desenvolvimento
da
API
escreva
testes
para
o
código
que
utiliza
a
API
de
fato
Muitas
dependências,
métodos
complicados
e
outros
mal
cheiros
podem
ser
identificados
e
levar
o
design
à
uma
nova
direção
22. Golden
Rule
of
API
Design
”It’s
not
enough
to
write
tests
for
an
API
you
develop;
you
have
to
write
unit
tests
for
code
that
uses
your
API.
When
you
follow
this
rule,
you
learn
firsthand
the
hurdles
that
your
users
will
have
to
overcome
when
they
try
to
test
their
code
independently.”
Michael
Feathers,
(97
Things
Every
Programmer
Should
Know)
23. Caso
de
Uso:
Gerar
boleto
para
banco
Bradesco
public
void
deveGerarBoletoBradescoCorretamenteNaMinhaAplicacao(){
Boleto
boletoEsperado
=
mock(Boleto.class);
BoletoViewer
boletoViewer
=
mock(BoletoViewer
.class);
when(boletoViewer
.getBoleto()).thenReturn(boletoEsperado);
MeuGeradorDeBoleto
geradorDeBoleto
=
new
MeuGeradorDeBoleto(boletoViewer
);
Boleto
boletoGerado
=
geradorDeBoleto.gereBoletoCom(dadosDoMeuUsuario);
assertThat(boletoGerado,
equalTo(boletoEsperado));
}
24. Codifique
cedo
e
frequentemente
¡ Comece
antes
de
fato
implementar
(TDD)
¡ Escreva
testes
de
código
que
usa
API
¡ Escreva
exemplos
na
medida
que
progride
§ Lembre-‐se
uma
API
boa
é
exemplar
§ Exemplos
bons
tornam
API
fácil
de
entender
§ Exemplos
ruins
disseminam
o
mal
uso,
geram
bugs,
perguntas
em
fóruns
e
+
problemas
25. Seja
realista
e
mantenha
o
foco
no
propósito
¡ Muitos
dos
projetos
de
APIs
são
restritivos
§ Não
tente
agradar
a
todos
§ Tente
desagradar
a
todos
igualmente
26. Tente
pensar
antecipadamente,
mas..
¡ Espere
por
cometer
erros
§ Em
poucos
anos
de
uso
da
API
eles
surgirão
§ Espere
por
evoluir
a
API
27. ¡ Iniciando
um
projeto
de
API
¡ Princípios
de
projeto
¡ Projeto
de
classes
28. API
deve
fazer
o
que
se
propõe
a
fazer
e
deve
fazer
bem
¡ Siga
o
princípio
de
responsabilidade
única
¡ Tente
manter
tudo
o
mais
simples
possível
¡ A
funcionalidade
deve
ser
fácil
de
explicar
§ Se
está
difícil
nomear,
algo
pode
estar
errado
§ Bons
nomes
guiam
o
desenvolvimento
§ Estar
suscetível
a
divisão
ou
fusão
de
módulos
29. API
deve
ser
o
mais
simples
possível,
mas
não
simplória
¡ Deve
satisfazer
os
requisitos
¡ Os
conceitos
extraídos
são
o
mais
importante
¡ Procure
uma
boa
proporção
de
poder/massa
¡ A
massa
conceitual
é
mais
importante
que
a
estrutural
30. API
deve
ser
tão
pequena
quanto
possível,
mas
não
a
menor
Na
dúvida,
deixe
de
fora
¡ Funcionalidades,
classes,
métodos,
etc
¡ Sempre
pode-‐se
adicionar,
mas
não
remover
¡ Quanto
mais
coisa,
mais
difícil
de
se
aprender
¡ Quanto
mais
coisa,
mais
pode
dar
errado
31. Nomes
são
especiais
porque
eles
compõem
o
vocabulário
da
API
Escolha
nomes
pronunciáveis
e
memoráveis
¡ Bons
nomes
surgem
do
domínio
do
problema
§ São
familiares,
intuitivos
e
com
significado
¡
Bons
nomes
são
auto
explicativos
§ Evite
abreviações
32. Não
me
faça
pensar
O
código
deve
ser
lido
como
uma
prosa
Caso
de
Uso:
Gerar
boleto
para
banco
Bradesco
Boleto
boleto
=
Cobranca.gere()
.para(Banco.Bradesco)
.com(vencimentoAtual)
.com(valorAtual)
.boleto();
!
Código
que
usa
objetos
da
API
jrimum.org/bopepo
33. Seja
Consistente
¡ Mesma
palavra
=
significa
mesma
coisa
¡ Busque
simetria
e
consistência
§ Faça
a
mesma
coisa
do
mesmo
jeito
§ Por
toda
API,
plataforma,
ambiente,
etc
§ Inconsistência
aparece
por
que
você
mudou
de
ideia
com
o
tempo
§ Faça
revisões
de
código
para
manter
tudo
alinhado
com
o
time
34. Coisas
similares
devem
se
parecer
com
coisas
similares
Caso
de
Uso:
Gerar
boleto
para
banco
Bradesco
BoletoViewer
boleto
=
new
BoletoViewer(dados)
.comTemplate(arquivoPersonalizado)
.gerePdf();
Caso
de
Uso:
Gerar
guia
de
arrecadação
e
recebimento
banco
BB
GuiaViewer
guia
=
new
GuiaViewer(dados)
.comTemplate(arquivoPersonalizado)
.gerePdf();
35. Minimize
o
acesso
a
tudo
¡ Tudo
deve
ter
o
mínimo
privilégio
de
acesso
§ Promove
o
ocultamento
de
informação
§ Classes
e
membros
devem
ter
acesso
privado
sempre
que
possível
§ Classes
públicas
não
devem
ter
membros
públicos,
com
exceção
de
constantes
36. A
implementação
é
um
detalhe
¡ Detalhes
de
implementação
tem
impacto
§ Confundem
usuários
§ Dificultam
o
entendimento
¡ Saiba
identificá-‐los
§ Parâmetros
para
otimização,
formato
de
dados
(file,
connection,
etc),
dependência
de
outras
APIs
¡ Não
deixe
vazarem
pela
API
§ Exceções,
formatos
de
dados,
etc
37. Documente
cedo,
frequentemente
e
sempre
¡ Documente
todo
parâmetro,
método,
construtor,
classe,
interface
e
exceção
¡ Mantenha
sempre
atualizada
¡ “O
que?”
e
“Como?”
devem
estão
sempre
presentes
¡ “Porque”
também
explicando
decisões
tomadas,
padrões
adotados,
etc
38. Documente
para
cada
situação
específica
¡ Documentação
de
referência
§ Javadoc
e
similares
¡ Tutorias
§ Como
começar
rapidamente
e
fazer
algo
de
valor
§ O
que
posso
fazer
em
2
minutos
§ Como
gerar
um
boleto
personalizado
¡ Guia
do
programador
§ Introdução,
glossário,
conceitos,
padrões,
etc
39. Sua
API
deve
ser
sinérgica
em
relação
a
Plataforma
¡ Faça
o
que
é
usual
e
convencionado
§ Siga
as
convenções
de
nomes
§ Imite
os
bons
padrões
das
APIs
da
linguagem
¡ Conheça
bem
a
plataforma
e
a
linguagem
§ Funcionalidades
amigáveis
devem
ser
utilizadas:
generics,
varargs,
enums,
default
arguments
¡ Também
conheça
armadilhas
e
ciladas
§ Finalizers,
permgen,
garbage
collector,
etc
40. Lembre-‐se
que
decisões
no
projeto
poderão
afetar
a
performance
¡ Decisões
ruins
podem
limitar
a
performance
§ Fazendo
um
tipo
mutável
ou
imutável
§ Usando
uma
implementação
no
lugar
de
uma
interface
§ Oferecendo
um
construtor
no
lugar
de
um
factory
method
41. Lembre-‐se
que
decisões
no
projeto
poderão
afetar
a
performance
¡ Decisões
ruins
podem
limitar
a
performance
§ Fazendo
um
tipo
mutável
ou
imutável
§ Usando
uma
implementação
no
lugar
de
uma
interface
§ Oferecendo
um
construtor
no
lugar
de
um
factory
method
42. ¡ Iniciando
um
projeto
de
API
¡ Princípios
de
projeto
¡ Projeto
de
classes
43. Quando
criar
um
tipo?
¡ Quando
existir
um
comportamento
específico
e
que
um
tipo
existente
não
suporte
¡ Quando
é
um
conceito
chave
no
domínio
Ex:
CEP,
CPF,
CodigoDeBarras,
Pagador,
Boleto,
..
44. Tipos
de
domínio
são
melhores
do
que
strings
”String
é
uma
estrutura
de
dados
rigorosa
e
exige
muita
duplicação
de
processo
em
qualquer
lugar
para
o
qual
seja
passada.
É
um
veículo
perfeito
para
ocultar
informações"
“The
string
is
a
stark
data
structure
and
everywhere
it
is
passed
there
is
much
duplication
of
process.
It
is
a
perfect
vehicle
for
hiding
information.”
Alan
Perlis.
45. Transforme
objetos
de
domínio
em
Objetos
de
Valor
(Tiny
Types
or
Value
Object
DDD)
¡ Projete-‐os
imutáveis
a
menos
que
tenha
uma
boa
razão
para
o
contrário
Ex:
CEP,
CPF,
CodigoDeBarras,
Boleto,
..
46. Minimize
a
Mutabilidade
¡ Classes
devem
ser
imutáveis,
a
não
ser
que
haja
uma
boa
razão
para
fazer
o
contrário
§ Vantagens:
simples,
thread-‐safe,
reutilizável
§ Desvantagens:
determina
um
objeto
para
cada
valor
¡ Se
mutável,
manter
o
espaço
de
estados
pequeno
e
bem
definido
§ Deixe
claro
quando
é
legal
chamar
qual
método.
Bom:
LocalDate,
Duration,
Instant
Ruim:
Date,
Calendar
47. Subclasse
somente
onde
faz
sentido
¡ Extensão
implica
em
substituição
(Liskov)
§ Estenda
somente
quando
o
relacionamento
"é
um"
existe
§ Do
contrário,
use
composição
¡ Classes
públicas
não
devem
estender
outras
classes
públicas
apenas
por
facilidades
de
implementação
Bom:
Set
extends
Collection
Ruim:
Properties
extends
Hashtable
Stack
extends
Vector
48. Projete
e
documente
para
herança
senão
a
proíba
¡ Herança
viola
o
princípio
de
encapsulamento
§ A
subclasse
é
suscetível
aos
detalhes
da
implementação
da
superclasse
¡ Se
você
permitir
a
extensão,
documente
a
auto-‐utilização
§ Como
os
métodos
utilizam
um
outro?
¡ Política
conservativa:
todas
as
classes
concretas
são
final
Bom:
AbstractSet,
AbstractMap
Ruim:
Muitas
classes
concretas
em
libs
J2SE
50. Um
servidor
de
integração
contínua
é
tão
dispensável
quanto
um
sistema
de
controle
de
versões
¡ Integração
contínua
§ Garante
que
o
código
continua
funcionando
após
cada
alteração
§ Proporciona
aos
participantes
do
projeto
a
visibilidade
do
estado
atual
do
projeto
✔
✖