はじめに
OutSystems認定資格のWeb Developer Specialistに合格したので、これから受験する方向けに学習方法についてご紹介しようかと思います。
Web Developer SpecialistはOutSystems11(O11)のものとOutSystems Developer Cloud(ODC)のものがありますが、O11の方に合格すれば「Get Ready for Web Developer Specialization」ガイドパスを完了させるだけでODCの方も取得できます。
そのためO11の開発に慣れている方はO11の方を受験することをおすすめします。
出題内容
出題内容は大きく7つの分野に分けられます。
1.ベストプラクティス(画面、データ、クエリ、ロジック)
2.トラブルシューティング
3.連携(外部データベース、REST API)
4.例外処理とトランザクション処理
5.非同期処理
6.チーム作業
各分野の配点についてはOutSystems認定資格の公式ページからダウンロードできる、名前に「Detail Sheet」とつくファイルに詳しく記載されています。

また、ファイル内に各分野の学習に役立つオンラインソースのリンクがあるため目を通しておくことをおすすめします。
特に1.ベストプラクティスは全体の50%を占めているため重点的に学習しましょう。
練習問題を解く
上記でダウンロードしたファイルのうち、名前に「Sample Exam」とつくファイルが練習問題です。
10問あるので、この範囲については確実に理解しておきましょう。
サンプル問題の解説については、OutSystems MVPの渡部 潤司さんの記事がとてもわかりやすいので引用させていただきます。
1.ベストプラクティス
以下に覚えておいた方が良いと思うことを箇条書きしていきます。
もちろんここに書いてあることだけ覚えておけば良いというわけではありませんが、ある程度の得点源にはなるかと思います。
・タイマー処理のTimeout in Minutesは20分が望ましい。超える場合、ループ中にIfを置いて一定の経過時間で処理を終えて、再度タイマーを起動させる。
・2000文字を超えるTextやバイナリデータは別のEntityに分離する。
・大量のデータを一括で削除したい場合、Aggregateで取得してループで1レコードずつ削除するのではなく、SQLを使用して一括で削除するのが望ましい。
・AggregateのMax Recordsプロパティは適切に設定する。
・Entityのインデックスは日付や小さいテキストなど、少数のアトリビュート値で作成するとパフォーマンスが向上しやすい。
・サイトプロパティは頻繁に変更されるロジックの変数として使用しない。
・クエリの実行回数は最小限にする(JOINを適切に使って1度で取得できるようにする)。
・データベースから取得するフィールドの数を最小限にする(ストラクチャを使って必要な項目だけに絞る)。
2.トラブルシューティング
・LogMessageアクションで出力したログはGeneralログに保存される。
・デバッグ時、Entry Moduleに参照先のモジュールが表示されない場合は、参照先のモジュールのDependenciesをRefreshする。
・Service Centerに表示できるログは直近2週間分
3.連携(外部データベース、REST API)
・Integration Builderで作成した外部データベース連携が一度にサポートできるのは、1つのデータベース、カタログ、スキーマのみで、異なるデータベース、カタログ、スキーマの様々なテーブルやコレクションを利用するには、連携を複数作成する必要がある。
・データ型のマッピングを変更できるのは、TextアトリビュートとDateTimeアトリビュートのみ。TextアトリビュートはCurrency、Decimal、Email、PhoneNumberに変更でき、DateTimeアトリビュートはDateおよびTimeに変更できる。
REST APIについては実際に開発したことがあれば解ける内容だと思うので、REST API開発をしたことがない方は実際に作ってみてください。
4.例外処理とトランザクション処理
・外部サービスはOutSystemsのトランザクション管理の範囲外のため、OutSystems側で例外が起きてもロールバックされない。
・Site Propertyの値を変更するとキャッシュが無効化される。
・Site Propertyに設定できるデータ型はBasic TypesとIdentifierのみで、Entity型は不可。
5.非同期処理
この分野についてはサンプル問題がなく、学習するオンラインリソースが多い割には出題数が少ないため学習の手間と得点が釣り合っていないと感じ、私は捨てていました。
余裕があればオンラインリソースをある程度読んでおくくらいでいいと思います。
6.チーム作業
マージが発生した時の対処さえわかっていれば解けるので、練習問題の第3問の内容を理解しておきましょう。
最後に
以上、学習しておくべきポイントの紹介でしたが実践形式の問題が多いので、実際のOutSystemsでの開発経験もある程度必要になってくるかと思います。
オンラインリソースを読むだけでなく実際に手を動かして覚えることをお勧めします。
無事合格できるよう祈っています🙏