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
コンポーネントアプローチによるソフトウェア開発の俊敏性と品質向上の実現~カスタマーショーケ...
Search
Takuya Tsuchida
February 04, 2020
Technology
58
0
Share
コンポーネントアプローチによるソフトウェア開発の俊敏性と品質向上の実現~カスタマーショーケース / 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
580
帳票も今や HTML でつくる時代!?日本の税理士を支えるサーバーレス帳票基盤 / FormTech
takuya0301
0
210
Essential Scala 第5章 シーケンス処理 / Essential Scala Chapter 5 Sequencing Computations
takuya0301
0
92
Essential Scala 第4章 トレイトによるデータモデリング / Essential Scala Chapter 4 Modelling Data with Traits
takuya0301
0
140
Essential Scala 第3章 オブジェクトとクラス / Essential Scala Chapter 3 Objects and Classes
takuya0301
0
120
Essential Scala 第2章 式、型、値 / Essential Scala Chapter 2 Expressions, Types, and Values
takuya0301
0
260
Other Decks in Technology
See All in Technology
探して_入れて_作って_使う_Agent_Skills___LT.pdf
peintangos
2
160
個人最適 から 全体最適 へ AI情報共有会・AIギルド・AI-DLC で進める カンリーの組織展開
rfdnxbro
0
1k
GoとSIMDとWasmの今。
askua
3
480
20260528_生成AIを専属DSに_Howの次にすべきことを考える
doradora09
PRO
0
280
マーケットプレイス版Oracle WebCenter Content For OCI
oracle4engineer
PRO
5
1.8k
オンコールの負荷軽減のためのBits Assistant 活用方法 / How to Use Bits Assistant to Reduce the Workload on On-Call Staff
sms_tech
1
380
Java正規表現エンジン(NFA)の仕組みと パフォーマンスを維持するための最適化手法
takeuchi_132917
0
180
エンジニアは生成AIと どのように向き合うべきか? ことばの意味という観点から
verypluming
3
340
Cloud Run のアップデート 触ってみる&紹介
gre212
0
300
AI駆動開発が変える、大規模開発の前提 ーHuman in the Loop から Human on the Loop へ / AIE2026
visional_engineering_and_design
2
2k
Terraformモジュールは、なぜ「魔境」化するのか
hayama17
1
170
運用を見据えたAIエージェント設計実践
amacbee
0
2.3k
Featured
See All Featured
Odyssey Design
rkendrick25
PRO
2
670
Navigating Weather and Climate Data
rabernat
0
210
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
1.3k
Documentation Writing (for coders)
carmenintech
77
5.4k
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
140
Color Theory Basics | Prateek | Gurzu
gurzu
0
320
Optimising Largest Contentful Paint
csswizardry
37
3.7k
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
1
320
Imperfection Machines: The Place of Print at Facebook
scottboms
270
14k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.5k
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
2
280
Typedesign – Prime Four
hannesfritz
42
3.1k
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