stringtranslate.com

Martin Fowler (ingeniero de software)

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 ágiles de desarrollo de software , 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 Modelo de Presentación (PM). [4]

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 . [1]

Fowler comenzó a trabajar con software a principios de los años 1980. Al salir de la universidad en 1986, comenzó a trabajar en desarrollo de software para Coopers & Lybrand hasta 1991. [5] En 2000 se unió a ThoughtWorks , una empresa de consultoría e integración de sistemas, [1] donde se desempeña como científico jefe. [6]

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 de software ágil en 2001, junto con 16 firmantes. [7] 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 . [8] [9]

Publicaciones

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, centrados en un dominio individual y con una expresividad limitada. [10] : 27  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í. [10] : 33  Estos beneficios se comparan con el costo de aprender un nuevo idioma y crear las herramientas para este idioma, el aislamiento que resulta para diferentes idiomas y las abstracciones utilizadas en DSL no son adecuadas para una tarea. [10] : 39 

Fowler introduce el concepto de DSL interno (o integrado ) y externo , siendo un DSL interno un DSL que es un subconjunto de otro lenguaje y puede ser ejecutado por las herramientas de este lenguaje externo. Ruby y Lisp se dan como ejemplos 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. [10] : 14  Se presentan varios ejemplos de DSL, incluido Graphviz , un lenguaje para especificar los gráficos que se van a representar; JMock, un marco de burla 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 interfaces gráficas de usuario ; FIT, un lenguaje para expresar escenarios de prueba; y crear una herramienta para construir software [10] : 147 

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 sintaxis" [10] : 219  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 dividiendo los delimitadores y cambiando la lógica según las entradas individuales. [10] : 201 

Se analizan las formas de implementar DSL internos, prestando atención a las llamadas a funciones anidadas, [10] : 357  secuencias de llamadas a funciones, [10] : 351  o el encadenamiento de métodos [10] : 373,  entre otros métodos.

Referencias

  1. ^ abc Martin Fowler en martinfowler.com. Consultado el 15 de noviembre de 2012.
  2. ^ "Acerca de Martin Fowler". martinfowler.com . Consultado el 1 de mayo de 2021 .
  3. ^ Stéphane Faroult; Pascal L'Hermite (2008). Refactorización de aplicaciones SQL. Medios O'Reilly. pag. 8. ISBN 978-0-596-55177-3
  4. ^ Stephen Chin; Dean Iverson; Oswald Campesato; Pablo Trani (2011). Flash Android profesional . Presione. pag. 300. ISBN 978-1-4302-3232-2
  5. ^ James A. Highsmith (2002). Ecosistemas ágiles de desarrollo de software . Profesional de Addison-Wesley. pag. 133. ISBN 978-0-201-76043-9
  6. ^ Martín Fowler | Trabajos de pensamiento. Consultado el 30 de marzo de 2015.
  7. ^ Manifiesto para el desarrollo de software ágil. Consultado el 10 de diciembre de 2012.
  8. ^ 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
  9. ^ Martin Fowler (2004) "Inversión de contenedores de control y patrón de inyección de dependencia". Consultado el 15 de noviembre de 2012.
  10. ^ abcdefghij Fowler, Martín (2011). Idiomas específicos del dominio. Upper Saddle River, Nueva Jersey: Addison-Wesley. ISBN 978-0-13-210754-9. OCLC  686709295.

enlaces externos