Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
コンポーネントアプローチによるソフトウェア開発の俊敏性と品質向上の実現~カスタマーショーケ...
Search
Takuya Tsuchida
February 04, 2020
Technology
62
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
コンポーネントアプローチによるソフトウェア開発の俊敏性と品質向上の実現~カスタマーショーケース / Embarcadero Tech Vision 20 Ext JS Component
2020年2月4日(火)に UDX GALLERY NEXT で開催された「Embarcadero Tech Vision 20」で発表したときのスライドです。
Takuya Tsuchida
February 04, 2020
More Decks by Takuya Tsuchida
See All by Takuya Tsuchida
Mikatus エンジニアの成長戦略 / Growth Strategy for Mikatus Engineers
takuya0301
0
590
帳票も今や HTML でつくる時代!?日本の税理士を支えるサーバーレス帳票基盤 / FormTech
takuya0301
0
220
Essential Scala 第5章 シーケンス処理 / Essential Scala Chapter 5 Sequencing Computations
takuya0301
0
100
Essential Scala 第4章 トレイトによるデータモデリング / Essential Scala Chapter 4 Modelling Data with Traits
takuya0301
0
150
Essential Scala 第3章 オブジェクトとクラス / Essential Scala Chapter 3 Objects and Classes
takuya0301
0
130
Essential Scala 第2章 式、型、値 / Essential Scala Chapter 2 Expressions, Types, and Values
takuya0301
0
280
Other Decks in Technology
See All in Technology
#jawssonic2026 あの時代が悪かった ~動かなかったSageMakerと共に迎えたイベント当日~
ktkn1129
0
140
プロダクト思考 × 基盤思考を AIで実現する Compound Engineering
tkc66buzz
1
300
Microsoft 365 Copilot chat -tekoälypalvelun tietosuojaongelmat
hponka
0
570
Multica × 長期記憶:40個のミニプロジェクト管理
eiei114
1
220
PfEingのアプローチで働こう
rindrics
0
200
2026-09-11 【Snowflake World Tour Tokyo 2026】Snowflakeを起点に、AI Agentが自律稼働し続ける未来へ / Driving AI Agents with Snowflake
civitaspo
0
240
作品が生態系になった ─ Mini Tokyo 3D から世界へ
nagix
0
140
AI 駆動 Terraform 開発/SRE_BizReach_MIXI_2
visional_engineering_and_design
3
2k
AI時代だからこそ、スケールしないことをやろう
yutashigemura
1
110
Amazon Quick on DesktopがIAM Identity Centerで動かない理由
yukiogawa
0
130
Bet AI Day 2026丨Production-Ready AI Agents — エンタープライズの実務を任せるための設計と運用
layerx
PRO
4
2.7k
AI時代のAPI品質を支えるガードレール / API Guardrails for API quality in the AI era
yokawasa
1
190
Featured
See All Featured
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
2
680
Building a Scalable Design System with Sketch
lauravandoore
463
34k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
23k
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
2
500
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
290
Done Done
chrislema
186
16k
jQuery: Nuts, Bolts and Bling
dougneiner
66
8.6k
How Software Deployment tools have changed in the past 20 years
geshan
1
34k
RailsConf 2023
tenderlove
30
1.5k
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
190
Marketing to machines
jonoalderson
1
5.8k
How STYLIGHT went responsive
nonsquared
100
6.3k
Transcript
本⽂書の⼀部または全部の転載を禁⽌します。本⽂書の著作権は、著作者に帰属します。 コンポーネントアプローチによる ソフトウェア開発の俊敏性と品質向上の実現 ⼟⽥ 拓也 Mikatus 株式会社 プロダクト開発グループ/デザイングループ グループリーダー
アジェンダ § Mikatus のご紹介 § Sencha Ext JS 選定の理由 §
コンポーネントアプローチによる開発とテスト • DEMO: Sencha Architect と Sencha Test による実装例
Mikatus のご紹介 • Mikatus のミッション • クラウド税務・会計・給与システム A-SaaS • Adobe
AIR から Sencha Ext JS へ
Mikatus のミッション
クラウド税務・会計・給与システム A-SaaS
None
Adobe AIR から Sencha Ext JS へ 2020年末に Adobe のサポート終了
None
Sencha Ext JS 選定の理由 • クラウド税務・会計・給与システム A-SaaS の要件 • エンタープライズ品質の
Sencha 製品群
クラウド税務・会計・給与システム A-SaaS の要件 § 動作の安定性 § データの整合性 § 計算結果の正確性 §
デスクトップアプリケーション並みの⾼速な操作性 § 最低でも10年以上帳票出⼒する機能を維持できる保守性
エンタープライズ品質の Sencha 製品群 § ⼗分に検証された⾼機能コンポーネント群 § ベストプラクティスを⾃然に実現できる統合開発環境 § DOM 要素単位ではなくコンポーネント単位での⾃動テスト環境
§ エンタープライズ⽔準のサポート体制 + +
コンポーネントアプローチによる開発とテスト • DEMO: Sencha Architect と Sencha Test による実装例 •
コンポーネントアプローチによる開発とテストのベストプラクティス
DEMO: Sencha Architect と Sencha Test による実装例
画⾯を適切な独⾃コンポーネントに分割する DOs • 画⾯を適切な粒度の独⾃コンポーネントに分割する • 独⾃コンポーネントに分割するときに画⾯設計も合わせて⾒直す DON’Ts • 画⾯を独⾃コンポーネントに分割せずに画⾯を実装する •
画⾯を細かすぎる独⾃コンポーネントに分割する • 独⾃コンポーネントを無理に複数の画⾯で再利⽤する • 画⾯設計のワイヤフレームを不可侵としてコンポーネント分割を進める
例︓実装例を独⾃コンポーネントに分割する books.Main books.Toolbar books.Grid
標準コンポーネントを素直に正しく利⽤する DOs • 標準コンポーネントを組み合わせて独⾃コンポーネントを実装する • 標準コンポーネントのコンフィグでコンポーネントの動作を指定する • 標準コンポーネントの公開メソッドでコンポーネントを操作する DON’Ts •
標準コンポーネントを深く継承して複雑なコンポーネントを実装する • 標準コンポーネントの⾮公開メソッドでコンポーネントを操作する • 標準コンポーネントをオーバーライドしてコンポーネントの動作を変更する • 標準コンポーネントの操作を⼤量に⼿続き的に実装する
例︓実装例の Toolbar を標準コンポーネントに分割する Ext.Button iconCls: x-fa fa-plus text: Add Ext.Button
iconCls: x-fa fa-minus text: Delete Ext.Toolbar docked: top Example.view.books.Toolbar
独⾃コンポーネントを公開インターフェイスで疎結合にする DOs • 独⾃コンポーネントを設定するための公開コンフィグを定義する • 独⾃コンポーネントを操作するための公開メソッドを定義する • 独⾃コンポーネントと連携するための公開イベントを定義する • 直接の⼦であるコンポーネントの公開メソッドを呼ぶ
• 下位のコンポーネントに依存する DON’Ts • コンフィグ/メソッド/イベントなどの公開インターフェイスを定義しない • 直接の⼦でないコンポーネントのメソッドを呼ぶ • 上位のコンポーネントに依存する
例︓実装例の Toolbar に公開インターフェイスを定義する Configs deleteButtonDisabled : 削除ボタンの有効/無効 Methods enableDeleteButton :
削除ボタンを有効にする disableDeleteButton : 削除ボタンを無効にする Events addButtonClicked : 追加ボタンがクリックされた deleteButtonClicked : 削除ボタンがクリックされた Example.view.books.Toolbar
例︓実装例の Grid に公開インターフェイスを定義する Example.view.books.Grid Methods createNewBook : 新しい本を作成する deleteSelectedBook :
選択された本を削除する Events bookSelected : 本が選択された bookDeselected : 本の選択が解除された
例︓本を選択して削除する処理の流れ ⼦から親への 連携は イベント 親から⼦への 連携は メソッド
独⾃コンポーネントのインターフェイスを⾃動テストする DOs • 独⾃コンポーネントの公開インターフェイスを⾃動テストする • REST API の通信は SimManager と
Simlets でモックにする • テストカバレッジを参考にしつつテストを充実させる DON’Ts • 独⾃コンポーネントをテストしない • テストカバレッジ100%を必達にする
例︓本を選択して削除する処理におけるテスト対象 各コンポーネントの 処理を独⽴して テストする
例︓本を選択して削除する処理におけるテスト対象 各コンポーネントの インターフェイスを ⼊⼒と出⼒の観点で ⾃動テストする
Sencha Architect と Sencha Test による実装⼿順 § サンプルアプリケーションの実装⼿順は下記記事参照 • Sencha
Architect と Sencha Test で開発環境を構築する • Sencha Architect と Sencha Test の開発環境に REST API モックサー バーを追加する • Sencha Architect でコンポーネントを実装して Sencha Test で⾃動テス トする
まとめ § コンポーネントアプローチで開発できる Sencha Ext JS にしよう § ビジュアル開発できる Sencha
Architect で始めよう § Sencha Test によるコンポーネントテストで品質を担保しよう + +
THANKS! www.embarcadero.com/jp