🐣 Step 0: 初心者はここから
本ポータルは「質の高い設計」を学ぶ中級者向けです。まだAggregateや画面を作ったことがない方は、まず以下の手順で基本のアプリ開発をマスターしましょう。
- 無料の開発環境を入手する: Developer Editionに登録し、クラウド上に専用の開発環境(Service Studio/ODC)を構築します。
- 公式トレーニングを受講: "Becoming a Reactive Web Developer" の学習パスに沿って進めるのが最短ルートです。
👨💻 【重要】スクラッチ開発から来た方へ
最大の罠は「何でも自作しようとすること」です!ローコードではGit管理もビルド設定もインフラも自動化されています。「いかにコードを書かずにプラットフォームの標準機能やForgeに寄せるか」というマインドセットへ切り替えるのが、成功への最初の壁になります。
🧠 OutSystems以外で学ぶべき基礎技術
📊 RDB & SQL
正規化、JOIN、Indexを理解しないと低速なアプリになります。
🎨 Webフロントエンド
DOM構造、CSS詳細度、JS非同期処理。Widgetの裏側を知る第一歩。
🧭 読者ペルソナと資格マップ
💻 1. Associate Developer
実装担当。まずは「安全に動くもの」を作る力を養います。
🦅 2. Architecture Specialist
設計担当。技術的負債を防ぐチームの門番として本ガイドを熟読必須。
🕴️ 3. Delivery Specialist
アジャイル運営とガバナンス(ODM)を中心にチームを爆速化させるリーダー。
1. Delivery Method (ODM)
アジャイル開発を前提としたローコード特有のリズム(OutSystems Delivery Method)です。
| フェーズ | やること |
|---|---|
| 1. Initiation | キックオフ。UXビジョンとアーキテクチャ定義。 |
| 2. Sprint 0 | 環境構築と、Live Style Guide(UI基盤)の確定。 |
| 3. Sprints | 2週間単位の反復開発。テストとPOデモを実施。 |
| 4. Closure | 保守(KT)への引き継ぎとレトロスペクティブ。 |
2. Architecture Rules (O11 vs ODC)
単に機能を作るだけでなく、技術的負債を防ぐ層構造(レイヤー設計)がアーキテクトの腕の見せ所です。
Architecture Canvas (Conceptual)
🏢 O11 (4層モデル)
モジュールを役割ごとに分け「上位から下位への一方通行」を厳守。
☁️ ODC (App & Library)
ドメイン駆動設計(DDD)に基づき、疎結合な「App」と共通「Library」に二分。
絶対の禁忌: 「循環参照(お互いを参照し合う)」や「上位参照(Coreが画面を参照する)」はデプロイを破壊します!
O11 vs ODC アーキテクチャ比較
| 比較項目 | 🏢 OutSystems 11 (O11) | ☁️ OutSystems Developer Cloud (ODC) |
|---|---|---|
| アーキテクチャ | モノリシック (IIS上の統合アプリ) | マイクロサービス (コンテナベース) |
| デプロイ単位 | アプリケーション / モジュール | アプリケーション (独立したデプロイ) |
| 実行基盤 | 仮想マシン (Windows Server / IIS) | コンテナ (AWS / Kubernetes) |
| データベース | 共有データベース (複数アプリで共有可) | 分離されたデータベース (アプリ毎に独立) |
| スケーリング | フロントエンドサーバーごとの増設 | アプリ単位のオートスケーリング |
| インフラ管理 | セルフマネージド or OutSystems Cloud | 100% OutSystems管理 (SaaS) |
| 主な開発要素 | モジュール、サービスアクション | App、Library、External Logic |
3. フロントエンド (Live Style Guide)
画面の「コピペ地獄」を防ぐため、UIコンポーネントは1箇所で管理します。
- Base Theme: OutSystems UIを直接書き換えず、 Corporate Theme を作って継承する。
- Live Style Guide: Sprint 0で自社専用の Block 群(カードや特殊ボタン等)の辞書アプリを作る。
- Forge利用: OSSを使う場合は必ず Wrapperモジュール でカプセル化する。
5. Performance Guidelines
データの取得と処理のボトルネックを排除します。
6. Security Fundamentals
⚠️ SQLインジェクション防止
Advanced SQL内で Expand Inline = Yes を使う際は、必ず EncodeSql() 等でサニタイズすること。
また、画面のアクセス権限チェックだけでなく、Server Action内部での「再バリデーション処理」も必須です。
7. Testing Guidelines
負債を減らし、品質を担保するためのテスト戦略です。OutSystemsは保守コストと実行スピードの観点から、以下の比率でテストを構成することを推奨しています。
公式推奨ツールセット
| ツール名 | 用途 | 特徴 |
|---|---|---|
| BDDFramework | ユニット・APIテスト | 公式一押し。Gherkin記法(Given/When/Then)でテストコードを記述できる。 |
| Unit Testing Framework | ユニットテスト | シンプルなユニットテスト実行用。 |
| TestFramework | テスト管理 | 上記のテストを一括実行し、レポート出力やCI/CD連携を行うための「ダッシュボード」。 |
「3 Amigos」セッションの推奨
AI Mentor Studio の活用
「テストが通るか」だけでなく、「テストしやすいコードか」をチェックします。密結合なモジュールはテストが困難であるため、AI Mentor Studioを使って「循環参照」や「巨大なアクション」を排除することが、結果的にテスト品質の向上に繋がるとされています。
8. Project Governance & Protocols
👥 コンフリクト(競合)回避
モジュールを極小まで細分化し、朝会で「誰がどのモジュールを触るか」を明確に宣言する運用がスピード低下を防ぐ最大の鉄則です。
🏗 AI Mentor Studio (Architecture Dashboard)
週1回必ずチェック。コードの重複や循環参照などの負債を可視化。スコアをグリーンに戻す「リファクタリングの日」をスプリント内に確保します。
🚀 デプロイの非属人化
Service Studioから本番環境へ直接1Click Publishするのは厳禁。必ずLifeTime / ODC Pipelineを経由させ、依存関係の整合性を守ります。
9. Operations & Monitoring
🔍 Service Center
- Error Log: キャッチされた例外とスタックトレース。
- Slow Queries: 実行時間の長いSQLやAPIの警告。
- Timers: バッチ処理のスケジュールと強制実行。
🚢 LifeTime
- 1Click Deployment: 環境間の整合性チェックと移行。
- IT Users: 開発者の環境アクセス権限を一元管理。
ODCでの統合: O11での複数管理ツールが巨大な1つの「ODC Portal」に集約されました。これにより運用負荷が激減しています。
10. OutSystems 必須用語集
ODCへの移行を見据え、「共通概念」と「固有用語」を分けて整理した現場志向のチートシートです。
🔗 1. 共通コア概念(O11 / ODC共通)
Aggregate
SQLを書かずにデータを取得できるビジュアルクエリビルダー。内部で最適化されたネイティブSQLに自動変換されます。
Forge (フォージ)
「OutSystems界のアプリストア」。世界中の開発者が作った便利な部品やプラグイン(Excel操作、地図連携、画像加工など)を無料でダウンロードして自分のアプリに組み込める。
Block
UIの再利用パーツ(旧Web Block)。UI共通化の基本単位です。
Client Action / Server Action
Client Action: ブラウザ/デバイス側で動くロジック。JSに変換されレスポンスが高速。
Server Action: サーバー側で動くロジック。DB操作や機密性の高い処理に使用。
Service Action: サーバー側で動くロジックだが、REST APIのように公開され、他のモジュールから依存関係なしに呼び出すことができる。トランザクションは個別に管理される。
🤖 2. AI & ガバナンス(モダン開発標準)
AI Mentor System / Code Mentor
AI Mentor System: (旧Architecture Dashboard) AIがコードの不備を自動指摘・監視。
Code Mentor: Studio内蔵AI。次に入力すべきロジックやノードを予測して提案する開発補助。
🔄 3. O11 vs ODC 比較・固有用語
アプリ単位 (Application Unit)
動的変数 / グローバル定数
外部コードの実装
🌐 4. プラットフォームの世代
O11 (OutSystems 11)
現在主流のバージョン。オンプレミスや自社クラウドで運用。
ODC (OutSystems Developer Cloud)
最新のクラウドネイティブ版。AWS基盤で自動スケールする次世代版。
ODC Portal
ODC専用の管理画面。アプリのデプロイやユーザー権限、ログを一括管理する。
📱 5. アプリの開発方式
Reactive Web
現在の標準。ブラウザでサクサク動くモダンなWebアプリ。
Traditional Web
旧式の開発方式(O11のみ)。サーバー側で処理を行う。新規開発では非推奨。
Mobile Apps
iOS/Android向けアプリ。端末のカメラやGPS機能をフル活用できる。
PWA (Progressive Web Apps)
ストアを通さず「ホーム画面に追加」して使える、インストール型のWebアプリ。
🎨 6. UI・画面開発
OutSystems UI
公式のUIフレームワーク。ボタンやグラフ、レイアウトなどの「部品集」。これを使うだけでデザインが整う。
⚙️ 7. バックグラウンド処理(非同期)
Timer
スケジュール実行(例:毎日深夜2時)や、重い処理を裏側に切り離すための「自動実行」機能。
BPT (Business Process Technology / Process)
業務プロセス(ワークフロー)の自動化。承認フローや、データの登録をきっかけにした連鎖処理に使う。
🛠️ 8. 設計・運用・管理
Discovery
アプリ間の依存関係を可視化する地図。設計ルール(循環参照など)に違反していないかチェックするツール。
Service Center
O11の管理画面。エラーログの確認、メール設定、タイマーの強制実行などを行う司令塔。
Platform Server
OutSystemsの心臓部。作成したモデルを実際のプログラムに変換して動かすエンジン。
OutDoc
アプリケーションの設計仕様書を自動生成するツール。Service Studioで作ったデータモデルやロジックの構成を解析し、ドキュメント(PDFやWeb形式)として書き出す。手動での仕様書更新の手間を大幅に減らせる。
🔐 9. セキュリティ・認証
Users (ユーザーズ)
ユーザー管理専用の標準アプリ。ログインユーザーの作成、権限(Role)の割り当て、外部認証(SAMLやAzure ADなど)との連携設定を行う。