SlideShare une entreprise Scribd logo
1  sur  58
Télécharger pour lire hors ligne
レガシーからの移行
株式会社日本プロテック
2 0 1 8 年 1 2 月 7 日
レガシーからの移行
Copyright (C) 2018 NIHON-Protec Co., Ltd. All Rights Reserved.
はじめに
レガシーシステムの移行要件
移行ソリューション
さぁ開発だ(開発の進め方)
苦労した点
Wijmoを使ってみて
最後に
アジェンダ
Copyright (C) 2018 NIHON-Protec Co., Ltd. All Rights Reserved.
はじめに
業務システムは、C/S型アプリから、Webアプリへ
Windowsアプリ
Internet
ブラウザ
クライアント
サーバー
クライアント
DB+Webアプリ
サーバー
DB
スマホ
タブレット
テレビ・ゲーム
家電・車・農業
監視カメラ
C/S型アプリ Webアプリ
モバイルアプリ
→クラウド化
ITの急速な技術革新
Copyright (C) 2018 NIHON-Protec Co., Ltd. All Rights Reserved.
はじめに
Webアプリの壁の打開に向けて
 C/S型のU/Iに慣れきっている。(キーボードコントロール)
 Webの挙動のストレス(遅い、使いづらい、不安定)
1995年 JavaApplet公開(インタラクティブ)
1996年 JDK1.0公開/ネスケ2.0に、JavaScriptが実装
1998年 IE6、ネスケ7.1、Firefox、OperaでDOMをサポート
2005年 Ajax(JavaScriptによる非同期通信)
2006年 Flex 2.0公開
2007年 Flash公開、Silverlight公開
2008年 Air公開
 RIAを取り入れることで、Webアプリケーションの表現力・操作性を向上
10
年前
 Webアプリの当初の課題
Copyright (C) 2018 NIHON-Protec Co., Ltd. All Rights Reserved.
1995年 JavaApplet公開(インタラクティブ)
1996年 JDK1.0公開/ネスケ2.0に、JavaScriptが実装
1998年 IE6、ネスケ7.1、Firefox、OperaでDOMをサポート
2005年 Ajax(JavaScriptによる非同期通信)
2006年 Flex 2.0公開
2007年 Flash公開、Silverlight公開
2008年 Air公開
はじめに
サポート終了
企業課題
レガシーシステム
Flash/Flex :2020年
Silverlight :2021年
レガシーシステムの
移行要件
Copyright (C) 2018 NIHON-Protec Co., Ltd. All Rights Reserved.
レガシーシステムの移行要件
情シスの課題と悩み
 ユーザー要望ではない。(予算の捻出)
 仕様書がなく、システムの理解度が乏しい
 見積の算出と移行ソリューション
 モチベーション
 ユーザーニーズを取り込み過ぎ?(複雑なU/I)
 さまざまなプラットフォーム
 サポート切れによる業務停止のリスク回避
Copyright (C) 2018 NIHON-Protec Co., Ltd. All Rights Reserved.
レガシーシステムの移行要件
ユーザー・情シスからの移行要件
 同じ画面デザイン(興味なし?)
 既存と同等の操作性(RIAの継承)
 プログラム解析(なぜか仕様書がない)
 書き起こし・書き直しのコード量の最小化
 マルチブラウザ対応
 長期的なサポート
 標準スキルでの運用
 アプリ配布の容易性
 短期間で仕上げて欲しい
Copyright (C) 2018 NIHON-Protec Co., Ltd. All Rights Reserved.
レガシーシステムの移行要件
既存システムが、Silverlightの構成例
ブラウザ+Plugin
DB+Webアプリ
Internet
RIA
移行ソリューション
Copyright (C) 2018 NIHON-Protec Co., Ltd. All Rights Reserved.
移行ソリューション
主な移行アーキテクチャの比較検討
Windowsアプリ 既存と同等の操作性(RIAの継承)
→ ライブラリ、Componentの検討
 書き起こし・書き直しのコード量の最小化
→ サーバー側のコードを残す
 マルチブラウザ対応
→HTML5/JavaScript/CSSで実現
 長期的なサポート
→信頼できる団体、企業
 標準スキルでの運用
→JavaScript .Net系
 アプリ配布の容易性
→Webアプリ
ASP.net Web Form
JavaScript Framework
HTML5
ASP.net MVC
Java PHP Rails
■移行要件と検討方針 ■アーキテクチャ候補
JavaScript
Copyright (C) 2018 NIHON-Protec Co., Ltd. All Rights Reserved.
移行ソリューション
• サーバーサイドはそのまま利用
– ビジネスロジックは一切いじらない
• フロントとサーバーの間に中間層を設けてSOAP
(XML)からJSONに変換
– 本当に変換するだけ
– BFFもどきと言えなくもないかもしれない
使えるモノは使う
Copyright (C) 2018 NIHON-Protec Co., Ltd. All Rights Reserved.
移行ソリューション
既存システム
(Server)
既存システム
(Client)
使えるモノは使う
OLD
既存システム
(Server)
中間層
(Server)
SPA
(Client)
NEW
SOAP
Copyright (C) 2018 NIHON-Protec Co., Ltd. All Rights Reserved.
移行ソリューション
• SPA(Angular)にした
• 既存システムがコンポーネントで分割されていた
ので、同じ単位で移植
Silverlight Angular
XAML HTMLテンプレート
コードビハインド
コンポーネント
(TypeScript)
既存の構造を活かす
Copyright (C) 2018 NIHON-Protec Co., Ltd. All Rights Reserved.
移行ソリューション
• UXを悪化させない
• 社内システムなのでSEO、SSR考慮しなくてよい
• コンポーネントをそのまま移植できる
SPA(Single Page Application)
Copyright (C) 2018 NIHON-Protec Co., Ltd. All Rights Reserved.
移行ソリューション
• 双方向バインディング
– コンポーネントだけではなく、内部の構造も既存シス
テムを踏襲できる
• 型!
– TypeScriptがデフォルト
– SIerのバックボーンを考慮する心意気(違う)
• フルスタック
– HTTPリクエスト、ルーティングなどなど
– ライブラリの組み合わせを検証してる時間が...
Angularを採用した理由
Copyright (C) 2018 NIHON-Protec Co., Ltd. All Rights Reserved.
移行ソリューション
• React
• Vue.js
その他のSPAフレームワーク
Copyright (C) 2018 NIHON-Protec Co., Ltd. All Rights Reserved.
移行ソリューション
• この短期間で...
– Functionalなスタイルに全員が馴染めるか?
– Reduxのややこしい部分に回答を出せるか?
• Stateの設計
• 非同期処理
• 双方向バインディングがない
• TypeScriptと組み合わせたときに、一部型パズル
みたいになって辛い
– 特にRedux、Material UIなど
Reactを採用しなかった理由
Copyright (C) 2018 NIHON-Protec Co., Ltd. All Rights Reserved.
移行ソリューション
• TypeScriptの型付けが微妙と言われていた
• 体制が脆そうで説得し辛かった
• 感触は良かった
Vue.jsを採用しなかった理由
Copyright (C) 2018 NIHON-Protec Co., Ltd. All Rights Reserved.
移行ソリューション
Vue.jsを採用しなかった理由
GitHubより
ほんとうは
Reactに
したかった
閑話休題
フレームワークは決まった...
だけど、
それだけでよいのだろうか?
RIA
Silverlight
Adobe Flex
リッチ
インターネット
アプリケーション
Copyright (C) 2018 NIHON-Protec Co., Ltd. All Rights Reserved.
移行ソリューション
• 様々なコンポーネントが使われていた
– データグリッド
– ツリービュー
– etc...
リッチなUIを作らないといけない
Copyright (C) 2018 NIHON-Protec Co., Ltd. All Rights Reserved.
移行ソリューション
Wijmoを利用した画面
Copyright (C) 2018 NIHON-Protec Co., Ltd. All Rights Reserved.
移行ソリューション
• 自作
• 色々な無償ライブラリを組み合わせる
– UIのフィーリング、利用方法
• ライブラリ選定のポイント
– 機能の豊富さ(一貫性を保つためにも!)
– サポート(言語含む)
– 情報量
– 品質
– 実績
リッチなUIを作らないといけない
Copyright (C) 2018 NIHON-Protec Co., Ltd. All Rights Reserved.
移行ソリューション
• Angular/TypeScriptをサポート
• 多機能
• サポート(日本語/バグFixのスピード)
• 継続的な更新、メンテナンス
• 他製品の利用実績
– ComponentOne
– InputMan
– ActiveReports
– Spread
Wijmoを採用した理由
さあ、開発だ!
Copyright (C) 2018 NIHON-Protec Co., Ltd. All Rights Reserved.
開発の進め方
• フロント側、サーバー側で分業
– 短納期ゆえ...
• サーバー側の仕様、I/FはAPI Blueprintで定義
Copyright (C) 2018 NIHON-Protec Co., Ltd. All Rights Reserved.
開発の進め方
• MarkdownでAPI仕様書が書けるツール
• モチベーション
– 仕様書もバージョン管理したい
– Markdownで書ける
– キレイなHTMLを生成できる
API Blueprint
Copyright (C) 2018 NIHON-Protec Co., Ltd. All Rights Reserved.
開発の進め方
• Markdownで書ける
– Swaggerは(当時)JSON or YAML
• コードファーストができない
– ASMX Webサービスで使えるのか不明
(おそらく不可能)
なぜSwaggerにしなかったのか?
Copyright (C) 2018 NIHON-Protec Co., Ltd. All Rights Reserved.
開発の進め方
フロント側 サーバー側
1 モック作成(HTML) API仕様書作成(API Blueprint)
2
API定義を元に作成したダミーデー
タを使って実装を進める
API実装
3 本物のAPIを使って実装、テスト 次のAPI仕様書作成
4 次の画面のモック作成
完成した画面(Angular)をCMSに
組み込んでテスト
5 1~4を繰り返す
実際の開発フロー
以上のような進め方で、
なんの問題もなく
リリースできました
嘘です
苦労した点
Copyright (C) 2018 NIHON-Protec Co., Ltd. All Rights Reserved.
苦労した点
• Angular
• API Blueprint
• プラットフォーム(CMS)
• テスト自動化
• ブラウザ間の差異
Copyright (C) 2018 NIHON-Protec Co., Ltd. All Rights Reserved.
苦労した点
• 学習コスト
– TypeScript
– RxJSにピンとこない問題
• 双方向バインディング
– 関数と引数で全てが決まるReactの考え方の方がシンプ
ル
Angular
Copyright (C) 2018 NIHON-Protec Co., Ltd. All Rights Reserved.
苦労した点
• Markdown(風)シンタックス
– 慣れるまでにかなりハマった
API Blueprint
Copyright (C) 2018 NIHON-Protec Co., Ltd. All Rights Reserved.
苦労した点
• 事例が見つからない
• Wijmoが保証していない
プラットフォーム(CMS)
Copyright (C) 2018 NIHON-Protec Co., Ltd. All Rights Reserved.
苦労した点
• 自動化
– 一画面やって挫折
– Angularはテストも面倒見てくれるので、書くのは楽と
いえば楽
• 人力
– 最初は地獄だった
テスト
Copyright (C) 2018 NIHON-Protec Co., Ltd. All Rights Reserved.
苦労した点
テスト
実運用時の構成
Spring(Java)
Web API
Angular
Copyright (C) 2018 NIHON-Protec Co., Ltd. All Rights Reserved.
苦労した点
テスト
(普通の)ローカル開発時の構成
Spring(Java)
Web API
Angular
(単独起動)
Copyright (C) 2018 NIHON-Protec Co., Ltd. All Rights Reserved.
苦労した点
テスト
(普通の)ローカル開発時の構成
Spring(Java)
Web API
Angular
(単独起動)
Copyright (C) 2018 NIHON-Protec Co., Ltd. All Rights Reserved.
苦労した点
テスト
(実際の)ローカル開発時の構成
Spring(Java)
Web API
Angularの
ソース
Angular
ソース修正のたびに、
Angularをビルド&
Springにデプロイ
Copyright (C) 2018 NIHON-Protec Co., Ltd. All Rights Reserved.
苦労した点
• Storybookを導入
– コンポーネントのカタログを作るためのツール
テスト
Copyright (C) 2018 NIHON-Protec Co., Ltd. All Rights Reserved.
苦労した点
• まずはStorybook上で実装、テスト
– ソースの変更を検知して即時画面反映
• OKであればSpringに載せてテスト
テスト
Copyright (C) 2018 NIHON-Protec Co., Ltd. All Rights Reserved.
苦労した点
自作した部分について…
• 見た目が違う
• 印刷結果が真っ白
• if文でブラウザ判定
– 辛い
• Silverlight、Flexではプラットフォームが吸収し
てくれていた(と思われる)点
ブラウザ間の差異
Wijmoを使ってみて
Copyright (C) 2018 NIHON-Protec Co., Ltd. All Rights Reserved.
Wijmoを使ってみて
• 良かった点
– サポート
– だいたいなんでもある
– 見た目が業務アプリ向け
• 改善希望
– ドキュメントの充実
– 見た目のカスタマイズ性向上
– TypeScriptの型定義の充実
さいごに
Copyright (C) 2018 NIHON-Protec Co., Ltd. All Rights Reserved.
さいごに
• サーバーサイドを流用+フロントをJS(SPA)で
置き換えるという方針は今の所ベスト
– 直近の案件は全てこの方針で進めている
• 見積は、慎重に…
画面の表面だけで判断できない。
– ツールによるメトリクス分析。
– テスト自動化の工数を取れるとベスト。
• 無理に自作しない。
• 画面のデザインは変わる前提で話す
ご清聴ありがとうございました。

Contenu connexe

Tendances

新しい Visual Studio & .NET と新時代のアーキテクチャ
新しい Visual Studio & .NET と新時代のアーキテクチャ新しい Visual Studio & .NET と新時代のアーキテクチャ
新しい Visual Studio & .NET と新時代のアーキテクチャ慎一 古賀
 
進化するEdge+α
進化するEdge+α進化するEdge+α
進化するEdge+αSaki Homma
 
.Net技術でこれからも食べていくための技術戦略
.Net技術でこれからも食べていくための技術戦略.Net技術でこれからも食べていくための技術戦略
.Net技術でこれからも食べていくための技術戦略Yuya Yamaki
 
.NET技術でこれからも食べていくための技術戦略
.NET技術でこれからも食べていくための技術戦略.NET技術でこれからも食べていくための技術戦略
.NET技術でこれからも食べていくための技術戦略Yuya Yamaki
 
HTML5ハイブリッド アプリ開発の実践〜開発現場ですぐに活かせるコツを伝授〜
HTML5ハイブリッド アプリ開発の実践〜開発現場ですぐに活かせるコツを伝授〜HTML5ハイブリッド アプリ開発の実践〜開発現場ですぐに活かせるコツを伝授〜
HTML5ハイブリッド アプリ開発の実践〜開発現場ですぐに活かせるコツを伝授〜Monaca
 
進化するEdge! Creators Update版の新機能一挙紹介!
進化するEdge! Creators Update版の新機能一挙紹介!進化するEdge! Creators Update版の新機能一挙紹介!
進化するEdge! Creators Update版の新機能一挙紹介!Saki Homma
 
事例で解説するハイブリッドアプリ開発のポイント
事例で解説するハイブリッドアプリ開発のポイント 事例で解説するハイブリッドアプリ開発のポイント
事例で解説するハイブリッドアプリ開発のポイント Monaca
 
進化するEdge! ~Creators Update版の新機能から既存機能までまとめて解説!~
進化するEdge! ~Creators Update版の新機能から既存機能までまとめて解説!~進化するEdge! ~Creators Update版の新機能から既存機能までまとめて解説!~
進化するEdge! ~Creators Update版の新機能から既存機能までまとめて解説!~Saki Homma
 
【16-E-4】残業ゼロで開発スピードが10倍に!もう元の開発体制には戻れないデンソー流のアジャイル開発
【16-E-4】残業ゼロで開発スピードが10倍に!もう元の開発体制には戻れないデンソー流のアジャイル開発【16-E-4】残業ゼロで開発スピードが10倍に!もう元の開発体制には戻れないデンソー流のアジャイル開発
【16-E-4】残業ゼロで開発スピードが10倍に!もう元の開発体制には戻れないデンソー流のアジャイル開発Developers Summit
 
夏サミ 2012 [B-2]エンタープライズ開発におけるコラボレーション - JIRAによる顧客と開発チームのつなぎ方
夏サミ 2012 [B-2]エンタープライズ開発におけるコラボレーション - JIRAによる顧客と開発チームのつなぎ方夏サミ 2012 [B-2]エンタープライズ開発におけるコラボレーション - JIRAによる顧客と開発チームのつなぎ方
夏サミ 2012 [B-2]エンタープライズ開発におけるコラボレーション - JIRAによる顧客と開発チームのつなぎ方Yusuke Suzuki
 
2020年10月29日 プロフェッショナルAI×Roboticsエンジニアへのロードマップ
2020年10月29日 プロフェッショナルAI×Roboticsエンジニアへのロードマップ2020年10月29日 プロフェッショナルAI×Roboticsエンジニアへのロードマップ
2020年10月29日 プロフェッショナルAI×RoboticsエンジニアへのロードマップNVIDIA Japan
 
SpotBugs(FindBugs)による 大規模ERPのコード品質改善
SpotBugs(FindBugs)による 大規模ERPのコード品質改善SpotBugs(FindBugs)による 大規模ERPのコード品質改善
SpotBugs(FindBugs)による 大規模ERPのコード品質改善Works Applications
 
Smart se seminor no6 agileqa cybozu
Smart se seminor no6 agileqa cybozuSmart se seminor no6 agileqa cybozu
Smart se seminor no6 agileqa cybozuatsushi nagata
 
20130817 Titanium勉強会(午前)
20130817 Titanium勉強会(午前)20130817 Titanium勉強会(午前)
20130817 Titanium勉強会(午前)Toshiro Yagi
 
20171129 01 講演資料_チームレベル agile からエンタープライズ dev_ops へ
20171129 01 講演資料_チームレベル agile からエンタープライズ dev_ops へ20171129 01 講演資料_チームレベル agile からエンタープライズ dev_ops へ
20171129 01 講演資料_チームレベル agile からエンタープライズ dev_ops へkitter11
 
Developers Summit 2018 | IoTサービスを始める際に必要なこととは
Developers Summit 2018 | IoTサービスを始める際に必要なこととはDevelopers Summit 2018 | IoTサービスを始める際に必要なこととは
Developers Summit 2018 | IoTサービスを始める際に必要なこととはSORACOM,INC
 
QAファンネル振り返り術
QAファンネル振り返り術QAファンネル振り返り術
QAファンネル振り返り術JumpeiIto2
 

Tendances (20)

新しい Visual Studio & .NET と新時代のアーキテクチャ
新しい Visual Studio & .NET と新時代のアーキテクチャ新しい Visual Studio & .NET と新時代のアーキテクチャ
新しい Visual Studio & .NET と新時代のアーキテクチャ
 
進化するEdge+α
進化するEdge+α進化するEdge+α
進化するEdge+α
 
Atlassian Summit 2015でのDevOps関連の取り組みについて
Atlassian Summit 2015でのDevOps関連の取り組みについてAtlassian Summit 2015でのDevOps関連の取り組みについて
Atlassian Summit 2015でのDevOps関連の取り組みについて
 
.Net技術でこれからも食べていくための技術戦略
.Net技術でこれからも食べていくための技術戦略.Net技術でこれからも食べていくための技術戦略
.Net技術でこれからも食べていくための技術戦略
 
.NET技術でこれからも食べていくための技術戦略
.NET技術でこれからも食べていくための技術戦略.NET技術でこれからも食べていくための技術戦略
.NET技術でこれからも食べていくための技術戦略
 
GitLabのAutoDevOpsを試してみた
GitLabのAutoDevOpsを試してみたGitLabのAutoDevOpsを試してみた
GitLabのAutoDevOpsを試してみた
 
HTML5ハイブリッド アプリ開発の実践〜開発現場ですぐに活かせるコツを伝授〜
HTML5ハイブリッド アプリ開発の実践〜開発現場ですぐに活かせるコツを伝授〜HTML5ハイブリッド アプリ開発の実践〜開発現場ですぐに活かせるコツを伝授〜
HTML5ハイブリッド アプリ開発の実践〜開発現場ですぐに活かせるコツを伝授〜
 
進化するEdge! Creators Update版の新機能一挙紹介!
進化するEdge! Creators Update版の新機能一挙紹介!進化するEdge! Creators Update版の新機能一挙紹介!
進化するEdge! Creators Update版の新機能一挙紹介!
 
事例で解説するハイブリッドアプリ開発のポイント
事例で解説するハイブリッドアプリ開発のポイント 事例で解説するハイブリッドアプリ開発のポイント
事例で解説するハイブリッドアプリ開発のポイント
 
進化するEdge! ~Creators Update版の新機能から既存機能までまとめて解説!~
進化するEdge! ~Creators Update版の新機能から既存機能までまとめて解説!~進化するEdge! ~Creators Update版の新機能から既存機能までまとめて解説!~
進化するEdge! ~Creators Update版の新機能から既存機能までまとめて解説!~
 
【16-E-4】残業ゼロで開発スピードが10倍に!もう元の開発体制には戻れないデンソー流のアジャイル開発
【16-E-4】残業ゼロで開発スピードが10倍に!もう元の開発体制には戻れないデンソー流のアジャイル開発【16-E-4】残業ゼロで開発スピードが10倍に!もう元の開発体制には戻れないデンソー流のアジャイル開発
【16-E-4】残業ゼロで開発スピードが10倍に!もう元の開発体制には戻れないデンソー流のアジャイル開発
 
夏サミ 2012 [B-2]エンタープライズ開発におけるコラボレーション - JIRAによる顧客と開発チームのつなぎ方
夏サミ 2012 [B-2]エンタープライズ開発におけるコラボレーション - JIRAによる顧客と開発チームのつなぎ方夏サミ 2012 [B-2]エンタープライズ開発におけるコラボレーション - JIRAによる顧客と開発チームのつなぎ方
夏サミ 2012 [B-2]エンタープライズ開発におけるコラボレーション - JIRAによる顧客と開発チームのつなぎ方
 
2020年10月29日 プロフェッショナルAI×Roboticsエンジニアへのロードマップ
2020年10月29日 プロフェッショナルAI×Roboticsエンジニアへのロードマップ2020年10月29日 プロフェッショナルAI×Roboticsエンジニアへのロードマップ
2020年10月29日 プロフェッショナルAI×Roboticsエンジニアへのロードマップ
 
SpotBugs(FindBugs)による 大規模ERPのコード品質改善
SpotBugs(FindBugs)による 大規模ERPのコード品質改善SpotBugs(FindBugs)による 大規模ERPのコード品質改善
SpotBugs(FindBugs)による 大規模ERPのコード品質改善
 
Smart se seminor no6 agileqa cybozu
Smart se seminor no6 agileqa cybozuSmart se seminor no6 agileqa cybozu
Smart se seminor no6 agileqa cybozu
 
20130817 Titanium勉強会(午前)
20130817 Titanium勉強会(午前)20130817 Titanium勉強会(午前)
20130817 Titanium勉強会(午前)
 
Developer summit codeer
Developer summit codeerDeveloper summit codeer
Developer summit codeer
 
20171129 01 講演資料_チームレベル agile からエンタープライズ dev_ops へ
20171129 01 講演資料_チームレベル agile からエンタープライズ dev_ops へ20171129 01 講演資料_チームレベル agile からエンタープライズ dev_ops へ
20171129 01 講演資料_チームレベル agile からエンタープライズ dev_ops へ
 
Developers Summit 2018 | IoTサービスを始める際に必要なこととは
Developers Summit 2018 | IoTサービスを始める際に必要なこととはDevelopers Summit 2018 | IoTサービスを始める際に必要なこととは
Developers Summit 2018 | IoTサービスを始める際に必要なこととは
 
QAファンネル振り返り術
QAファンネル振り返り術QAファンネル振り返り術
QAファンネル振り返り術
 

Similaire à [GrapeCity Web TECH FORUM 2018]レガシーからの移行 - 株式会社日本プロテック

Angular でもっとAPIファースト・もっとモダンデザインなWebアプリケーションを作ろう!
Angular でもっとAPIファースト・もっとモダンデザインなWebアプリケーションを作ろう!Angular でもっとAPIファースト・もっとモダンデザインなWebアプリケーションを作ろう!
Angular でもっとAPIファースト・もっとモダンデザインなWebアプリケーションを作ろう!CData Software Japan
 
サイネージを使う顧客創出のシナリオ
サイネージを使う顧客創出のシナリオサイネージを使う顧客創出のシナリオ
サイネージを使う顧客創出のシナリオCRI Japan, Inc.
 
デバイスWebAPI/Symphonyを軸としたIoTの展開について
デバイスWebAPI/Symphonyを軸としたIoTの展開についてデバイスWebAPI/Symphonyを軸としたIoTの展開について
デバイスWebAPI/Symphonyを軸としたIoTの展開についてDevice WebAPI Consortium
 
チラシルiOSでの広告枠開発
チラシルiOSでの広告枠開発チラシルiOSでの広告枠開発
チラシルiOSでの広告枠開発Satoshi Takano
 
Spring I/O 2018 報告 RESTDocs RAML, Cloud Contract
Spring I/O 2018 報告 RESTDocs RAML, Cloud ContractSpring I/O 2018 報告 RESTDocs RAML, Cloud Contract
Spring I/O 2018 報告 RESTDocs RAML, Cloud ContractTakuya Iwatsuka
 
技術選択とアーキテクトの役割
技術選択とアーキテクトの役割技術選択とアーキテクトの役割
技術選択とアーキテクトの役割Toru Yamaguchi
 
エヌビディアのディープラーニング戦略
エヌビディアのディープラーニング戦略エヌビディアのディープラーニング戦略
エヌビディアのディープラーニング戦略NVIDIA Japan
 
たかがAPI,されどAPI、シナジーで広がるビジネスチャンス
たかがAPI,されどAPI、シナジーで広がるビジネスチャンスたかがAPI,されどAPI、シナジーで広がるビジネスチャンス
たかがAPI,されどAPI、シナジーで広がるビジネスチャンスOsaka University
 
20170626 さくらインターネット Stripe Magento
20170626 さくらインターネット Stripe Magento20170626 さくらインターネット Stripe Magento
20170626 さくらインターネット Stripe MagentoHirokazu Nishi
 
2018年度新入社員研修実績紹介
2018年度新入社員研修実績紹介2018年度新入社員研修実績紹介
2018年度新入社員研修実績紹介CASAREAL, Inc.
 
SkyWay国内唯一のCPaaS
SkyWay国内唯一のCPaaSSkyWay国内唯一のCPaaS
SkyWay国内唯一のCPaaSKensaku Komatsu
 

Similaire à [GrapeCity Web TECH FORUM 2018]レガシーからの移行 - 株式会社日本プロテック (20)

Angular でもっとAPIファースト・もっとモダンデザインなWebアプリケーションを作ろう!
Angular でもっとAPIファースト・もっとモダンデザインなWebアプリケーションを作ろう!Angular でもっとAPIファースト・もっとモダンデザインなWebアプリケーションを作ろう!
Angular でもっとAPIファースト・もっとモダンデザインなWebアプリケーションを作ろう!
 
YJTC18 A-1 大規模サーバの戦略
YJTC18 A-1 大規模サーバの戦略YJTC18 A-1 大規模サーバの戦略
YJTC18 A-1 大規模サーバの戦略
 
オンライン セミナー Infragistics ultimate 2015 vol.1 最新機能ハイライト(公開版)
オンライン セミナー Infragistics ultimate 2015 vol.1 最新機能ハイライト(公開版)オンライン セミナー Infragistics ultimate 2015 vol.1 最新機能ハイライト(公開版)
オンライン セミナー Infragistics ultimate 2015 vol.1 最新機能ハイライト(公開版)
 
サイネージを使う顧客創出のシナリオ
サイネージを使う顧客創出のシナリオサイネージを使う顧客創出のシナリオ
サイネージを使う顧客創出のシナリオ
 
デバイスWebAPI/Symphonyを軸としたIoTの展開について
デバイスWebAPI/Symphonyを軸としたIoTの展開についてデバイスWebAPI/Symphonyを軸としたIoTの展開について
デバイスWebAPI/Symphonyを軸としたIoTの展開について
 
チラシルiOSでの広告枠開発
チラシルiOSでの広告枠開発チラシルiOSでの広告枠開発
チラシルiOSでの広告枠開発
 
Yahoo!ブラウザーにおける市場環境の分析と戦略化
Yahoo!ブラウザーにおける市場環境の分析と戦略化Yahoo!ブラウザーにおける市場環境の分析と戦略化
Yahoo!ブラウザーにおける市場環境の分析と戦略化
 
Googleアシスタントアプリ実際のところ
Googleアシスタントアプリ実際のところ Googleアシスタントアプリ実際のところ
Googleアシスタントアプリ実際のところ
 
Spring I/O 2018 報告会
Spring I/O 2018 報告会Spring I/O 2018 報告会
Spring I/O 2018 報告会
 
Spring I/O 2018 報告 RESTDocs RAML, Cloud Contract
Spring I/O 2018 報告 RESTDocs RAML, Cloud ContractSpring I/O 2018 報告 RESTDocs RAML, Cloud Contract
Spring I/O 2018 報告 RESTDocs RAML, Cloud Contract
 
技術選択とアーキテクトの役割
技術選択とアーキテクトの役割技術選択とアーキテクトの役割
技術選択とアーキテクトの役割
 
20110824 android apps_endo
20110824 android apps_endo20110824 android apps_endo
20110824 android apps_endo
 
エヌビディアのディープラーニング戦略
エヌビディアのディープラーニング戦略エヌビディアのディープラーニング戦略
エヌビディアのディープラーニング戦略
 
たかがAPI,されどAPI、シナジーで広がるビジネスチャンス
たかがAPI,されどAPI、シナジーで広がるビジネスチャンスたかがAPI,されどAPI、シナジーで広がるビジネスチャンス
たかがAPI,されどAPI、シナジーで広がるビジネスチャンス
 
Toolsの杜- 弥生株式会社の自動仕訳エンジンを支えるフロントエンド ~ 「ダサいは、バグだ!」を標榜してUXを徹底的に追求する ~
Toolsの杜- 弥生株式会社の自動仕訳エンジンを支えるフロントエンド ~ 「ダサいは、バグだ!」を標榜してUXを徹底的に追求する ~Toolsの杜- 弥生株式会社の自動仕訳エンジンを支えるフロントエンド ~ 「ダサいは、バグだ!」を標榜してUXを徹底的に追求する ~
Toolsの杜- 弥生株式会社の自動仕訳エンジンを支えるフロントエンド ~ 「ダサいは、バグだ!」を標榜してUXを徹底的に追求する ~
 
20170626 さくらインターネット Stripe Magento
20170626 さくらインターネット Stripe Magento20170626 さくらインターネット Stripe Magento
20170626 さくらインターネット Stripe Magento
 
20110824 android apps_endo
20110824 android apps_endo20110824 android apps_endo
20110824 android apps_endo
 
2018年度新入社員研修実績紹介
2018年度新入社員研修実績紹介2018年度新入社員研修実績紹介
2018年度新入社員研修実績紹介
 
WebRTCで動かす“テレイグジスタンス”ロボット
WebRTCで動かす“テレイグジスタンス”ロボットWebRTCで動かす“テレイグジスタンス”ロボット
WebRTCで動かす“テレイグジスタンス”ロボット
 
SkyWay国内唯一のCPaaS
SkyWay国内唯一のCPaaSSkyWay国内唯一のCPaaS
SkyWay国内唯一のCPaaS
 

Plus de Developer Solutions事業部 メシウス株式会社 (旧グレープシティ株式会社)

Plus de Developer Solutions事業部 メシウス株式会社 (旧グレープシティ株式会社) (20)

Angularを利用したシステム開発事例
Angularを利用したシステム開発事例Angularを利用したシステム開発事例
Angularを利用したシステム開発事例
 
SPAを選択した理由とその結果 ~Reactを添えて~
SPAを選択した理由とその結果 ~Reactを添えて~SPAを選択した理由とその結果 ~Reactを添えて~
SPAを選択した理由とその結果 ~Reactを添えて~
 
グレープシティ製品からみるSPA開発のトレンドと動向
グレープシティ製品からみるSPA開発のトレンドと動向グレープシティ製品からみるSPA開発のトレンドと動向
グレープシティ製品からみるSPA開発のトレンドと動向
 
日常使っているツールを調べる ー Visual Studio Code について ー
日常使っているツールを調べる ー Visual Studio Code について ー日常使っているツールを調べる ー Visual Studio Code について ー
日常使っているツールを調べる ー Visual Studio Code について ー
 
グレープシティと業務システム開発のモダナイゼーション
グレープシティと業務システム開発のモダナイゼーショングレープシティと業務システム開発のモダナイゼーション
グレープシティと業務システム開発のモダナイゼーション
 
.NET CoreアプリでWindowsの外に出発
.NET CoreアプリでWindowsの外に出発.NET CoreアプリでWindowsの外に出発
.NET CoreアプリでWindowsの外に出発
 
Webアプリの向こうに見えるPWAアプリ開発
Webアプリの向こうに見えるPWAアプリ開発Webアプリの向こうに見えるPWAアプリ開発
Webアプリの向こうに見えるPWAアプリ開発
 
クロスプラットフォームの夢をみる
クロスプラットフォームの夢をみるクロスプラットフォームの夢をみる
クロスプラットフォームの夢をみる
 
Toolsの杜 - 富士通九州システムズ&グレープシティ -「これまでの業務アプリケーションはどうなる?」
Toolsの杜 - 富士通九州システムズ&グレープシティ -「これまでの業務アプリケーションはどうなる?」Toolsの杜 - 富士通九州システムズ&グレープシティ -「これまでの業務アプリケーションはどうなる?」
Toolsの杜 - 富士通九州システムズ&グレープシティ -「これまでの業務アプリケーションはどうなる?」
 
Toolsの杜 - ランチセッションB - HTML5時代の業務アプリケーション開発にマッチ!グレープシティ JavaScript製品のご紹介
Toolsの杜 - ランチセッションB - HTML5時代の業務アプリケーション開発にマッチ!グレープシティ JavaScript製品のご紹介Toolsの杜 - ランチセッションB - HTML5時代の業務アプリケーション開発にマッチ!グレープシティ JavaScript製品のご紹介
Toolsの杜 - ランチセッションB - HTML5時代の業務アプリケーション開発にマッチ!グレープシティ JavaScript製品のご紹介
 
Toolsの杜 - ランチセッションA - Microsoftの開発環境の変遷とグレープシティの.NET開発支援コンポーネントの最新動向
Toolsの杜 - ランチセッションA - Microsoftの開発環境の変遷とグレープシティの.NET開発支援コンポーネントの最新動向Toolsの杜 - ランチセッションA - Microsoftの開発環境の変遷とグレープシティの.NET開発支援コンポーネントの最新動向
Toolsの杜 - ランチセッションA - Microsoftの開発環境の変遷とグレープシティの.NET開発支援コンポーネントの最新動向
 
Toolsの杜 - マーベリック - 「IT×デザイン」のススメ
Toolsの杜 - マーベリック - 「IT×デザイン」のススメToolsの杜 - マーベリック - 「IT×デザイン」のススメ
Toolsの杜 - マーベリック - 「IT×デザイン」のススメ
 
Excel業務をWebアプリに!コンポーネントベンダーが眺めたフロントエンド開発
Excel業務をWebアプリに!コンポーネントベンダーが眺めたフロントエンド開発Excel業務をWebアプリに!コンポーネントベンダーが眺めたフロントエンド開発
Excel業務をWebアプリに!コンポーネントベンダーが眺めたフロントエンド開発
 
グレープシティのMicrosoft Azure対応への取り組み
グレープシティのMicrosoft Azure対応への取り組みグレープシティのMicrosoft Azure対応への取り組み
グレープシティのMicrosoft Azure対応への取り組み
 
進化する帳票開発ツール「ActiveReports」の最新機能のご紹介
進化する帳票開発ツール「ActiveReports」の最新機能のご紹介進化する帳票開発ツール「ActiveReports」の最新機能のご紹介
進化する帳票開発ツール「ActiveReports」の最新機能のご紹介
 
ActiveReports、20年の歩みとその魅力
ActiveReports、20年の歩みとその魅力ActiveReports、20年の歩みとその魅力
ActiveReports、20年の歩みとその魅力
 
グレープシティのJavaScriptライブラリ
グレープシティのJavaScriptライブラリグレープシティのJavaScriptライブラリ
グレープシティのJavaScriptライブラリ
 
開発ツール「Wijmo」と「SpreadJS」からみる業務アプリケーションの変遷とこれから
開発ツール「Wijmo」と「SpreadJS」からみる業務アプリケーションの変遷とこれから開発ツール「Wijmo」と「SpreadJS」からみる業務アプリケーションの変遷とこれから
開発ツール「Wijmo」と「SpreadJS」からみる業務アプリケーションの変遷とこれから
 
Xamarinを利用したアプリ開発
Xamarinを利用したアプリ開発Xamarinを利用したアプリ開発
Xamarinを利用したアプリ開発
 
Xamarinの概要
Xamarinの概要Xamarinの概要
Xamarinの概要
 

Dernier

新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 
プレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツールプレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツールsugiuralab
 
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directoryosamut
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxAtomu Hidaka
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000Shota Ito
 
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 
プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価sugiuralab
 

Dernier (8)

新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 
プレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツールプレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツール
 
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
 
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
 
プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価
 

[GrapeCity Web TECH FORUM 2018]レガシーからの移行 - 株式会社日本プロテック

  • 3. Copyright (C) 2018 NIHON-Protec Co., Ltd. All Rights Reserved. はじめに レガシーシステムの移行要件 移行ソリューション さぁ開発だ(開発の進め方) 苦労した点 Wijmoを使ってみて 最後に アジェンダ
  • 4. Copyright (C) 2018 NIHON-Protec Co., Ltd. All Rights Reserved. はじめに 業務システムは、C/S型アプリから、Webアプリへ Windowsアプリ Internet ブラウザ クライアント サーバー クライアント DB+Webアプリ サーバー DB スマホ タブレット テレビ・ゲーム 家電・車・農業 監視カメラ C/S型アプリ Webアプリ モバイルアプリ →クラウド化 ITの急速な技術革新
  • 5. Copyright (C) 2018 NIHON-Protec Co., Ltd. All Rights Reserved. はじめに Webアプリの壁の打開に向けて  C/S型のU/Iに慣れきっている。(キーボードコントロール)  Webの挙動のストレス(遅い、使いづらい、不安定) 1995年 JavaApplet公開(インタラクティブ) 1996年 JDK1.0公開/ネスケ2.0に、JavaScriptが実装 1998年 IE6、ネスケ7.1、Firefox、OperaでDOMをサポート 2005年 Ajax(JavaScriptによる非同期通信) 2006年 Flex 2.0公開 2007年 Flash公開、Silverlight公開 2008年 Air公開  RIAを取り入れることで、Webアプリケーションの表現力・操作性を向上 10 年前  Webアプリの当初の課題
  • 6. Copyright (C) 2018 NIHON-Protec Co., Ltd. All Rights Reserved. 1995年 JavaApplet公開(インタラクティブ) 1996年 JDK1.0公開/ネスケ2.0に、JavaScriptが実装 1998年 IE6、ネスケ7.1、Firefox、OperaでDOMをサポート 2005年 Ajax(JavaScriptによる非同期通信) 2006年 Flex 2.0公開 2007年 Flash公開、Silverlight公開 2008年 Air公開 はじめに サポート終了 企業課題 レガシーシステム Flash/Flex :2020年 Silverlight :2021年
  • 8. Copyright (C) 2018 NIHON-Protec Co., Ltd. All Rights Reserved. レガシーシステムの移行要件 情シスの課題と悩み  ユーザー要望ではない。(予算の捻出)  仕様書がなく、システムの理解度が乏しい  見積の算出と移行ソリューション  モチベーション  ユーザーニーズを取り込み過ぎ?(複雑なU/I)  さまざまなプラットフォーム  サポート切れによる業務停止のリスク回避
  • 9. Copyright (C) 2018 NIHON-Protec Co., Ltd. All Rights Reserved. レガシーシステムの移行要件 ユーザー・情シスからの移行要件  同じ画面デザイン(興味なし?)  既存と同等の操作性(RIAの継承)  プログラム解析(なぜか仕様書がない)  書き起こし・書き直しのコード量の最小化  マルチブラウザ対応  長期的なサポート  標準スキルでの運用  アプリ配布の容易性  短期間で仕上げて欲しい
  • 10. Copyright (C) 2018 NIHON-Protec Co., Ltd. All Rights Reserved. レガシーシステムの移行要件 既存システムが、Silverlightの構成例 ブラウザ+Plugin DB+Webアプリ Internet RIA
  • 12. Copyright (C) 2018 NIHON-Protec Co., Ltd. All Rights Reserved. 移行ソリューション 主な移行アーキテクチャの比較検討 Windowsアプリ 既存と同等の操作性(RIAの継承) → ライブラリ、Componentの検討  書き起こし・書き直しのコード量の最小化 → サーバー側のコードを残す  マルチブラウザ対応 →HTML5/JavaScript/CSSで実現  長期的なサポート →信頼できる団体、企業  標準スキルでの運用 →JavaScript .Net系  アプリ配布の容易性 →Webアプリ ASP.net Web Form JavaScript Framework HTML5 ASP.net MVC Java PHP Rails ■移行要件と検討方針 ■アーキテクチャ候補 JavaScript
  • 13. Copyright (C) 2018 NIHON-Protec Co., Ltd. All Rights Reserved. 移行ソリューション • サーバーサイドはそのまま利用 – ビジネスロジックは一切いじらない • フロントとサーバーの間に中間層を設けてSOAP (XML)からJSONに変換 – 本当に変換するだけ – BFFもどきと言えなくもないかもしれない 使えるモノは使う
  • 14. Copyright (C) 2018 NIHON-Protec Co., Ltd. All Rights Reserved. 移行ソリューション 既存システム (Server) 既存システム (Client) 使えるモノは使う OLD 既存システム (Server) 中間層 (Server) SPA (Client) NEW SOAP
  • 15. Copyright (C) 2018 NIHON-Protec Co., Ltd. All Rights Reserved. 移行ソリューション • SPA(Angular)にした • 既存システムがコンポーネントで分割されていた ので、同じ単位で移植 Silverlight Angular XAML HTMLテンプレート コードビハインド コンポーネント (TypeScript) 既存の構造を活かす
  • 16. Copyright (C) 2018 NIHON-Protec Co., Ltd. All Rights Reserved. 移行ソリューション • UXを悪化させない • 社内システムなのでSEO、SSR考慮しなくてよい • コンポーネントをそのまま移植できる SPA(Single Page Application)
  • 17. Copyright (C) 2018 NIHON-Protec Co., Ltd. All Rights Reserved. 移行ソリューション • 双方向バインディング – コンポーネントだけではなく、内部の構造も既存シス テムを踏襲できる • 型! – TypeScriptがデフォルト – SIerのバックボーンを考慮する心意気(違う) • フルスタック – HTTPリクエスト、ルーティングなどなど – ライブラリの組み合わせを検証してる時間が... Angularを採用した理由
  • 18. Copyright (C) 2018 NIHON-Protec Co., Ltd. All Rights Reserved. 移行ソリューション • React • Vue.js その他のSPAフレームワーク
  • 19. Copyright (C) 2018 NIHON-Protec Co., Ltd. All Rights Reserved. 移行ソリューション • この短期間で... – Functionalなスタイルに全員が馴染めるか? – Reduxのややこしい部分に回答を出せるか? • Stateの設計 • 非同期処理 • 双方向バインディングがない • TypeScriptと組み合わせたときに、一部型パズル みたいになって辛い – 特にRedux、Material UIなど Reactを採用しなかった理由
  • 20. Copyright (C) 2018 NIHON-Protec Co., Ltd. All Rights Reserved. 移行ソリューション • TypeScriptの型付けが微妙と言われていた • 体制が脆そうで説得し辛かった • 感触は良かった Vue.jsを採用しなかった理由
  • 21. Copyright (C) 2018 NIHON-Protec Co., Ltd. All Rights Reserved. 移行ソリューション Vue.jsを採用しなかった理由 GitHubより
  • 27. Copyright (C) 2018 NIHON-Protec Co., Ltd. All Rights Reserved. 移行ソリューション • 様々なコンポーネントが使われていた – データグリッド – ツリービュー – etc... リッチなUIを作らないといけない
  • 28. Copyright (C) 2018 NIHON-Protec Co., Ltd. All Rights Reserved. 移行ソリューション Wijmoを利用した画面
  • 29. Copyright (C) 2018 NIHON-Protec Co., Ltd. All Rights Reserved. 移行ソリューション • 自作 • 色々な無償ライブラリを組み合わせる – UIのフィーリング、利用方法 • ライブラリ選定のポイント – 機能の豊富さ(一貫性を保つためにも!) – サポート(言語含む) – 情報量 – 品質 – 実績 リッチなUIを作らないといけない
  • 30. Copyright (C) 2018 NIHON-Protec Co., Ltd. All Rights Reserved. 移行ソリューション • Angular/TypeScriptをサポート • 多機能 • サポート(日本語/バグFixのスピード) • 継続的な更新、メンテナンス • 他製品の利用実績 – ComponentOne – InputMan – ActiveReports – Spread Wijmoを採用した理由
  • 32. Copyright (C) 2018 NIHON-Protec Co., Ltd. All Rights Reserved. 開発の進め方 • フロント側、サーバー側で分業 – 短納期ゆえ... • サーバー側の仕様、I/FはAPI Blueprintで定義
  • 33. Copyright (C) 2018 NIHON-Protec Co., Ltd. All Rights Reserved. 開発の進め方 • MarkdownでAPI仕様書が書けるツール • モチベーション – 仕様書もバージョン管理したい – Markdownで書ける – キレイなHTMLを生成できる API Blueprint
  • 34.
  • 35.
  • 36. Copyright (C) 2018 NIHON-Protec Co., Ltd. All Rights Reserved. 開発の進め方 • Markdownで書ける – Swaggerは(当時)JSON or YAML • コードファーストができない – ASMX Webサービスで使えるのか不明 (おそらく不可能) なぜSwaggerにしなかったのか?
  • 37. Copyright (C) 2018 NIHON-Protec Co., Ltd. All Rights Reserved. 開発の進め方 フロント側 サーバー側 1 モック作成(HTML) API仕様書作成(API Blueprint) 2 API定義を元に作成したダミーデー タを使って実装を進める API実装 3 本物のAPIを使って実装、テスト 次のAPI仕様書作成 4 次の画面のモック作成 完成した画面(Angular)をCMSに 組み込んでテスト 5 1~4を繰り返す 実際の開発フロー
  • 41. Copyright (C) 2018 NIHON-Protec Co., Ltd. All Rights Reserved. 苦労した点 • Angular • API Blueprint • プラットフォーム(CMS) • テスト自動化 • ブラウザ間の差異
  • 42. Copyright (C) 2018 NIHON-Protec Co., Ltd. All Rights Reserved. 苦労した点 • 学習コスト – TypeScript – RxJSにピンとこない問題 • 双方向バインディング – 関数と引数で全てが決まるReactの考え方の方がシンプ ル Angular
  • 43. Copyright (C) 2018 NIHON-Protec Co., Ltd. All Rights Reserved. 苦労した点 • Markdown(風)シンタックス – 慣れるまでにかなりハマった API Blueprint
  • 44. Copyright (C) 2018 NIHON-Protec Co., Ltd. All Rights Reserved. 苦労した点 • 事例が見つからない • Wijmoが保証していない プラットフォーム(CMS)
  • 45. Copyright (C) 2018 NIHON-Protec Co., Ltd. All Rights Reserved. 苦労した点 • 自動化 – 一画面やって挫折 – Angularはテストも面倒見てくれるので、書くのは楽と いえば楽 • 人力 – 最初は地獄だった テスト
  • 46. Copyright (C) 2018 NIHON-Protec Co., Ltd. All Rights Reserved. 苦労した点 テスト 実運用時の構成 Spring(Java) Web API Angular
  • 47. Copyright (C) 2018 NIHON-Protec Co., Ltd. All Rights Reserved. 苦労した点 テスト (普通の)ローカル開発時の構成 Spring(Java) Web API Angular (単独起動)
  • 48. Copyright (C) 2018 NIHON-Protec Co., Ltd. All Rights Reserved. 苦労した点 テスト (普通の)ローカル開発時の構成 Spring(Java) Web API Angular (単独起動)
  • 49. Copyright (C) 2018 NIHON-Protec Co., Ltd. All Rights Reserved. 苦労した点 テスト (実際の)ローカル開発時の構成 Spring(Java) Web API Angularの ソース Angular ソース修正のたびに、 Angularをビルド& Springにデプロイ
  • 50. Copyright (C) 2018 NIHON-Protec Co., Ltd. All Rights Reserved. 苦労した点 • Storybookを導入 – コンポーネントのカタログを作るためのツール テスト
  • 51.
  • 52. Copyright (C) 2018 NIHON-Protec Co., Ltd. All Rights Reserved. 苦労した点 • まずはStorybook上で実装、テスト – ソースの変更を検知して即時画面反映 • OKであればSpringに載せてテスト テスト
  • 53. Copyright (C) 2018 NIHON-Protec Co., Ltd. All Rights Reserved. 苦労した点 自作した部分について… • 見た目が違う • 印刷結果が真っ白 • if文でブラウザ判定 – 辛い • Silverlight、Flexではプラットフォームが吸収し てくれていた(と思われる)点 ブラウザ間の差異
  • 55. Copyright (C) 2018 NIHON-Protec Co., Ltd. All Rights Reserved. Wijmoを使ってみて • 良かった点 – サポート – だいたいなんでもある – 見た目が業務アプリ向け • 改善希望 – ドキュメントの充実 – 見た目のカスタマイズ性向上 – TypeScriptの型定義の充実
  • 57. Copyright (C) 2018 NIHON-Protec Co., Ltd. All Rights Reserved. さいごに • サーバーサイドを流用+フロントをJS(SPA)で 置き換えるという方針は今の所ベスト – 直近の案件は全てこの方針で進めている • 見積は、慎重に… 画面の表面だけで判断できない。 – ツールによるメトリクス分析。 – テスト自動化の工数を取れるとベスト。 • 無理に自作しない。 • 画面のデザインは変わる前提で話す