Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
OutSystems愛知ユーザー会#3使用 回答例
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
out-developers
January 29, 2020
Programming
0
240
OutSystems愛知ユーザー会#3使用 回答例
out-developers
January 29, 2020
Tweet
Share
More Decks by out-developers
See All by out-developers
OutSystemsベストプラクティス紹介
outdevelopers
0
940
Other Decks in Programming
See All in Programming
Oxlint JS plugins
kazupon
1
1k
HTTPプロトコル正しく理解していますか? 〜かわいい猫と共に学ぼう。ฅ^•ω•^ฅ ニャ〜
hekuchan
2
690
360° Signals in Angular: Signal Forms with SignalStore & Resources @ngLondon 01/2026
manfredsteyer
PRO
0
140
2026年 エンジニアリング自己学習法
yumechi
0
140
AI巻き込み型コードレビューのススメ
nealle
2
1.4k
AI & Enginnering
codelynx
0
120
ぼくの開発環境2026
yuzneri
0
240
副作用をどこに置くか問題:オブジェクト指向で整理する設計判断ツリー
koxya
1
610
高速開発のためのコード整理術
sutetotanuki
1
410
Raku Raku Notion 20260128
hareyakayuruyaka
0
360
生成AIを使ったコードレビューで定性的に品質カバー
chiilog
1
280
CSC307 Lecture 10
javiergs
PRO
1
660
Featured
See All Featured
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
0
140
The Limits of Empathy - UXLibs8
cassininazir
1
220
Discover your Explorer Soul
emna__ayadi
2
1.1k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
196
71k
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
750
The browser strikes back
jonoalderson
0
420
Writing Fast Ruby
sferik
630
62k
The Curse of the Amulet
leimatthew05
1
8.7k
Building the Perfect Custom Keyboard
takai
2
690
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
290
Rails Girls Zürich Keynote
gr2m
96
14k
The Power of CSS Pseudo Elements
geoffreycrofte
80
6.2k
Transcript
回答例
使用していない変数、Entityは削除する • GroupEntity • TaskEntity: Attrebute GroupId • home :ローカル変数Count
• Tasks Preparation:GetGroupAggregate • ServerActions: GetTasksByStatus
命名規則に沿った内容にする • 意味が伝わりやすい名前にする – WebScreen : Detail→TaskDetail – InputParameter :
commentInsert Task → TaskId • パスカルケースを使用する – WebScreen : home → Home commentInsert → CommentInsert • 外部キーには「Id」というサフィックスを付ける – Entity : Comment User → UserId Task → TaskId Task Priority → PriorityId
ハードコーディングは避ける • home:Preparationでのデータ取得 GetTasksTodo
ハードコーディングは避ける • home:Preparationでのデータ取得 GetTasksdoing,GetTasksComplete
ハードコーディングは避ける • Tasks の優先度アイコンの表示設定
SQLよりはAggregateを使う • home:PreparationGetTasksdoing,GetTasksComplete GetTasksTodoと同じ方法で代替可能
クエリの数を最小限にする • home:ChartStatusCountはForEachを使わなくても取得可能
クエリの数を最小限にする • home:ChartStatusCountはForEachを使わなくても取得可能
再利用化する • タスク一覧にある優先度アイコンはhomeにもTasksにもあるの でWebBlockにまとめる – InputParameterによってアイコンを変えるWebBlockを作る – home、TasksにWebBlockを配置
再利用化する • タスク一覧にある優先度アイコンはhomeにもTasksにもあるの でWebBlockにまとめる – InputParameterによってアイコンを変えるWebBlockを作る – home、TasksにWebBlockを配置
再利用化する(ロジック)① • homePreparationの GetTask~はStatus毎の件数 を出してExpressionに表示して いる
再利用化する(ロジック)① • homePreparationの GetTask~はStatus毎の件数 を出してExpressionに表示して いる
再利用化する(ロジック)② • StatusId:InputParameter 件数:OutputParameterの ServerActionを作成 (FunctionはYesにする)
再利用化する(ロジック)③ • ExpressionValueにServerActionが 選択できるように
モジュールを分割する① モジュールをCloneする以外の手順 ①データを保持するモジュールを作成 ②分割前のモジュールのEntityを参照する ③参照元のEntityのコピーを作成する
モジュールを分割する② ③参照元のEntityのデータをコピーしたEntityに保存する アクションを作る ④③のアクションを実行する(タイマーなどで) ⑤コピーしたEntityを参照して動作確認できたら 分割前のモジュールのEntityを削除する
その他細かい箇所 • Is Mandatoryプロパティを忘れずに設定する – Entity:Task Titleや Comment:Text (Formも同様に設定する) •
サイトプロパティはロジック内で書き換えない – Tasks:PreparationのFileter(Site.Tasks_SearchStatusId) • 表示、非表示の定義の仕方は統一したほうがよい – Commentformの表示・非表示だけ プロパティ:Displayに設定している