6 puntos por baeba 1 시간 전 | 1 comentarios | Compartir por WhatsApp

Resumen general

  • Tema central

    • Se presentan libros y materiales relacionados en los que los propios desarrolladores explican la estructura interna y las decisiones de diseño de aplicaciones de código abierto.
  • Puntos clave

    • A diferencia de los arquitectos, los desarrolladores de software históricamente han tenido pocas oportunidades de estudiar de forma sistemática la estructura de programas grandes e importantes.
    • Como resultado, en vez de aprovechar casos de éxito existentes, suele repetirse una y otra vez errores similares.
    • Estos libros organizan la estructura, los componentes, la forma en que interactúan y las lecciones obtenidas durante el desarrollo de proyectos importantes de código abierto.
    • Los desarrolladores principiantes pueden aprender la forma de pensar de desarrolladores experimentados, y los de nivel intermedio y avanzado pueden tomar como referencia casos reales para resolver problemas complejos de diseño.
    • Todos los materiales se ofrecen bajo la licencia Creative Commons Attribution 3.0, y las ganancias por la venta de los libros se donan a Amnesty International.
    • Es posible contribuir a la comunidad reportando errores, haciendo traducciones o escribiendo capítulos nuevos.

Introducción

  • Límite estructural en el aprendizaje del diseño de software

    • En su formación, los arquitectos observan innumerables construcciones y estudian junto con ello las críticas de especialistas.
    • En cambio, los desarrolladores de software tienen oportunidades limitadas para comprender en profundidad programas de gran escala.
    • Muchos desarrolladores acumulan experiencia principalmente con programas escritos por ellos mismos.
    • Como consecuencia, en lugar de avanzar sobre buenos ejemplos de diseño del pasado, es más probable que repitan errores de diseño similares.
  • Propósito del material

    • El objetivo es ofrecer la estructura real de aplicaciones de código abierto en una forma que pueda analizarse.
    • Los autores de los proyectos explican directamente la estructura del software y el contexto de sus decisiones de diseño.
    • Busca ayudar a que los desarrolladores aprendan la forma de pensar sobre diseño de otros desarrolladores.

Desarrollo

La estructura de los proyectos de código abierto se explica de primera mano

  • Principales objetos de análisis

    • En total, los cuatro libros cubren diversas aplicaciones de código abierto y temas relacionados.
    • Cada capítulo explica la estructura y el enfoque de diseño de un proyecto específico o de un tema técnico concreto.
    • Los autores son desarrolladores de esos proyectos o especialistas relacionados.
  • Preguntas clave del análisis

    • ¿Cuáles son los componentes principales del programa?
    • ¿Cómo interactúa cada componente?
    • ¿Qué decisiones de diseño se tomaron durante el desarrollo?
    • ¿Qué lecciones se obtuvieron al construir el proyecto?

AOSA Volume 1 aborda la estructura de aplicaciones representativas de código abierto

  • Contenido principal

    • Cubre diversos proyectos como Asterisk, Audacity, Bash, Berkeley DB, CMake, Eclipse, Graphite, HDFS, LLVM, Mercurial, Selenium WebDriver y Sendmail.
    • Incluye un amplio rango de áreas, como software de sistema, herramientas de desarrollo, bases de datos, sistemas de archivos distribuidos, herramientas de colaboración y herramientas de visualización.
  • Importancia

    • Permite comprender la estructura interna de proyectos de código abierto desde la perspectiva de desarrolladores reales.
    • Permite comparar problemas de diseño y formas de resolverlos que aparecen repetidamente en distintos ámbitos técnicos.

AOSA Volume 2 ofrece áreas técnicas ampliadas y más casos de diseño

  • Contenido principal

    • Cubre arquitectura web escalable, release engineering de Firefox, FreeRTOS, GDB, GHC, Git, GPSD, MediaWiki, Moodle, nginx, Open MPI, Puppet, PyPy, SQLAlchemy, Twisted y ZeroMQ.
    • Incluye temas diversos como web, compiladores, sistemas operativos, sistemas distribuidos, runtimes de lenguaje, frameworks y herramientas de infraestructura.
  • Importancia

    • Ofrece casos sobre cómo se diseñan y operan sistemas de software complejos.
    • Resulta útil para que desarrolladores intermedios y avanzados revisen ejemplos reales de toma de decisiones de diseño.

POSA aborda problemas de rendimiento en aplicaciones de código abierto

  • Contenido principal

    • Cubre el networking de alto rendimiento de Chrome, la evolución de SocialCalc a EtherCalc, el sistema de build Ninja, la optimización del parsing de XML, MemShrink, el rendimiento de redes móviles y el procesamiento de big data en bioinformática.
  • Importancia

    • Muestra que mejorar el rendimiento del software no se reduce a optimizar código, sino que está relacionado con el diseño estructural, la forma de despliegue, el entorno de red y el procesamiento de datos.
    • Permite analizar problemas de rendimiento a partir de casos reales.

500 Lines or Less implementa ideas clave con poco código

  • Contenido principal

    • Cubre herramientas de programación visual, sistemas de integración continua, sistemas de build dinámicos, web crawlers, bases de datos de grafos en memoria, frameworks web basados en eventos, un intérprete de Python, OCR, hojas de cálculo web, análisis estático, motores de plantillas y un servidor web simple.
  • Importancia

    • Explica principios clave de diseño dentro de una escala de código limitada.
    • Está organizado para que sea posible aprender conceptos complejos de sistemas a través de implementaciones pequeñas.

La licencia y la forma de contribuir están claramente definidas

  • Licencia

    • Este material se ofrece bajo la licencia Creative Commons Attribution 3.0 Unported.
    • Se puede utilizar el material siempre que se cumpla con la atribución correspondiente.
  • Uso de los ingresos

    • Todas las regalías generadas por la venta de los libros se donan a Amnesty International.
  • Formas de contribuir

    • Es posible reportar errores.
    • Se puede participar en traducciones a otros idiomas o formatos.
    • Se pueden escribir capítulos que expliquen la arquitectura de nuevos proyectos de código abierto.
    • Quienes estén interesados en nuevas traducciones o en escribir capítulos pueden ponerse en contacto con los responsables del proyecto.

Conclusión

  • Resumen clave

    • Este material es una colección de casos para aprender de forma sistemática la estructura interna y los criterios de diseño de aplicaciones de código abierto.
    • Los desarrolladores pueden comprender no solo fragmentos de código aislados, sino la composición del sistema completo y las razones detrás de su diseño.
    • Para desarrolladores principiantes, sirve como punto de partida para aprender la forma de pensar de desarrolladores experimentados.
    • Para desarrolladores intermedios y avanzados, funciona como material para comparar y analizar casos reales que resolvieron problemas complejos de diseño.
  • Valor práctico

    • Tiene valor de referencia no solo para quienes usan proyectos de código abierto, sino también para quienes los diseñan y operan directamente.
    • Ayuda a reducir errores de diseño recurrentes y a aprender de casos de diseño ya validados.
    • Muestra que el intercambio de conocimiento impulsado por la comunidad puede contribuir a mejorar las capacidades de desarrollo de software.

1 comentarios

 
desmond2 1 시간 전

Gracias