Martin Fowler (18 de diciembre de 1963) es un desarrollador de software británico , [ 2 ] autor y orador público internacional sobre desarrollo de software, especializado en análisis y diseño orientado a objetos , UML , patrones y metodologías de desarrollo de software ágil , incluida la programación extrema .
Su libro de 1999, Refactoring, popularizó la práctica de la refactorización de código . [ 3 ] En 2004 introdujo un nuevo patrón arquitectónico , llamado Presentation Model (PM). [ 4 ]
Biografía
Fowler nació y creció en Walsall , Inglaterra, donde cursó sus estudios secundarios en la Queen Mary's Grammar School . Se graduó en el University College London en 1986. En 1994, se mudó a Estados Unidos, donde reside cerca de Boston , Massachusetts , en el suburbio de Melrose . [ 1 ]
Fowler comenzó a trabajar con software a principios de la década de 1980. Tras graduarse de la universidad en 1986, comenzó a trabajar en el desarrollo de software para Coopers & Lybrand hasta 1991. [ 5 ] En 2000 se unió a ThoughtWorks , una empresa de integración de sistemas y consultoría, [ 1 ] donde es Científico Jefe. [ 6 ] [ 1 ]
Fowler mantiene un bliki , una mezcla de blog y wiki , donde se describe a sí mismo como "una especie de botánico del software, deseoso de recolectar muestras". [ 7 ] Ha escrito nueve libros sobre el tema del desarrollo de software. Es miembro de la Agile Alliance y ayudó a crear el Manifiesto para el Desarrollo Ágil de Software en 2001, junto con otros 16 firmantes. [ 8 ] Popularizó el término Inyección de Dependencias como una forma de Inversión de Control . [ 9 ] [ 10 ]
Publicaciones
- 1996. Patrones de análisis: Modelos de objetos reutilizables . Addison-Wesley. ISBN 0-201-89542-0.
- 1997. UML Distilled: A Brief Guide to the Standard Object Modeling Language . Addison-Wesley. ISBN 978-0-201-32563-8.
- 1999. Refactoring: Improving the Design of Existing Code , con Kent Beck , John Brant, William Opdyke y Don Roberts (junio de 1999). Addison-Wesley. ISBN 0-201-48567-2.
- 2000. Planificación de la programación extrema . Con Kent Beck . Addison-Wesley. ISBN 0-201-71091-9.
- 2002. Patrones de arquitectura de aplicaciones empresariales . Con David Rice, Matthew Foemmel, Edward Hieatt, Robert Mee y Randy Stafford. Addison-Wesley. ISBN 0-321-12742-0.
- 2010. Lenguajes específicos de dominio . Con Rebecca Parsons. Addison-Wesley. ISBN 978-0-321-71294-3.
- 2012. NoSQL Distilled: Una breve guía al mundo emergente de la persistencia políglota . Con Pramod Sadalage. Addison-Wesley. ISBN 978-0-321-82662-6.
- 2013. Refactoring: Ruby Edition . Con Kent Beck , Shane Harvie y Jay Fields. Addison-Wesley. ISBN 978-0-321-98413-5.
- 2018. Refactorización: Mejora del diseño del código existente, segunda edición . Kent Beck y Martin Fowler. Addison-Wesley. ISBN 978-0-134-75759-9.
Lenguajes específicos de dominio
El libro de Fowler, Lenguajes específicos de dominio, analiza lenguajes de programación pequeños y componibles centrados en un dominio individual. [ 11 ] : 27 Argumenta que los lenguajes específicos de dominio aumentan la productividad al eliminar la necesidad de que el programador comprenda un lenguaje de programación completo, al mejorar la comunicación con los expertos del dominio y al separar la ejecución de una tarea de su definición. [ 11 ] : 33 Estos beneficios se contraponen al costo de aprender un nuevo lenguaje y desarrollar las herramientas para dicho lenguaje. [ 11 ] : 39
Fowler introduce el concepto de lenguajes específicos de dominio internos (o integrados ) y externos . Un lenguaje interno es un subconjunto de otro lenguaje y puede ser ejecutado por las herramientas de este lenguaje externo. Ruby y Lisp se dan como ejemplo de lenguajes donde los lenguajes específicos de dominio internos son comunes. Fowler también introduce la idea del Modelo Semántico . [ 11 ] : 14 Se presentan varios lenguajes específicos de dominio, incluyendo graphviz , un lenguaje para especificar gráficos que se van a renderizar; JMock, un marco de simulación de Java; CSS , un lenguaje para especificar elementos estilísticos de un sitio web; HQL , un mapeador objeto-relacional ; XAML , un lenguaje utilizado para especificar y cambiar interfaces gráficas de usuario ; FIT, un lenguaje para expresar escenarios de prueba; y make , una herramienta para compilar software [ 11 ] : 147
El libro analiza la implementación de un lenguaje específico de dominio externo mediante analizadores sintácticos , analizadores léxicos , árboles de sintaxis abstracta y generación de código, lo que se conoce como "traducción basada en la sintaxis" [ 11 ] : 219. Esto contrasta con la "traducción basada en delimitadores", que es más simple pero menos potente. En este caso, el lenguaje es lo suficientemente simple como para ser interpretado mediante la división por delimitadores y la conmutación de la lógica en función de las entradas individuales. [ 11 ] : 201
Se analizan formas de implementar lenguajes internos específicos de dominio, prestando atención a las llamadas a funciones anidadas, [ 11 ] : 357 secuencias de llamadas a funciones, [ 11 ] : 351 o encadenamiento de métodos [ 11 ] : 373 . [ 12 ]
Referencias
- 1 2 3 4 Martin Fowler en martinfowler.com. Consultado el 15 de noviembre de 2012.
- ↑ "Acerca de Martin Fowler" . martinfowler.com . Consultado el 1 de mayo de 2021 .
- ↑ Stéphane Faroult; Pascal L'Hermite (2008). Refactorización de aplicaciones SQL. Medios O'Reilly. pag. 8.ISBN 978-0-596-55177-3.
- ↑ Stephen Chin; Dean Iverson; Oswald Campesato; Paul Trani (2011). Pro Android Flash . Apress. pág. 300. ISBN 978-1-4302-3232-2.
- ↑ James A. Highsmith (2002). Ecosistemas de desarrollo de software ágil . Addison-Wesley Professional. pág. 133. ISBN 978-0-201-76043-9.
- ↑ Martin Fowler | ThoughtWorks . Consultado el 30 de marzo de 2015.
- ↑ "¿Qué quieres decir con " orientado a eventos " ?" . martinFowler.com . 7 de febrero de 2017 . Consultado el 25 de marzo de 2026 .
- ↑ Manifiesto para el desarrollo ágil de software . Consultado el 10 de diciembre de 2012.
- ↑ Kamil Piętak; Marek Kisiel-Dorohinicki (2013). "Marco basado en agentes que facilita la implementación basada en componentes de sistemas de inteligencia computacional distribuida". En Ngoc-Thanh Nguyen; Joanna Kołodziej; Tadeusz Burczyński et al. Transacciones sobre Inteligencia Colectiva Computacional X. Saltador. pag. 38.ISBN 978-3-642-38496-7.
- ↑ Martin Fowler (2004) " Inversión de contenedores de control y el patrón de inyección de dependencias ". Consultado el 15 de noviembre de 2012.
- 1 2 3 4 5 6 7 8 9 10 Fowler, Martin (2011). Lenguajes específicos de dominio . Upper Saddle River, NJ: Addison-Wesley. ISBN 978-0-13-210754-9OCLC 686709295
- ↑ "Contenidos - Lenguajes específicos de dominio [ Libro ] " . O'Reilly Media . Consultado el 19 de mayo de 2026 .
Enlaces externos
- Personas vivas
- Nacimientos en 1963
- Antiguos alumnos del University College de Londres
- ingenieros de software británicos
- Blogueros británicos
- escritores británicos especializados en tecnología
- Programación extrema
- Gente de Walsall
- Ingenieros del condado de West Midlands
- Personas educadas en la escuela secundaria Queen Mary's Grammar School.
- Expatriados británicos en los Estados Unidos
- Desarrollo ágil de software
- redactores de informática