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
out-developers
January 29, 2020
Programming
260
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
OutSystems愛知ユーザー会#3使用 回答例
out-developers
January 29, 2020
More Decks by out-developers
See All by out-developers
OutSystemsベストプラクティス紹介
outdevelopers
1
1.3k
Other Decks in Programming
See All in Programming
Discordを用いたラボオートメーション関連情報収集の自動化
noguhiro2002
0
440
Claude Code全社展開のためにやったことn選~プラグイン302個・コミッター271人を支えるために~
kenchan
5
1.7k
Go を使い始めて 2 ヶ月の学び / My first two months with Go
contour_gara
0
380
まずはプロンプトガイドを読もう、話はそれからだ
kiakiraki
1
210
Japan Community Day at Kubecon + CloudNativeCon Japan 2026: Learning Container Privilege Control by Building My Own Low-Level Container Runtime
ternbusty
1
170
承認済みなのに差戻しできてしまうバグ、型で潰せます
shinchit
0
110
関東Kaggler会_NVIDIA_Nemotron_コンペ_振り返り
rick_ds
0
720
Flow は今どうなっているか
mizdra
PRO
0
710
MySQLとPostgreSQLって何が違うの?
akagami
0
140
AIの中の人になってみる
htkym
0
120
VibeCodingからAgenticWorkflowへ
starfish719
0
860
My Marp Sample
sinoue0108
0
120
Featured
See All Featured
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
1
480
Designing for Performance
lara
611
70k
How to Talk to Developers About Accessibility
jct
2
520
Facilitating Awesome Meetings
lara
57
7.1k
Rails Girls Zürich Keynote
gr2m
96
14k
What does AI have to do with Human Rights?
axbom
PRO
1
2.3k
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
250
Building AI with AI
inesmontani
PRO
1
1.2k
How Software Deployment tools have changed in the past 20 years
geshan
1
34k
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
11k
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.4k
From π to Pie charts
rasagy
0
320
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に設定している