狠狠撸

狠狠撸Share a Scribd company logo
Lightningアプリケーション開発現場で
実践しているノウハウ
株式会社テラスカイ
製品開発部 吉田 寛
@xlouder
会社紹介
2
3
クラウド運用代行
Salesforce
導入コンサルティング
(九州地区)
SAP クラウド
マイグレーション
IoT ソリューション
Salesforce
導入コンサルティング
(北海道地区)
コンサルティング
クラウド?
インテグレーション
クラウドサービス
運用支援
AWS クラウド
インテグレーション
Web電話帳
アプリケーション
IBM製品
ディストリビューター
会社紹介
会社紹介
テラスカイは、製品開発事業とSI事業のどちらも行っています
4
製品開発事業 SI事業
製品開発? or SI?
ご聴講頂いている皆様に質問
どちらに関わっているエンジニア?
製品開発? or SI?
当日の質問結果
16%
32%
52%
どちらに関わっているエンジニア?
(目視でのざっくりとした割り合い)
製品開発 SI その他
Lightningに対する取り組み
◇製品開発事業(ISV)
? Lightningコンポーネント
- Multi-View Calendar
?2015/6 公開。Lightning開始初期時にグローバルで公開。
? AppExchange
- SkyVisualEditor
?2010/9 公開。Visualforce生成ツールだが「Lightning対応」帯
を取得済み。
- SuPICE
?2016/2 公開。React製のLightningコンポーネント生成ツール。
- mitoco
?2016/7 公開。Lightningアプリケーション。
◇SI事業
? 案件毎に対応
7
Lightningアプリケーション
「mitoco」とは
8
SWTT2017 - Lightningアプリケーション開発現場で実践しているノウハウ
「mitoco」とは
10
掲示板 トーク
カレンダー ToDo
「mitoco」開発での課題と対応
11
「mitoco」開発での課題と対応(1/2)
課題:パフォーマンス問題
12
1. 初期ロード処理は、クリティカルパスの処理のみにする
2. コンポーネント初期化処理に多くの処理を実行し過ぎない
- https://developer.salesforce.com/docs/atlas.ja-jp.208.0.lightning.meta/lightning/js_cb_init_handler.htm
3. クライアントキャッシュを有効活用するために、Storable Actionsをきちんと利用する
- https://developer.salesforce.com/blogs/developer-relations/2017/03/lightning-components-best-practices-caching-data-storable-actions.html
- https://developer.salesforce.com/docs/atlas.ja-jp.208.0.lightning.meta/lightning/controllers_server_storable_actions.htm
4. aura:iteration 等のループ処理時に、バインド変数は置換せずに中身の値を変更する
「mitoco」開発での課題と対応(2/2)
13
5.コンポーネント間のデータバインドは、極力非バインド式{#expression}を使用する
? https://developer.salesforce.com/docs/atlas.ja-jp.lightning.meta/lightning/expr_data_binding.htm
6.マークアップの表示切り替えで<aura:if>は使ってはいけない。CSSを使用する
? https://developer.salesforce.com/docs/atlas.ja-jp.208.0.lightning.meta/lightning/components_conditional_markup.htm
7.HOC(Higher Order Components)パターンを使用している場合、何度も使用する値
は最上位のコンポーネントでまとめる
課題:パフォーマンス問題
SIの現状
14
SIの現状
? Lightning(LEX) 案件はまだ少ない
? LEX化しているお客様がまだ多くはないが、相談件数は増えている
? Lightning開発をしたくても、開発できるエンジニアを集められない
? Lightning開発での苦労話は...
? mitoco開発と同様にパフォーマンス問題
? コンポーネント化をする設計
? SI現場で取り組んでいること
? カタログ化
15
現場で感じていること
? Lightningはイケている技術要素を使用している。エンジニアとして習得しておいた方が良い
? コンポーネント設計を上手にすることで、SIのアプローチが変わる可能性がある
まとめ
? Lightningは新鮮な技術。
苦労するところはあるが解決策は見つけられる
? Lightning習得はエンジニアの価値向上につながる
? LEX案件の引き合いが多くなる
? コンポーネント設計によって品質向上が可能に
SWTT2017 - Lightningアプリケーション開発現場で実践しているノウハウ

More Related Content

SWTT2017 - Lightningアプリケーション開発現場で 実践しているノウハウ

Editor's Notes

  • #2: 残念ながら、木村さんのように綺麗な形でLightningコンポーネントを紹介できない ちょっと規模の大きい、Lightningアプリーケーション開発とSIの現場で 実際に取り組んできたことと、これからについての考えについて話したいと思います 最初に言っておきます。 『全く ディス ってないです。』
  • #3: 本题ではないので、会社绍介はサクッと行きたいと思います。
  • #4: コンサル?運用支援や、使用しているプラットフォームがSalesforceだったり、AWSだったりといろいろやっています。 また沢山の会社さんと協業をしています。 サーバーワークスさん、Sky365さん、、、、、とグループ会社として仕事をしています。
  • #5: 製品開発とSIの両方の顔を持っています。 ですので、主に製品開発の話をしますが、SIで作ったものが製品化されることがあるため、SIの話も後半に少ししたいと思います。
  • #8: Multi-View Calendar:2015/6 公開。 SVE:2010/9 公開。VFの生成ツールだが、LEX上での動作やSLDS対応によって「Lightning対応」の帯を取得。 SuPICE:2016/2 公開。Lightningコンポーネントの生成ツール。いろいろ苦労していますが、ほぼReactでできています。 mitoco:2016/7 公開。Lightningアプリーケーション
  • #11: Lightningアプリケーションでできている LEX、Classicの両方で稼働することを前提としている お陰様で、大規模なお客様を始め、沢山のお客様に利用し始まっている。
  • #13: 1:初期ロードの速度が一番時間がかかる(実時間、体感共に)。クリティカルパス以外は非同期、またはクリティカルパス処理後に実施 2:Component生成時の初期処理<aura:handler name=“init”>の話。初期処理でやりたいことは多いが、この中は非同期ではないので、必要最低限にする 3:クライアントキャッシュデータの話。極力サーバー通信を行わずにクライアントキャッシュを利用しないさい。 4:配列Arrayオブジェクトの話。オブジェクト自体を置き換えずに、配列の要素を変更した方が速度効率が良い。
  • #14: 5:Map等のオブジェクトを属性値に使用する場合、親階層でのデータ更新した場合、子階層からデータ更新した場合の双方向に値が反映される「バインド式」と片方向のみ反映される「非バインド式」の指定方法がある。!(ビックリマーク)で指定する#(シャープ)を付けて指定するかの差。動作とパフォーマンスに差が出るので確認を。 6:見た目の変更はタグの操作ではなく、CSSで行いましょう。 7:何度も使用する値は、最上位のコンポーネントでまとめて、1回だけActionを投げる。あとはこのコンポーネントから値をもらう。
  • #16: 現場で感じていること ?何だかんだ話題はありますが、今風の開発フレームワークだと思っている。なので、エンジニアとして習得しておいて良いスキルと考えています ?どの単位でコンポーネント化するのか。できるのか。は難しい。ただ、ここの工夫によって、開発の効率化や品質向上に大きく繋がる可能性を秘めている。結果として、SIが変わるかもしれません。(変わらないかもしれませんw)