odoo开发技术栈与学习路线,成为高级odoo开发实施人员的基本技能要求,odoo开发框架

odoo开发培训,技术栈与学习路线分享。第一重要的是对odoo的信心,在最优秀的框架上做好长期作战的准备。而最重要的技术要求,就是对 odoo 已有 “业务应用”  的掌握能力。开发者一方面是程序员,一方面也要把自己当客户,当项目经理。

Odoo 作为全球第一的开源ERP,不仅仅是一个优秀的开发框架,最重要的也是一个企业业务逻辑框架。一旦熟悉,可以高效快速的开发出适合企业业务的互联网化管理平台,作为一个前java开发者的感受,在企业erp这个领域里,效率会是java的5~10倍。同时odoo有着完整而庞大的生态,拥有三万多的开源odoo模块的开放市场,为甲乙双方提供了交互和增值的平台。所以odoo特别适合技术高手和小团队作战。

截至今年2021年,odoo已经连续6年保持65%的业绩增长,自有1700多的开发人员,全球用户达到500万以上。在近期的Gartner调研中,odoo首次进入CRM的三甲位置,打败微软的Dynamics crm,同时我们也看到创始人Fabien频发贺报,企业版业绩火箭般飙升。


Odoo 为我们开启了一道快速实现需求的门,这也导致了很多速成人员进入了odoo之门,要想在这条路上脱颖而出,走得稳,走得远,必须不断学习,进入高手的行列,才能实现对完整项目的控盘。作为乙方,如果你不具备长期技术钻研的条件并为之做好准备,建议尽早远离odoo。作为甲方,备好银子,找对附近的odoo伙伴就够了,时间最贵。

学习能力当然是第一重要的,我们分享一下内训和客户培训的odoo学习路线,主要是根据实践经验,从技术角度小结了下 Odoo 技术栈。

 

 

=============

 

越过了业务入门这道关口,后面就是常规的开发学习过程,多看源码。这里推荐我们这篇文章odoo学习必看-提问的智慧《How To Ask Questions The Smart Way》

然后就是自己动手写代码了,odoo有自己的开发规范,这篇也是学前必读 《odoo开发规范-开发必读-囊括模块视图后端前端规范》。

在持续的odoo学习过程中,我们也分享一个有效的ioLG学习法

  • Inbox,记录各种不错的知识点,模块,源码。
  • Organization,短期内回顾整理。
  • bLog,形成体系文章,发布到网站论坛,群聊,乐为人师。
  • Go,行动。这步是关键,把知识变现成方案,可以是规范的模块,也可以是具体的商业项目。

 

这就是ioLG,简称"我爱老公"学习法。每个小G的完成就是一个周期的里程碑。

将体系化的学习贯彻始终,参考如何才能让自己的学习体系化

 

=============

1 odoo

1.1 思想准备

业务适配

功能全面

人财物
全面,快速,准确

全球化,集团化的顶层设计

技术适配

生态

持续,扩展

先进,快

适用性

长期作战的准备

善用资源

提问的智慧

人必自助而后人助之,而后天助之
https://www.sunpop.cn/how-ask-questions-smart-way/

技术栈

https://www.sunpop.cn/odoo_stack_development/

1.2 安装

版本选择

当前商业项目都基于 odoo13

计划,新项目2022年3月后odoo15

1.3 应用的熟悉

销售/采购/库存/制造

业务单据低耦合,通过补货组传递变更

MRP计算规则

会计与产品与业务的结合

用户与权限

翻译及重要性

其它

1.4 开发

环境准备

Windows

Ubuntu

Pycharm/Vscode

Git

开发规范

https://www.sunpop.cn/odoo_develop_guidelines_python_widget_javascript/

框架

标准MVC,三层架构

微服务架构

规范的业务模块化,自动生成web service接口供调用

数据库层

保存所有应用数据
不含任何业务逻辑,不使用存储过程
附件可存于数据库,可存于指定位置
实现PG标准功能,如集群、读写分离等

应用层

包含所有业务逻辑
ORM模型层
封装所有与数据库的交互与通信
Web层
路由控制器
Web通信,标准Json格式的数据输出
Webzerg标准功能,如负载均衡、CDN

客户端层

纯BS浏览器应用
web层
XML定义,转化成Jinja2用于web后台管理
report层
XML+Jinja2定义,转化成Jinja2用于单据与报表
website层
Jinja2定义用于对外网站
pos的特殊性
浏览器本地缓存
Qweb为基础的界面
widget
用于web/report层的通用组件
snippet
用于website层的可拖拖拽通用组件
owl:odoo15版本的mvvm架构

实例

odoo官方教程的第一模块
salei源码

继承机制

模型

视图

权限

widget/report/sippet

2 Python

2.1 语言基础

dict/list/tuple

2.2 主要库

request

pandas

wechat

3 Linux主机基础

3.1 基本指令

3.2 权限理解

3.3 排障,资源占用,安全,网络

4 数据库postgresql

4.1 原则上不允许对数据库操作,全部通过odoo orm

4.2 主要用于调试,升级与bug处理

4.3 时区的理解与处理

4.4 如何登录,选择数据,查看数据select

5 网页基础

5.1 html5/Jinja2框架

5.2 css/less/bootstrap

5.3 javascript/jquery/underscore

6 学习资料

6.1 开发规范及整体

https://www.sunpop.cn/odoo_develop_guidelines_python_widget_javascript/

6.2 开发起点,从开发第一个模块开始

https://www.odoo.com/documentation/13.0/howtos/backend.html

app_product_brand

https://github.com/guohuadeng/app-odoo

6.3 官网应用教程(Sunpop.cn 整理后的国内镜像)

https://www.sunpop.cn/documentation/user/12.0/zh_CN/index.html

6.4 官网开发教程(Sunpop.cn 整理后的国内镜像)

https://www.sunpop.cn/documentation/12.0/index.html

https://www.sunpop.cn/category/erp/odoo_developer/

https://www.odoo.com/documentation/13.0/

6.5 第三方翻译的开发教程

注意一定以官方为主

https://alanhou.org/category/odoo/

6.6 odoo软件(英文版)+odoo源码

https://github.com/odoo/odoo

6.7 官网应用市场/OCA

https://github.com/oca

6.8 odooHelp/Stackoverflow/Google/Baidu

Odoo 10,11,12使用树莓派DIY实现POSBOX功能连接扫码枪,电子秤,外显等(pos box)