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
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
out-developers
January 29, 2020
Programming
250
0
Share
OutSystems愛知ユーザー会#3使用 回答例
out-developers
January 29, 2020
More Decks by out-developers
See All by out-developers
OutSystemsベストプラクティス紹介
outdevelopers
1
1.1k
Other Decks in Programming
See All in Programming
セグメントとターゲットを意識するプロポーザルの書き方 〜採択の鍵は、誰に刺すかを見極めるマーケティング戦略にある〜
m3m0r7
PRO
0
530
ドメインイベントでビジネスロジックを解きほぐす #phpcon_odawara
kajitack
3
770
[RubyKaigi 2026] Require Hooks
palkan
0
170
PHPで TLSのプロトコルを実装してみるをもう一度しゃべりたい
higaki_program
0
200
KagglerがMixSeekを触ってみた
morim
0
380
PHP で mp3 プレイヤーを実装しよう
m3m0r7
PRO
0
270
Liberating Ruby's Parser from Lexer Hacks
ydah
2
740
PCOVから学ぶコードカバレッジ #phpcon_odawara
o0h
PRO
0
260
クラウドネイティブなエンジニアに向ける Raycastの魅力と実際の活用事例
nealle
2
190
Coding at the Speed of Thought: The New Era of Symfony Docker
dunglas
0
4.9k
Kingdom of the Machine
yui_knk
2
190
Going Multiplatform with Your Android App (Android Makers 2026)
zsmb
2
420
Featured
See All Featured
The Limits of Empathy - UXLibs8
cassininazir
1
300
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
BBQ
matthewcrist
89
10k
Ten Tips & Tricks for a 🌱 transition
stuffmc
0
98
Optimising Largest Contentful Paint
csswizardry
37
3.6k
Site-Speed That Sticks
csswizardry
13
1.2k
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
130
Producing Creativity
orderedlist
PRO
348
40k
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
280
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.2k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
890
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
1.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に設定している