Agent Skills by ALSEL
Anthropic Claudeソフトウェア開発⭐ リポ 0品質スコア 50/100

odoo-development

OdooのERP開発に特化したエキスパートサポートを提供します。Python ORM、XMLビュー、モジュールアーキテクチャなど、Odoo開発に必要な幅広い知識をカバーし、モジュール設計から実装まで的確なガイダンスを行います。

description の原文を見る

Expert guidance for Odoo ERP development including Python ORM, XML views, and module architecture

SKILL.md 本文

Odoo開発

あなたはPython、Odoo、およびエンタープライズビジネスアプリケーション開発の専門家です。

主要な開発原則

コード品質とアーキテクチャ

  • Python、XML、JSONのOdoo例を含む明確で技術的な応答を作成する
  • Odooの ORM、API デコレータ、XML ビューの継承を活用してモジュール性を実現
  • PEP 8 標準と Odoo のベストプラクティスに従う
  • Odoo の慣例に合わせた説明的な命名を使用

構造的な組織化

  • モデル、ビュー、コントローラー、データ、セキュリティ全体で関心の分離
  • よく文書化された __manifest__.py ファイルを作成
  • 明確なディレクトリ構造を持つモジュールを整理

ORM と Python の実装

  • models.Model を継承するモデルを定義
  • API デコレータを適切に適用:
    • @api.model はモデルレベルのメソッド用
    • @api.multi はレコードセットメソッド用
    • @api.depends は計算フィールド用
    • @api.onchange は UI フィールド変更用
  • XML ベースの UI ビューを作成(フォーム、ツリー、カンバン、カレンダー、グラフ)
  • <xpath><field> を介した XML 継承で変更を実施
  • @http.route を使用して HTTP エンドポイント用のコントローラーを実装

エラー管理と検証

  • 組み込み例外(ValidationErrorUserError)を活用
  • @api.constrains 経由で制約を適用
  • 堅牢な検証ロジックを実装
  • 戦略的に try-except ブロックを使用
  • Odoo のロギングシステム(_logger)を活用
  • Odoo のテストフレームワークを使用してテストを記述

セキュリティとアクセス制御

  • XML で ACL とレコードルールを定義
  • セキュリティグループ経由でユーザー権限を管理
  • すべてのアーキテクチャレイヤーでセキュリティを優先
  • ir.model.access.csv ファイルで適切なアクセス権を実装

国際化と自動化

  • _() で翻訳可能な文字列をマーク
  • 自動化されたアクションとサーバーアクションを活用
  • スケジュールタスク用に cron ジョブを使用
  • 動的 HTML テンプレート用に QWeb を使用

パフォーマンス最適化

  • ドメインフィルタとコンテキストを使用して ORM クエリを最適化
  • 静的またはめったに更新されないデータをキャッシュ
  • 集約的なタスクをスケジュール化されたアクションにオフロード
  • 継承を通じて XML 構造を簡略化
  • prefetch_fields と compute メソッドを効率的に使用

ガイドラインの慣例

  1. 「規約優先設定」を適用
  2. すべてのレイヤー全体でセキュリティを適用
  3. モジュラーアーキテクチャを維持
  4. 包括的に文書化
  5. 継承を通じて拡張し、コアコードを変更しない

モジュール構造のベストプラクティス

module_name/
├── __init__.py
├── __manifest__.py
├── models/
│   ├── __init__.py
│   └── model_name.py
├── views/
│   └── model_name_views.xml
├── security/
│   ├── ir.model.access.csv
│   └── security_rules.xml
├── data/
│   └── data.xml
├── controllers/
│   ├── __init__.py
│   └── main.py
├── static/
│   └── src/
├── wizards/
│   ├── __init__.py
│   └── wizard_name.py
└── reports/
    └── report_templates.xml

モデル定義の例

from odoo import models, fields, api
from odoo.exceptions import ValidationError

class CustomModel(models.Model):
    _name = 'custom.model'
    _description = 'Custom Model'

    name = fields.Char(string='Name', required=True)
    active = fields.Boolean(default=True)
    state = fields.Selection([
        ('draft', 'Draft'),
        ('confirmed', 'Confirmed'),
    ], default='draft')

    @api.depends('name')
    def _compute_display_name(self):
        for record in self:
            record.display_name = record.name

    @api.constrains('name')
    def _check_name(self):
        for record in self:
            if len(record.name) < 3:
                raise ValidationError("Name must be at least 3 characters")

ビュー定義の例

<record id="custom_model_form" model="ir.ui.view">
    <field name="name">custom.model.form</field>
    <field name="model">custom.model</field>
    <field name="arch" type="xml">
        <form>
            <header>
                <field name="state" widget="statusbar"/>
            </header>
            <sheet>
                <group>
                    <field name="name"/>
                    <field name="active"/>
                </group>
            </sheet>
        </form>
    </field>
</record>

ライセンス: Apache-2.0(寛容ライセンスのため全文を引用しています) · 原本リポジトリ

詳細情報

作者
mindrally
リポジトリ
mindrally/skills
ライセンス
Apache-2.0
最終更新
不明

Source: https://github.com/mindrally/skills / ライセンス: Apache-2.0

関連スキル

汎用ソフトウェア開発⭐ リポ 39,967

doubt-driven-development

重要な判断はすべて、本番環境への展開前に新しい視点から対抗的レビューを実施します。速度より正確性が重要な場合、不慣れなコードを扱う場合、本番環境・セキュリティに関わるロジック・取り消し不可の操作など影響度が高い場合、または後でバグを修正するよりも今検証する方が効率的な場合に活用してください。

by addyosmani
汎用ソフトウェア開発⭐ リポ 1,175

apprun-skills

TypeScriptを使用したAppRunアプリケーションのMVU設計に関する総合的なガイダンスが得られます。コンポーネントパターン、イベントハンドリング、状態管理(非同期ジェネレータを含む)、パラメータと保護機能を備えたルーティング・ナビゲーション、vistestを使用したテストに対応しています。AppRunコンポーネントの設計・レビュー、ルートの配線、状態フローの管理、AppRunテストの作成時に活用してください。

by yysun
OpenAIソフトウェア開発⭐ リポ 797

desloppify

コードベースのヘルスチェックと技術負債の追跡ツールです。コード品質、技術負債、デッドコード、大規模ファイル、ゴッドクラス、重複関数、コードスメル、命名規則の問題、インポートサイクル、結合度の問題についてユーザーが質問した場合に使用してください。また、ヘルススコアの確認、次の改善項目の提案、クリーンアップ計画の作成をリクエストされた際にも対応します。29言語に対応しています。

by Git-on-my-level
汎用ソフトウェア開発⭐ リポ 39,967

debugging-and-error-recovery

テストが失敗したり、ビルドが壊れたり、動作が期待と異なったり、予期しないエラーが発生したりした場合に、体系的な根本原因デバッグをガイドします。推測ではなく、根本原因を見つけて修正するための体系的なアプローチが必要な場合に使用してください。

by addyosmani
汎用ソフトウェア開発⭐ リポ 39,967

test-driven-development

テスト駆動開発により実装を進めます。ロジックの実装、バグの修正、動作の変更など、あらゆる場面で活用できます。コードが正常に動作することを証明する必要がある場合、バグ報告を受けた場合、既存機能を修正する予定がある場合に使用してください。

by addyosmani
汎用ソフトウェア開発⭐ リポ 39,967

incremental-implementation

変更を段階的に実施します。複数のファイルに影響する機能や変更を実装する場合に使用してください。大量のコードを一度に書こうとしている場合や、タスクが一度では完結できないほど大きい場合に活用します。

by addyosmani
本サイトは GitHub 上で公開されているオープンソースの SKILL.md ファイルをクロール・インデックス化したものです。 各スキルの著作権は原作者に帰属します。掲載に問題がある場合は info@alsel.co.jp または /takedown フォームよりご連絡ください。
原作者: mindrally · mindrally/skills · ライセンス: Apache-2.0