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
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
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
SaaSフロントエンド開発の現場で求められる技術 / Technologies for Saa...
Search
yudppp
March 30, 2023
Technology
300
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
SaaSフロントエンド開発の現場で求められる技術 / Technologies for SaaS Frontend Development in the Field
HRBrainの実例を基に、企業向けSaaS開発で 求められるフロントエンドの特徴と、 それを解決するために使用している技術について お話しします。
yudppp
March 30, 2023
More Decks by yudppp
See All by yudppp
開発者にもコーディングエージェントにも働きやすい環境を整える
yudppp
1
170
型安全なDrag and Dropの設計を考える
yudppp
5
1.1k
未知のプログラミング言語にChatGPTと共に挑む
yudppp
0
560
2019年 HRBrainの技術的挑戦 / hrbain technology challenge 2019
yudppp
3
1.5k
Web開発を支えるマイグレーションツールについて / sqldef introduction for psql users
yudppp
2
3.7k
ISUCON向けのツールを作った話 / isutools
yudppp
1
360
Row Level Securityはマルチテナントの銀の弾丸になりうるのか / Row Level Security is silver bullet for multitenancy?
yudppp
23
34k
Webサービス開発に必要な統計学入門 / study of statistics for web developers
yudppp
1
380
メジャーな Live Reloaderの違いをちゃんと調べて見た / Compare major live reloader of Go
yudppp
1
2k
Other Decks in Technology
See All in Technology
Getting Started with Google Antigravity
glaforge
0
180
ファミコンでPHPを動かす / PHP on the Famicom side b
tomzoh
0
140
AI時代のAPI開発を加速する品質ガードレール / API Quality Guardrails in the AI Era
yokawasa
0
180
宣言型部分更新は何を解決しどこへ向かうのか
shuta13
0
310
分析AIエージェントを育てる、動く環境を育てる
codatum
1
900
AI時代のPRレビューにどう向き合うか?
kairim0
1
170
メルペイ 会計システム概要と歴史
mewuto
0
210
今こそ知りたいAmplifyGen2
mkdev10
2
160
事業成長とデータ活用を止めないためのマネジメントへ挑戦
hiracky16
0
180
事業活動を AI Ready にする攻めと守りのデータエンジニアリング / data-engineering-for-ai-ready-business
pei0804
7
2.5k
夫婦で子育てするための育児標準化
codmoninc
PRO
0
160
オンラインゲームのシステム全体像 - コロプラ 2026年度 新卒研修
colopl
0
1.1k
Featured
See All Featured
Designing Experiences People Love
moore
143
24k
Product Roadmaps are Hard
iamctodd
55
13k
Building Adaptive Systems
keathley
44
3.2k
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
270
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
50
10k
Writing Fast Ruby
sferik
630
63k
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
580
The Pragmatic Product Professional
lauravandoore
37
7.5k
Making Projects Easy
brettharned
120
6.8k
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
3
1.3k
A better future with KSS
kneath
240
18k
Designing for humans not robots
tammielis
254
26k
Transcript
SaaSフロントエンド開発の現場で 求められる技術 Front-end Meetup 2023
yudppp 株式会社HRBrain CTO 大学では経営工学を学んでいました。 コードは今も昔もたくさん書いています。 前職はテレビ関連のVertical SaaS?を 作っていました。 好きな言葉は冪等性。 嫌いなモノは浮動小数点の誤差。
Abstract HRBrainの実例を基に、企業向けSaaS開発で 求められるフロントエンドの特徴と、 それを解決するために使用している技術について お話しします。
HRBrainについて HRBrainは、経営層・人事の課題解決と従業員の 活性化をサポートするためのサービスHRBrainを 開発・提供しています。 今回は、そのプロダクトの一つである 社員名簿機能を例にします。
社員名簿機能について 社員の名前や所属部署、職種などの情報を管理できます。
企業向けSaaSの世の中のイメージ 企業向けSaaSのフロントエンド開発は、 入力フォームやデータ管理画面が多く、 堅実なアプリケーション作りが求められるため、 面白さに欠ける印象があるかもしれません。
企業向けSaaSの特徴 画面上の特徴として下記3点が挙げられます ・カスタマイズ性が求められがち ・データ入力(フォーム)が多くなりがち ・データの可視化が求められがち
カスタマイズ性
カスタマイズ性 業務や課題対応のため、ユーザーに合わせた機能や レイアウトのカスタマイズが必要です。 特に大企業では、複雑な業務プロセスから カスタマイズ性が重視されます。
例① 業務として社用車を運転するため、 従業員の運転免許証の有効期限を管理していた。 一般的な社員情報に加え、 その内容もHRBrain上で管理したい。
例② 定年退職日(60歳を迎えた日が属する月末)を HRBrain上で管理して、定年退職に近づいた社員を 簡単にリスト化したい。
作ったもの 従業員データの項目追加・レイアウト編集画面を作成し、 テキスト以外に計算項目も設定可能に。 定年退職日算出など、エクセル関数のような機能を実装。 またこの機能は2021年5月に作成。
デモ
利用している技術 ・react-beautiful-dnd (今なら別の選択をしていたかも) ・Redux 元々DnDはコスパが悪いと思っていてやりたくなかったが、デザイナーと話しながらDnDなしでやろう とするとすごい使いにくいものになりそうだったのでやることにした
技術の見せドコロ① 再レンダリングを最小限に抑えるため、 大きなレイアウト情報を持つJSONを正規化し、 項目が多くても処理がスムーズになるように 意識した。
詳細の動画
技術の見せドコロ② デザイナーとのコミュニケーションが重要で、DnDを作る 際には表現すべき情報が増えがちです。 例えばドラッグしている時のアイテムの表現やアニメー ションなど、技術的な課題も考慮してデザイナーと連携す ることが求められます。
詳細の動画
カスタマイズ性まとめ DnDなどを用いたカスタマイズ画面が必要とされる 良いアプリケーションを作るためには、 パフォーマンスを意識しつつ、デザイナーとすり合わせ ていく。
データ入力 MEMO:ここで折り返し地点
データ入力について データ入力・管理が重要で、使いやすいフォーム作成が 必要です。 これにより顧客のデータ入力プロセスが最適化され、 オートコンプリートやバリデーションを利用し、 入力エラーの減少を実現します。
例③ 部署情報は階層構造で保持しています。部署設定や 絞り込み時に、どのようなフォームが設定しやすいかを 検討しました。
作ったもの(version1)
作ったもの(version2)
例④ 計算式項目を設定するときに、シンプルなInputの場合に 参照する項目の名前をTypoしてしまい、 正しく動かない事象が発生していた。
作ったもの
利用している技術 ・rich-textarea ・Tokenize / AST 計算式の言語仕様はサーバ側で保持されており、その仕様 を基に抽象構文木を作成し、Editorに表現しました。
Tokenize
AST
rich-textarea キャレットの位置を取得できる
rich-textarea 指定した文字の色を変えれる
あとは力技(再掲)
データ入力まとめ 二つの例のように単純なInputだけでなく、 データ入力時に誤りや手間が省けるような フォームを作成します。
データの可視化
データの可視化について データ可視化が重要で、売上や顧客データのグラフ化に よりビジネス状況が把握しやすくなります。 分析・可視化に適した機能提供が求められます。
作ったもの
利用している技術 ・Recharts ・vis.js チャート、グラフ、時系列グラフ、ダッシュボード、 テーブルなど色々。
データの可視化まとめ 多様なチャート作成が求められる。 用途やデータの種類に応じて適切なグラフを 選定する必要がある。
まとめ SaaSフロントエンドでは情報量が多く、 見せ方や扱いにフロントエンド力が重要です。 技術がなくても基本要件は満たせますが、 使いやすさに大きく影響します。 なので顧客に向き合うとSaaSのフロントエンドは楽しい ちなみに、レイアウト編集・計算式Editorは自分が実装し、その他は同僚が担当しています。
Appendix 0 計算式Editorの作り方 - HRBrain Blo 0 HRBrainについて