vistas transitorio tipos modelo estructura crear campos calculados module components

module - transitorio - tipos de campos odoo



Módulo vs diseño de componentes (7)

El componente es una entidad de tiempo de ejecución (se puede componer de módulos), unidad ejecutable independiente

El módulo es un sistema particionado en unidades de implementación, asignación de tareas independientes. Los módulos pueden o no ser un componente

¿Cuál es la diferencia entre el módulo y el diseño de componentes?


En mi opinión, Module y Component son solo un par de funciones y activos.

Y lo diferente entre ellos es:

El componente tiene lógica empresarial y el módulo no.

Por ejemplo, esta área de entrada de texto es solo un módulo, pero cuando se llamó a algún post api, se convirtió en un componente. puede poner un módulo en todas partes y funcionará bien, pero Componet solo puede usarse en una página o vista específica (porque tiene una llamada api específica)


Hay una referencia en OSGi en acción que creí que explicaba que las diferencias son muy buenas.

Módulos vs. componentes ¿No suena como que los módulos y componentes tienen mucho en común? Ambos se proveen cosas unos a otros y se consumen cosas unos de otros. También están empaquetados como unidades de implementación independientes. ¿No podrían estos dos ser considerados iguales y al menos combinados? Sí, podrían, pero los componentes y los módulos tienen diferentes propósitos y son algo ortogonales (no son completamente ortogonales, porque los componentes están hechos a partir de un código que finalmente se puede empaquetar en módulos). Los módulos tratan con el empaquetado de códigos y las dependencias entre códigos. Los componentes se ocupan de implementar una funcionalidad de alto nivel y las dependencias entre los componentes. Los componentes necesitan que se gestionen sus dependencias de código, pero técnicamente no necesitan un sistema de módulos para hacerlo (a menudo, nosotros los programadores lo hacemos a través de la ruta de clase). Un buen resumen es que puede pensar que los módulos tratan con el código estático y las dependencias en tiempo de compilación, mientras que los componentes tratan con instancias y dependencias en tiempo de ejecución.


Los componentes y los módulos se confunden con demasiada frecuencia. Sin embargo, no son lo mismo, y las implicaciones de uno, no necesariamente se aplican al otro.

La modularidad es la partición del código en módulos de funcionalidad relacionada. En muchos lenguajes de programación, un módulo es simplemente un archivo fuente. Es una práctica común que si el archivo de origen crece demasiado, puede dividirlo en dos o más archivos de origen y colocarlos en un nuevo directorio; Si bien un directorio a menudo no se denomina módulo, este tipo de descomposición sigue siendo modular.

Un componente, por otro lado, se puede componer de diferentes maneras con otros componentes para formar diferentes programas. Es decir, hay una etapa de composición separada, en la que las personas reales deciden qué componentes deben usarse juntos.

He visto que el diseño de componentes se utiliza para imponer alguna noción de modularidad dura. Este enfoque no puede recomendarse debido a la considerable sobrecarga de la composición: la complejidad de la composición crece polinomial con el número de componentes. Y la cantidad de componentes aumenta linealmente con la cantidad de grupos de funcionalidad, porque una vez que comienza con la modularidad por descomposición de los componentes, se obliga a crear un nuevo componente cuando, de lo contrario, solo necesitaría un nuevo módulo, ya que ese nuevo módulo no lo haría. realmente pertenecen a cualquier parte. Con 100 componentes, la sobrecarga de la composición se convirtió en un trabajo de tiempo completo, y cada iteración de la composición tomaría un par de semanas, a pesar de los numerosos esfuerzos de automatización. Esto obstaculizó significativamente el desarrollo.

Mi recomendación más simple es mantenerse alejado de los componentes si es posible; sabiendo que los componentes a veces pueden ser una necesidad. Por ejemplo, si varias organizaciones independientes están involucradas en un proyecto, un componente para cada organización parece aceptable.

Es una cuestión de gusto, qué tan preciso debe ser su descomposición en módulos, aunque todos están de acuerdo en que la modularidad es algo bueno.

Si sé el nombre de una función, mi editor lo encontrará lo suficientemente pronto. Por otro lado, si por alguna razón no conozco el nombre de una función (o una clase), la modularidad se vuelve más importante.

Espero que el último caso sea solo un problema para la funcionalidad que puede experimentar al usar el programa, así que trate de hacer que la descomposición de su programa en módulos refleje una descomposición intuitiva del comportamiento de su programa en áreas de funcionalidad.


Me gustaría compartir mi idea sobre esta diferencia.

Tanto el componente como el módulo se utilizan para referirse a un grupo de funciones o una parte de una función. El módulo es más lógico, por ejemplo: módulo Finanzas, módulo HR, módulo Fabricación ... en el sistema ERP. Por otro lado, el componente es más físico. En software, puede ser un dll, ocx, exe, ...

No hay criterios para medir cuál es mayor que el otro. Un componente puede contener una lista de módulos, y un módulo también puede contener muchos componentes. Los componentes se utilizan para modelar un sistema en la vista técnica, y el módulo se usa para modelar el sistema en la vista de funciones (funcionalidades del sistema)


Para el desarrollo digital y la consideración de la interfaz de usuario (HTML / CSS / JS), utilizo este enfoque para asegurarme de mantenerme organizado y pensando antes de hacerlo. Ha demostrado crear un código más limpio y organizado que se traduce muy bien en hacer más con menos.

En una hoja de estilo típica, actualmente estoy configurando así:

/* Style Guide – Mobile First 1. =Setup 2. =Modules as independent units made up of components 3. =Components as group of reusable code containing more than one element 4. =Classes 5. =Responsive as enhancement */

  • Módulos como unidades independientes compuestas de componentes: Encabezado, Pie de página, Secciones, Artículos, Aparte, etc. Una casa está compuesta de muchas habitaciones, todas con estilos y funciones especiales para crear un todo independiente.
  • Componentes como un grupo de código reutilizable que contiene más de un elemento: listas desordenadas, citas, tarjetas, tablas, etc.

Escribí una explicación más completa que puedes leer here .

¡Espero que esto ayude!


Si quiere decir módulo en el sentido de modularidad, hay una definición en el Glosario Estándar de Terminología de Ingeniería de Software de IEEE:

"La modularidad es el grado en que un sistema o programa de computadora se compone de componentes discretos, de manera que un cambio en un componente tiene un impacto mínimo en otros componentes".

Y el Dr. Bertrand Meyer declaró cinco criterios para la modularidad:

  • Descomposición del problema en sub-problemas.
  • Composibilidad de los módulos para producir nuevos sistemas.
  • Comprensibilidad de un módulo en aislamiento.
  • Continuidad - pequeños cambios tienen efectos localizados
  • Protección - aislamiento de fallas