OutSystems専門試験攻略！Web Developer Specialist試験の学習ポイント

# この記事の対象読者
- OutSystemsの専門試験に挑戦しようとしている方
- OutSystemsの認定資格の中でも、より実践的な試験に挑戦したい方
- OutSystems Web Developer Specialist試験の学習法を知りたい方

# はじめに
こんにちは。メディアテックでローコード開発をしている[Code-Samurai](https://qiita.com/Code-Samurai)です。

今回は、ローコード開発ツール「OutSystems」の専門試験である「**OutSystems Web Developer Specialist**」試験の学習方法についてご紹介したいと思います。

Outsystemsの専門試験として位置づけられている試験はいくつかありますが、中でもこの試験は「**実際の開発経験**」や「**知識を適切に使えるか**」を問われます。

この記事では、合格者の目線から学習方法を振り返り、「学習のポイント」をまとめていきたいと思います。
これから「Web Developer Specialist」を目指そうとされている一人でも多くの方に読んでいただけますと嬉しいです。

<ins>この試験に合格すれば、一石二鳥で２つの資格が取れる。お得な情報にも言及します。</ins>


:::note warn
この試験の受験には、「**OutSystems Associate Reactive Developer**」試験に合格している必要があります。
:::

# Web Developer Specialistについて
[公式ページ](https://www.outsystems.com/certifications/academy-certifications/?page=0)で以下のように説明されている通り、リアクティブWeb開発者向けの専門試験の位置づけとなります。

> Web Developer Specialization試験は、ベストプラクティス、非同期プロセス、インテグレーション、トラブルシューティングなど、より高度なリアクティブWeb開発のトピックに焦点を当てます。エンタープライズグレードのアプリケーションを構築したプロジェクト経験を持つ開発者を対象としています。この試験は、OutSystems のプロフェッショナル開発者になるための重要なステップです。

~~本試験に加えて「**Architecture Specialist**」「**Security Specialist**」の両試験に合格することで、「**Professional Web Developer**」の称号を獲得でき「**プロ**」として公に認められますので、自慢したい方はぜひ目指しましょう。~~
2025年3月より「**Professional Web Developer**」の付与はなくなり「**Expert Developer**」に一本化されました。本試験に加えて「**Architecture Specialist**」「**Security Specialist**」「**Front-end Developer Specialis**」「**Mobile Developer Specialist**」の合格により付与されます。

:::note info
OutSystemsで現在利用されている製品には、上記ページ表記で**O11**（OutSystems11）と**ODC**（OutSystems Developer Cloud）の２つがありますが、本試験は前者の**O11**を対象としています。
:::

## この試験だけの合格特典
ここで、耳よりな情報が。

https://www.outsystems.com/forums/discussion/100817/introducing-the-new-odc-web-developer-specialist/

> You do not need to take this exam if you are an O11 Web Developer Specialist! You can complete the "Get Ready for Web Developer Specialization" guided path and automatically receive the ODC Web Developer Specialist badge! 

> （日本語訳）O11 Web Developer Specialist であれば、この試験を受ける必要はありません。 「Web Developer Specialization の準備をする」ガイド付きパスを完了すると、**ODC Web Developer Specialist バッジを自動的に受け取ることができます**。

とある通り、
なんと、本試験（「Web Developer Specialist (**O11**)」）に合格した人であれば、
所定のガイドパスを完了するだけで「**Web Developer Specialist (ODC)**」に合格したことにさせてくれるらしいのです！

私もこの方法を試し、無事に以下のバッチを手に入れることができました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3815958/76011ea0-87dc-0f2f-4f88-ee8f0caeb61d.png)

一石二鳥とはまさにこのこと。
アピールできる資格が一気に２つも増やせるチャンスですので、ぜひ挑戦してみてください。


# 受験の難易度
本試験を受けるみなさんは「**OutSystems Associate Reactive Developer**」に合格された方々であられるはずです。であれば、ご存じでしょう。
例によって、この試験も練習問題がほとんど公開されていません。
「Associate Reactive Developer」では20問あったサンプル問題が、**10問**にまで減らされているのです。サンプル問題に頼らない計画的な学習が必要です。

:::note info
少ないサンプル問題に対し、どのような学習計画を立てるべきかは、[「Associate Reactive Developer」についての解説記事](https://qiita.com/Code-Samurai/private/ccd44a0d18303f5de688)をご確認ください。
:::

難易度で言うと、やはり入門試験であった「**Associate Reactive Developer**」よりは難しいとはいえると思います。その理由は大きく3点です。
1. **学習ボリュームが大きい**
「Associate Reactive Developer」に負けず劣らず、出題範囲の「オンラインリソース」はかなりの量があります。
2. **英語のドキュメントが多い**
出題範囲には日本語になっていない「オンラインリソース」も多いです。随時翻訳ツールを使ったり、英語で理解したりする必要があります。試験監督とのやり取りだけでなく、事前学習の段階でも英語が必須となる。この点も、「Associate Reactive Developer」とは異なります。
3. <font color="Red">**より実践形式の問題が出題される**</font>
実際に受験した感触ですが、知識をそのまま問われるというより、**知識を適切に使えるか**という点を問われる印象です。「具体的な状況で考えたとき、どの選択肢が最も適切か」というような聞かれ方をされます。

:::note info
「知識を適切に使えるか」を問われるという点が「知識の深い理解」を問われる印象の強い、Architecture Specialistと対象的な印象です。
:::

# 出題分野の概要
「Detail Sheet」の「**試験で扱うトピック**」から抜粋しました。大きく６つの分野に分かれています。
1. ベストプラクティス
   - 画面、データ、クエリ、ロジック
2. トラブルシューティング
3. 連携
   - 外部データベース、REST API
4. 例外処理とトランザクション処理
5. 非同期処理
6. チーム作業

:::note info
2025年1月時点でダウンロードできる「Detail Sheet」を参照したものです。最新の出題分野は、公式ページで必ずご確認ください。
:::

# 学習のポイント
各分野で問われるポイントについて、簡単に紹介します。
## 1. ベストプラクティス
**いきなりですが、ここが最重要トピックです。
ここが解けるか解けないかで合否が決まります。**

ベストプラクティスに従った開発ができるかについて問われます。
Service Studioのスクリーンショットを見て問題点を指摘したり、いくつかの実装方法から最も妥当なものを選択したりする設問が多いです。
ベストプラクティスに関するドキュメントの内容を一通り頭に入れておきましょう。
実践形式だと、問題の文章は長く感じますが、**ベストプラクティスさえ頭に入っていれば、解けます**。

:::note info
本試験の最重要トピックであり、配点も **50％** を占めます。
とにかく集中して学習しましょう。
:::

### オンラインリソース
- オンラインヘルプ
    - OutSystemsプラットフォームのベストプラクティス
    - データアーカイブ
    - パフォーマンスのベストプラクティス- データモデル
    - パフォーマンスのベストプラクティス- ロジック
    - パフォーマンスのベストプラクティス- クエリ
    - パフォーマンスに関する10のルール
### サンプル問題
- 問1：長期実行タイマーのベストプラクティス
- 問5：2000文字を超えるテキストフィールドの最適な実装方法
- 問7：データ削除タイマーの最適な実装方法
- 問8：Outsystemsによる最適化を頼った最適なAggregate実装方法
- 問10：アクション実装のベストプラクティス

## 2. トラブルシューティング
「アプリケーションのエラー発生時にどのようなトラブルシューティングをすべきか」実践形式で判断させられたり、「各ログレベルでどのような情報が出力されるか」という知識を問われたりします。

ログレベルの話など、実際にOutsystemsを使って開発をする際に見落としがちな知識をおさえておきましょう。

:::note info
配点は **13.33％** 。知識半分、経験半分がものを言います。
:::

### オンラインリソース
- オンラインヘルプ
    - 「アプリケーションのデバッグ」およびセクション内の関連するオンラインヘルプ
    - アクションフロー内の情報のログ
    - REST APIのトラブルシューティングを行う
    - トラブルシューティング用のログを取得する
    - ログのテーブルおよびビュー
    - 環境のログと状態を表示する
### サンプル問題
- 問9：Service Centerのログに関する正しい説明

## 3. 連携
こちらも特定のケースを想定した実践形式の設問が多く出題されます。

特定のツール（Integration Builder等）に関する知識よりも、「OutsystemsにおけるREST API開発ができるか」が問われます。OutsystemsにおけるREST API開発をしたことがない方は、ドキュメントを読むよりも先に手を動かして、サンプルのREST APIを作成してみる方が効果的だと思います。

:::note info
配点は **13.33％** 。知識よりも経験が重要な印象。
REST API系の開発で躓いた数が力になります。
:::

### オンラインリソース
- オンラインヘルプ
    - Integration Builderを使用する
    - Integration Builderを使用して外部データベースと連携する
    - 生成される連携の構造
    - 独自コードでロジックを拡張する
    - REST APIを利用する
    - REST APIを公開する
### サンプル問題
- 問2：REST APIのInput Parameterで発生するエラー解決

## 4. 例外処理とトランザクション処理
例外発生時にトランザクションがどのように処理されるか、を問われます。

:::note info
配点は **6.67％** 。
問われることはシンプルで、読むべきオンラインリソースも少ないので得点源にできます。
:::

### オンラインリソース
- オンラインヘルプ
    - 例外を処理する
    - トランザクションの処理
### サンプル問題
- 問4：Exception発生時のトランザクション処理
- 問6：サイトプロパティに関する正しい説明

## 5. 非同期処理
Outsystemsの各種非同期処理実装手段のうち、実際のケースに当てはめて最も適切な実装手段を問われます。

読むべきオンラインリソースが多いわりに出題数が少ない上、サンプル問題もなくて事前の勉強がやりづらいというのが正直なところです。ある程度まで理解したらOK、という進め方が無難かと思います。

:::note info
配点は **13.33％** 。私は優先度を**低**として学習しました。
非同期処理について体系的に学べるタイミングもあまりないので、Outsystemsの「**プロ**」と呼ばれるまでにある程度理解しておきたいところ。試験で解けるかは置いておいて「知識として身に着けておく」というくらいのモチベーションがちょうどいいかもしれません。
:::

### オンラインリソース
- Guided Path
    - OutSystemsの非同期機能
- オンラインヘルプ
    - 「タイマーを使用する」およびセクション内の関連するオンラインヘルプ
    - タイマー
    - 軽量プロセスを使用して拡張性の高いデータベースキューイングを設計する
### サンプル問題
- 出題なし

## 6. チーム作業
チーム作業でマージが発生するときにどのような操作をするか、ということが問われます。
普段からチーム開発している方であれば、勉強しなくても解けると思います。

:::note info
配点は **3.33％** 。
配点は少ないですが、設問はシンプル。落とさない、ことが重要です。
:::

### オンラインリソース
- オンラインヘルプ
    - 「作業内容を統合する」およびセクション内の関連するオンラインヘルプ
### サンプル問題
- 問3：「Merge and Publish」操作時の挙動


# 最後に
以上、『Web Developer Specialist試験に合格するための学習ポイント』でした。

この試験は「**知識を適切に使えるか**」が重要です。

まずは、**ベストプラクティスに関する知識をしっかりと身につけること**。これが最優先です。知識が整理できたら、実際に開発しているプロダクトなどにベストプラクティスを適用できないか考えてみましょう。
この考え方が、実践形式の問題を解く上で役に立つはずです。

ベストプラクティスをしっかりと固めた後で、それ以外のトピックに関する知識を取り入れていくのが良いかと思います。

# メディアテックのメンバー募集中！
株式会社メディアテックでは新たな開発メンバーを募集しています。
ローコード開発だけでなく、RPAやBIの開発のご経験をお持ちのみなさま。
ご興味を持っていただけたみなさまのご応募をお待ちしております。

https://recruit.jobcan.jp/mediatech/list/01