odoo17核心1——概述

news2025/1/21 12:21:35

odoo17发布了,如果说odoo16是一个承前启后的版本,那么odoo17则完全抛弃了历史包袱,全面简化了前端代码,是一个里程碑式的版本。

在学习odoo的过程中,结合对源码的阅读,对odoo的设计哲学有了一些自己的感悟。

一、odoo的定位

odoo的定位是为中小企业提供的一套企业信息管理低成本的解决方案。 重点有如下几点:
1、提供一整套解决方案,支持模块化开发和部署,将所有的模块集成到一个平台上,从源头解决信息孤岛的问题,
2、社区支持。首先,odoo官方提供了大量开发好的模块,开箱即用,即使不能满足需求odoo社区还有大量的第三方模块,可以花少量的钱甚至免费就可以使用这些模块。
3、高效的、低成本的开发方式。如果需要自己定制开发,那么odoo提供的开发方式也能极大的加快开发效率。odoo最大的便利在于提供了很多的前端组件,让开发者的重心放在后端业务逻辑的开发上,而不必在前端上浪费大量的时间和精力。 传统的开发方式,前端和后端分离,大家通过接口进行交互,一般来说需要两个人才能搞定,而odoo开发,不需要太过于关注前端,整体功能一个人完全可以搞定。

在企业数字化转型蓬勃发展的今天,对于中小企业而言,odoo是一个非常好的解决方案。

二、odoo的设计哲学

现在步入正题,谈谈odoo的哲学哲学。

1、从前后端分离的角度讲

odoo是一个前后端分离的系统,二者通过rpc或者orm服务进行通讯。 前端核心是owl组件系统,后端核心是orm。

2、从数据的角度理解

odoo是一个高度数据驱动的系统,数据分两个层面来理解:

2.1、数据定义

通过xml文件对数据进行定义, 包括菜单,动作,视图,字段,等等。odoo中的一切模型数据,都可以在xml中进行定义,可以继承,可以覆盖。但是最终xml中的也仅仅是定义,odoo并不会直接从xml中加载数据。

2.2、数据注册

xml中定义的数据在模块安装或者升级的时候都会插入到数据库中的表中,odoo启动的时候会读取相关的表来获取数据。

三、从逻辑的角度理解

从上往下可以分成5个层次,呈金字塔型,越上面的越简单,越下面的越复杂。
在这里插入图片描述
后面的文章中,我会分别就这五个层次结合源码进行讲解。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1330599.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【XR806开发板试用】通过http请求从心知天气网获取天气预报信息

1. 开发环境搭建 本次评测开发环境搭建在windows11的WSL2的Ubuntu20.04中,关于windows安装WSL2可以参考文章: Windows下安装Linux(Ubuntu20.04)子系统(WSL) (1) 在WSL的Ubuntu20.04下安装必要的工具的. 安装git: sudo apt-get install git …

桶装水送水小程序:提升服务质量的利器

随着移动互联网的发展,越来越多的消费者通过手机在线购物和订购商品。如果你是一名桶装水供应商,想要拓展线上业务,那么开发一个桶装水微信小程序将是一个明智的选择。本文将指导你从零开始开发一个桶装水微信小程序,让你轻松完成…

Google推出Gemini AI开发——10年工作经验的Android开发要被2年工作经验的淘汰了?

应用程序中利用 Gemini 前言(可略过)、使用 Gemini Pro 开发应用程序正文、Android Studio 中构建Gemini API Starter 应用第 1 步:在 AI 的新项目模板的基础上进行构建第 2 步:生成 API 密钥第 3 步:开始原型设计 正文…

2024年【安全生产监管人员】模拟考试题库及安全生产监管人员理论考试

题库来源:安全生产模拟考试一点通公众号小程序 安全生产监管人员模拟考试题库是安全生产模拟考试一点通总题库中生成的一套安全生产监管人员理论考试,安全生产模拟考试一点通上安全生产监管人员作业手机同步练习。2024年【安全生产监管人员】模拟考试题…

【小黑嵌入式系统第十二课】μC/OS-III程序设计基础(二)——系统函数使用场合、时间管理、临界区管理、使用规则、互斥信号量

上一课: 【小黑嵌入式系统第十一课】μC/OS-III程序设计基础(一)——任务设计、任务管理(创建&基本状态&内部任务)、任务调度、系统函数 文章目录 一、系统函数使用场合1.1 时间管理1.1.1 控制任务的执行周期1…

数据分析基础之《numpy(5)—合并与分割》

了解即可,用panads 一、作用 实现数据的切分和合并,将数据进行切分合并处理 二、合并 1、numpy.hstack 水平拼接 # hstack 水平拼接 a np.array((1,2,3)) b np.array((2,3,4)) np.hstack((a, b))a np.array([[1], [2], [3]]) b np.array([[2], […

AndroidStudio无法新建Java工程解决办法

我用的 AS 版本是 Android Studio Giraffe | 2022.3.1 Build #AI-223.8836.35.2231.10406996, built on June 29, 2023 以往新建工程都是 New project >> Empty Activity , 有个选择 Java 还是 Kotlin 语言的选项, 之后会默认生成一个 MainActi…

DB207S-ASEMI迷你贴片整流桥DB207S

编辑:ll DB207S-ASEMI迷你贴片整流桥DB207S 型号:DB207S 品牌:ASEMI 封装:DBS-4 最大平均正向电流:2A 最大重复峰值反向电压:1000V 产品引线数量:4 产品内部芯片个数:4 产品…

【华为数据之道学习笔记】6-5数据地图的核心价值

数据供应者与消费者之间往往存在一种矛盾:供应者做了大量的数据治理工作、提供了大量的数据,但数据消费者却仍然不满意,他们始终认为在使用数据之前存在两个重大困难。 1)找数难 企业的数据分散存储在上千个数据库、上百万张物理表…

JS逆向基础

JS逆向基础 一、什么是JS逆向?二、接口抓包三、逆向分析 一、什么是JS逆向? 我们在网站进行账号登录的时候对网页源进行抓包就会发现我们输入的密码在后台会显示为一串由字母或数字等符号,这就是经过加密呈现的一段加密文字,而分…

个人信息图片如何批量建码?批量图片二维码的方法

当我们需要给工作人员的证件图片批量生成二维码时,如何处理能够快速的将每张图片单独生成一张二维码使用呢?对于有这个需求的小伙伴来说,最快捷的方式可以用图片二维码生成器来处理,通过图片批量建码功能来完成制作,下…

【什么是泛型,有什么好处】

✅什么是泛型,有什么好处 ✅典型回答✅泛型是如何实现的✅什么是类型擦除?📝C语言对泛型的支持📝泛型擦除的缺点有哪些? ✅对泛型通配符的理解📝泛型中上下界限定符 extends 和 super 有什么区别&#xff1…

YTM32的Flash控制器EFM模块详解

YTM32的Flash控制器EFM模块详解 文章目录 YTM32的Flash控制器EFM模块详解Flash存储器控制器EFM模块概述YTM32的Flash存储器特性Flash的约定术语存储器的地址空间及定义 使用Flash存储器擦写Flash的操作流操作Flash的时长 EFM的其他关于Flash的“骚操作”交换启动操作&#xff0…

IgH调试注意事项

1,不要在虚拟机测试,否则IgH无法收发数据包 现象:虚拟机中运行IgH master并绑定网卡后,主站由ORPHANED状态转换成IDLE状态,但无法收发数据报。 这是因为虚拟机用的是虚拟网卡,需通过iptables将数据包到转…

作为程序员,你知道 Notion 吗?

Notion 是一款极其出色的个人笔记软件,它将“万物皆对象”的思维运用到笔记中,让使用者可以天马行空地去创造、拖拽、链接。也适用于康奈尔笔记法哦。 不知大家会不会有如下烦恼: 1.当你下载了许多 APP,也注册了许多账号&#x…

Flink系列之:背压下的检查点

Flink系列之:背压下的检查点 一、Checkpointing under backpressure二、缓冲区 Debloating三、非对齐 Checkpoints四、对齐 Checkpoint 的超时五、限制六、故障排除 一、Checkpointing under backpressure 通常情况下,对齐 Checkpoint 的时长主要受 Che…

鸿蒙OS应用开发之切换按钮

前面学习很多按钮,可以满足基本的使用,但是很多情况下,只有二选一的需求,这时采用切换按钮,就会让程序更加直观,并且切换按钮可以显示比较大一点,在手机上操作会更加方便。 像下面这些都是切换按钮: 在鸿蒙系统里也定义有相关的切换按钮: Toggle(options: { type: T…

服务器数据恢复-误操作导致xfs分区数据丢失的数据恢复案例

服务器数据恢复环境: 某品牌OceanStorT系列某型号存储MD1200磁盘柜,组建的raid5磁盘阵列。上层分配了1个lun,安装的linux操作系统,划分两个分区,分区一通过lvm进行扩容,分区二格式化为xfs文件系统。 服务器…

如何自定义右键弹框并实现位置自适应?

一、问题 右键显示弹框,但是靠近浏览器边缘的部分会被隐藏,需要实现弹框位置自适应 二、 问题分析 如果想要最终弹框的宽高不超过屏幕视口,就等于屏幕视口的总宽/高减去弹框打开时的起点坐标,剩下的部分大于等于弹框的宽/高&…

C++进阶-继承

继承 一、继承的概念及定义1.1 继承的概念1.2 继承的定义1.2.1 定义格式1.2.2 继承关系和访问限定符1.2.3 继承基类成员访问方式的变化 二、基类和派生类对象赋值转换三、继承中的作用域3.1 同名成员变量3.2 同名成员函数 四、派生类的默认成员函数五、继承与友元六、继承与静态…