Ingeniería de software

19
Patrones para pasar contexto a través de una cadena de métodos

Esta es una decisión de diseño que parece surgir bastante: cómo pasar el contexto a través de un método que no lo necesita a un método que sí lo necesita. ¿Hay una respuesta correcta o depende del contexto? Código de muestra que requiere una solución // needs the dependency function baz(session)...

19
Excepciones: "qué sucedió" vs "qué hacer"

Usamos excepciones para permitir que el consumidor del código maneje comportamientos inesperados de una manera útil. Por lo general, las excepciones se basan en el escenario "qué sucedió", como FileNotFound(no pudimos encontrar el archivo que especificó) o ZeroDivisionError(no pudimos realizar la...

19
Licencia de Ghostscript en un producto comercial

Estamos estudiando la posibilidad de utilizar Ghostscript en un producto comercial (aplicación de escritorio de Windows). Leí sobre eludir las licencias de GS por completo simplemente sugiriendo a los usuarios que pueden descargar e instalar GS por su cuenta para mejorar su experiencia (el...

19
¿Por qué dos puntos en lugar de punto?

Se rumorea que las primeras implementaciones de C ++ han tenido un operador de puntos para el acceso al espacio de nombres. Existe la opinión de que el punto es más conveniente que el operador moderno de dos puntos. ¿Cuál fue el razonamiento detrás de la introducción del doble...

19
Clases versus módulos en Python

Python tiene muchos módulos (como re) que realizan un conjunto específico de acciones. Puede llamar a las funciones de este módulo y obtener resultados, y el módulo en su conjunto tiene una idea detrás (en este caso, tratar con expresiones regulares). Las clases parecen hacer casi exactamente lo...