Martín Fowler (ingeniero de software)

format_list_bulleted Contenido keyboard_arrow_down
ImprimirCitar

Martin Fowler (18 de diciembre de 1963) es un desarrollador de software británico, autor y orador público internacional sobre desarrollo de software, especializado en análisis y diseño orientados a objetos, UML, patrones y metodologías ágiles de desarrollo de software., incluida la programación extrema.

Su libro de 1999 Refactorización popularizó la práctica de la refactorización de código. En 2004 introdujo un nuevo patrón arquitectónico, llamado Presentation Model (PM).

Biografía

Fowler nació y creció en Walsall, Inglaterra, donde asistió a la escuela secundaria Queen Mary's Grammar School. Se graduó en el University College London en 1986. En 1994 se mudó a los Estados Unidos, donde vive cerca de Boston, Massachusetts, en el suburbio de Melrose.

Fowler comenzó a trabajar con software a principios de la década de 1980. Al salir de la universidad en 1986, comenzó a trabajar en el desarrollo de software para Coopers & Lybrand hasta 1991. En 2000 se incorporó a ThoughtWorks, una empresa de consultoría e integración de sistemas, donde se desempeña como científico jefe.

Fowler ha escrito nueve libros sobre el tema del desarrollo de software. Es miembro de Agile Alliance y ayudó a crear el Manifiesto para el desarrollo ágil de software en 2001, junto con 16 compañeros signatarios. Mantiene un bliki, una mezcla de blog y wiki. Popularizó el término inyección de dependencia como una forma de inversión de control.

Publicaciones

  • 1996. Pautas de análisis: Modelos de objetos reutilizables. Addison-Wesley. ISBN 0-201-89542-0.
  • 1997. UML Destilado: Una breve guía sobre el lenguaje de modelos de objetos estándar. Addison-Wesley. ISBN 978-0-201-32563-8.
  • 1999. Refactoring: Mejora del diseño del código existenteCon Kent Beck, John Brant, William Opdyke y Don Roberts (junio de 1999). Addison-Wesley. ISBN 0-201-48567-2.
  • 2000. Planificación Extrema. Con Kent Beck. Addison-Wesley. ISBN 0-201-71091-9.
  • 2002. Patrones de Enterprise Application Architecture. Con David Rice, Matthew Foemmel, Edward Hieatt, Robert Mee y Randy Stafford. Addison-Wesley. ISBN 0-321-12742-0.
  • 2010. Idiomas Domain-Specific. Con Rebecca Parsons. Addison-Wesley. ISBN 978-0-321-71294-3.
  • 2012. NoSQL Destilado: Una breve guía al mundo emergente de la persistencia del poligloto. 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. Refactoring: Mejora del diseño del código existente, segunda edición. Kent Beck, y Martin Fowler. Addison-Wesley. ISBN 978-0-134-75759-9.

Idiomas específicos del dominio

En su libro, Lenguajes específicos de dominio, Fowler analiza los lenguajes específicos de dominio, DSL. Se dice que los DSL se definen por ser lenguajes de programación componibles, con su enfoque en un dominio individual y con expresividad limitada. Se argumenta que los DSL pueden aumentar la productividad al eliminar el requisito del programador de comprender un lenguaje de programación completo, proporcionando un medio de comunicación con expertos en el dominio y separando la forma de ejecución de una tarea de la definición de una tarea en sí. Estos beneficios se comparan con el costo de aprender un nuevo idioma y construir las herramientas para este idioma, los silos que resultan para diferentes idiomas y las abstracciones utilizadas en los DSL no son adecuadas para una tarea.

Fowler introduce el concepto de interno (o incrustado) y externo DSL, un DSL interno es un DSL que es un subconjunto de otro idioma y puede ser ejecutado por las herramientas para este idioma externo. Ruby y Lisp se dan como un ejemplo de lenguajes donde los DSL internos son comunes. También introduce la idea de Modelo Semántico que define la ejecución de un DSL. Se presentan varios ejemplos de DSL, incluido graphviz, un lenguaje para especificar los gráficos que se van a representar; JMock un marco de simulación de Java; CSS un lenguaje para especificar elementos estilísticos de un sitio web; HQL un mapeador relacional de objetos en Java; XAML un lenguaje utilizado para especificar y cambiar las interfaces gráficas de usuario; FIT, un lenguaje para expresar escenarios de prueba; y hacer una herramienta para construir software

El libro analiza la implementación de un DSL externo utilizando herramientas como analizadores, lexers, árboles de sintaxis abstracta y generación de código denominada "traducción basada en la sintaxis" Esto contrasta con la "traducción basada en delimitadores" que se dice que es más simple pero menos poderoso. Aquí, el lenguaje es lo suficientemente simple como para interpretarlo dividiéndolo en delimitadores y cambiando la lógica según las entradas individuales.

Se analizan formas de implementar DSL internos, prestando atención a las llamadas a funciones anidadas, las secuencias de llamadas a funciones o el encadenamiento de métodos, entre otros métodos.

Contenido relacionado

Sistema de ventanas

En informática, un sistema de ventanas es un software que gestiona por separado diferentes partes de las pantallas. Es un tipo de interfaz gráfica de...

Bill Gates

Martín B-10

El Martin B-10 fue el primer bombardero monoplano totalmente metálico utilizado regularmente por el Cuerpo Aéreo del Ejército de los Estados Unidos y...
Más resultados...
Tamaño del texto:
undoredo
format_boldformat_italicformat_underlinedstrikethrough_ssuperscriptsubscriptlink
save