refactoring

Recursos de programación de refactoring
Software architecture evolution, what to expect? Panel Discussion with Michael Feathers, Ian Gorton, Álvaro García, Eoin Woods Some of the topics and questions we wanted to tackle during this panel discussion were: Silver Bullets: What are they? Have we seen one in the past 10-15 years? Do you expect to see one? Many good ideas that seem to be good on paper, but turn out to be the opposite. How to detect them early on? Are we trending towards more common principles? More specialized? Is architecture becoming more specific or more generalized? Is it really evolving? How to make this evolution happen? What kind of evolution are we seeing here? Natural selection or Human selection? And many others... https://gsas.io/ Michael Feathers: Founder of R7K Research & Conveyance, specializing in software and organization design. Involved in early Agile movement. Author of "Working Effectively with Legacy Code" and "Brutal Refactoring." Ian Gorton: Director of Computer Science Masters programs at Northeastern University. Formerly worked at Carnegie Mellon University and Pacific Northwest National Laboratory. Specializes in designing massively scalable software architectures for big data applications. Eoin Woods: CTO at Endava, leading technical strategy and capability development. Co-author of "Software Systems Architecture." Recipient of the 2018 Linda Northrup Award for Software Architecture. Álvaro García: Principal Engineer at Apiumhub, believer in eXtreme Programming methodology. Co-organizer of Barcelona Software Craftsmanship meetups. Active in IT industry since 2005. GSAS (2019 edition) -- The Global Software Architecture Summit (GSAS) is a 3-day event that aims to attract and connect software architecture experts from all over the world as well as all those interested in building working software to improve their skills, share knowledge, and connect. The summit is held every year, so if you are interested in attending do not hesitate to buy your ticket. It is an excellent opportunity to give your career a boost and meet professionals in the industry. EVENT ORGANIZER: APIUMHUB Apiumhub is a software development hub that solves complex problems with high-quality solutions. Our purpose is to build scalable software to help our clients strengthen their businesses with powerful technology. Every year, we host this event in Barcelona to support the software architecture community and provide a space for the exchange of new and interesting ideas. -- GSAS website: https://gsas.io/ Organizer site: https://apiumhub.com/
Slides: https://www.canva.com/design/DAGCrM-oKWg/gP_TfCGmLIXm4VUJRPatGw/view?utm_content=DAGCrM-oKWg&utm_campaign=designshare&utm_medium=link&utm_source=editor Generalmente, cuando empezamos como desarrolladores o buscamos un nuevo proyecto en el que trabajar, lo hacemos pensando en que se trate de un proyecto nuevo, que podamos construir desde 0, tomando decisiones de diseño, arquitectura y demás. Sin embargo, esta no suele ser la realidad, puesto que en el 90% de los casos nos va a tocar trabajar en proyectos que ya están empezados, con una arquitectura y diseño ya definidos y con un código que no hemos escrito nosotros y que, además, probablemente sea bastante complejo y difícil de entender y manejar. A pesar de ello, hay una gran falta de formación e información a la hora de enfrentarnos a un código “legacy” y que en cierta forma favorece que genere ese rechazo. Mi objetivo es compartir algunos recursos que he ido aprendiendo trabajando en proyectos de este tipo, enfocados por un lado, a seguir añadiendo nuevas funcionalidades a nuestro código sin incrementar la complejidad, y por otro, al refactoring, que nos permite conseguir tener un código más sostenible en el tiempo. Esta es una charla a nivel introductorio sobre cómo trabajar con código legacy, orientada principalmente a personas con poca experiencia en técnicas de refactoring, aunque el contenido puede resultar de utilidad también a perfiles con más experiencia que tengan interés en conseguir tener un código sostenible.
En esta charla compartiremos nuestro experimento de pairing con ChatGPT y las reflexiones que hemos obtenido al respecto. Nuestro objetivo principal es evaluar hasta qué punto esta herramienta puede brindarnos las cualidades que esperaríamos de nuestra pareja en una sesión de pair programming. A través de ejemplos enfocados cada uno de ellos en evaluar una habilidad de diseño/programación diferente hemos puesto a prueba a chatGPT como compañero de pairing. Tratando de dar respuesta a preguntas como: ¿Puede ChatGPT contribuir a mejorar nuestras habilidades de diseño? ¿Es capaz de realizar refactoring complejos y razonar sobre ellos? ¿Tiene la capacidad de cuestionar nuestras decisiones y evaluar la calidad de diferentes diseños? Presentaremos los resultados y conclusiones del experimento realizando demostraciones en vivo para tratar de entender mejor como estas herramientas de IA generativas pueden transformar, o no, nuestras practicas del día a día. Además, nos gustaría fomentar la participación de los asistentes, invitándolos a compartir sus propias experiencias y perspectivas sobre la colaboración con IA en el desarrollo de software. Esperamos que esta charla sea una oportunidad para enriquecer el debate y generar un intercambio de conocimientos en la comunidad. ------------- ¡Conoce Autentia! -Twitter: https://goo.gl/MU5pUQ -Instagram: https://lk.autentia.com/instagram -LinkedIn: https://goo.gl/2On7Fj/ -Facebook: https://goo.gl/o8HrWX
Uno de los problemas más comunes desarrollando es cómo gestionar con el legacy. Y una de las soluciones más comunes a ese problema es reemplazarlo por la v2. El problema es que dentro de 4 años esa v2 se vuelve legacy y la solución es montar la v3… ¿o no? 👀 Esto hace que en lugar de monolitos acabemos teniendo monstruolitos que nadie quiere trabajar en ellos y que frenan mucho la velocidad y motivación de desarrollo. 👹 En esta charla exploraremos diferentes estrategias de gestionar el legacy, desde micro a macro diseño. Yendo pasito a pasito, y sobretodo, mostrando soluciones realistas y pragmáticas sin tener que parar todo el negocio todo el año para montar la v2. ✨ Todo esto gracias a técnicas de refactoring, testing, migración progresiva a una buena arquitectura de software con ejemplos basados en la vida real. ------------- ¡Conoce Autentia! -Twitter: https://goo.gl/MU5pUQ -Instagram: https://lk.autentia.com/instagram -LinkedIn: https://goo.gl/2On7Fj/ -Facebook: https://goo.gl/o8HrWX
Uno de los problemas más comunes desarrollando es cómo gestionar con el legacy. Y una de las soluciones más comunes a ese problema es reemplazarlo por la v2. El problema es que dentro de 4 años esa v2 se vuelve legacy y la solución es montar la v3… ¿o no? 👀 Esto hace que en lugar de monolitos acabemos teniendo monstruolitos que nadie quiere trabajar en ellos y que frenan mucho la velocidad y motivación de desarrollo. 👹 En esta charla exploraremos diferentes estrategias de gestionar el legacy, desde micro a macro diseño. Yendo pasito a pasito, y sobretodo, mostrando soluciones realistas y pragmáticas sin tener que parar todo el negocio todo el año para montar la v2. ✨ Todo esto gracias a técnicas de refactoring, testing, migración progresiva a una buena arquitectura de software con ejemplos basados en la vida real.
Visual Studio Code tiene una herramienta muy poderosa que es la de Refactoring. En este vídeo te contamos cómo mejorar tu productividad utilizándola. Curso Visual Studio Code: https://bit.ly/curso-vscode ﹤🍍﹥ CodelyTV ├ 🎥 Suscríbete: https://youtube.com/c/CodelyTV?sub_confirmation=1 ├ 🐦 Twitter CodelyTV: https://twitter.com/CodelyTV ├ 🧔🏻 Twitter Javi: https://twitter.com/JavierCane ├ 💂‍♀️ Twitter Rafa: https://twitter.com/rafaoe ├ 📸 Instagram: https://instagram.com/CodelyTV ├ ℹ️ LinkedIn: https://linkedin.com/company/codelytv ├ 🥋 Academy: https://codely.com/academy └ 📕 Catálogo cursos: https://bit.ly/cursos-codely #vscode #programacion
Por Vicenç García Altés. Como profesionales del mundo del desarrollo de software, nos pasamos mucho más tiempo leyendo código que no escribiéndolo. Es por eso que es importante que nuestro código sea fácil de leer y exprese bien su intención. Un paso esencial para conseguir esto es el refactoring donde, sin cambiar el comportamiento de nuestro código, cambiamos su forma. En esta charla con live coding, veremos como hacer un refactoring de un código difícil de entender sin prácticamente nunca salir del verde, es decir, teniendo siempre los tests pasando y estar tan solo unos segundos con el código sin compilar. A parte, como parte del refactoring, veremos que a veces es bueno incorporar duplicidad en nuestro código con tal de poder llegar a una mejor abstracción. 📅 Puedes ver el programa completo en nuestra web: https://t3chfest.es/2023/programa
Uno de los problemas más comunes desarrollando es cómo gestionar con el legacy. Y una de las soluciones más comunes a ese problema es reemplazarlo por la v2. El problema es que dentro de 4 años esa v2 se vuelve legacy y la solución es montar la v3… ¿o no? 👀 Esto hace que en lugar de monolitos acabemos teniendo monstruolitos que nadie quiere trabajar en ellos y que frenan mucho la velocidad y motivación de desarrollo. 👹 En esta charla exploraremos **diferentes estrategias de gestionar el legacy**, desde micro a macro diseño. Yendo pasito a pasito, y sobretodo, mostrando soluciones realistas y pragmáticas sin tener que parar todo el negocio todo el año para montar la v2. ✨ Todo esto gracias a técnicas de refactoring, testing, migración progresiva a una buena arquitectura de software con ejemplos en diferentes lenguajes de programación. ------------- ¡Conoce Autentia! -Twitter: https://goo.gl/MU5pUQ -Instagram: https://lk.autentia.com/instagram -LinkedIn: https://goo.gl/2On7Fj/ -Facebook: https://goo.gl/o8HrWX
Michael Feathers is the Founder and Director of R7K Research & Conveyance, a company specializing in software and organization design. Prior to forming R7K, Michael was the Chief Scientist of Obtiva and a consultant with Object Mentor International. Over the past 20 years he has consulted with hundreds of organizations, supporting them with general software design issues, process change and code revitalization. He is a frequent presenter at national and international conferences. He was involved in the early Agile movement and one of his passions is helping organizations recognize the impact of their internal organization and communication on the long term viability of their software products - putting interactions in place to prevent the accumulation of technical debt and lost business opportunities. His goal is to make software development more effective and integrated with business concerns. He is the author of the books: Working Effectively with Legacy Code, Brutal Refactoring: More Working Effectively with Legacy Code. His main specialties are software development practices, TDD, Refactoring, Legacy Code Revitalization, and team dynamics.
In large and complex software systems, the allocation of responsibilities to different parts of architecture is a key concern. Over time responsibilities can span across multiple parts inappropriately and the parts themselves can become overburdened with too many responsibilities. In this talk, Michael Feathers will describe a lightweight process for creating Responsibility Indices, models that index into information specific to each responsibility in a system: quality measures, refactoring plans, and strategy-based rules for change. By considering responsibilities more primary than physical location in code, teams are able to bring code and responsibility into alignment and track information needed for effective decision making that enhances cohesion over time. ---------- Síguenos en nuestras redes para estar al día de las novedades: - Twitter: https://goo.gl/MU5pUQ ​​​​ - Instagram: https://lk.autentia.com/instagram ​​​​ - LinkedIn: https://goo.gl/2On7Fj/ ​​​​ - Facebook: https://goo.gl/o8HrWX