Slide 1

Slide 1 text

ダーシノ / @bc_rikko フロントエンドカンファレンス北海道2024 スポンサーセッション 意外とがんばってる さくらインターネット FEチーム 存在感が薄い?!

Slide 2

Slide 2 text

フロントエンドエンジニア ダーシノ / @bc_rikko NES.css ファミコン風CSSフレームワーク GitHub 20,000+ stars さくらの INFRA WARS エイプリルフール企画のブラウザゲーム 企画、ゲームデザイン、開発、サウンドデザイン 仮想DOM実践入門 AMBI(旧エンジニアHub)に寄稿 フレームワークを実装しながら仮想DOMを学ぶ記事 嫌いな技術に好きを見つける レバテックラボのインタビュー記事 嫌いだったCSSをどのように克服したか

Slide 3

Slide 3 text

さくらインターネットって “サーバー”の会社でしょ? フロントエンドエンジニア いるんですか?!

Slide 4

Slide 4 text

意外とがんばってます!!

Slide 5

Slide 5 text

フロントエンドチームで 力を入れて取り組んだことを 3つ紹介します

Slide 6

Slide 6 text

1 得意分野を活かした デザインシステムの共創

Slide 7

Slide 7 text

課題が共有されない 社内下請け構造 得意分野を活かした デザインシステムの共創 エンジニア デザイナー エンジニア デザイナー 発注 納品 デザインエンジニア デザインシステムを用いた コラボレーション 完全分業

Slide 8

Slide 8 text

解決の幅が広がる What(作業依頼)ではなくWhy(課題)を共有することで、 要望に対し的確なアクションを起こせるようになる エンジニアもUIデザインに貢献 技術的視点(アクセシビリティやパフォーマンス、データ構造など)から 意見を共有することで、使いやすいだけでなく実装しやすいUIになる

Slide 9

Slide 9 text

次の10年を戦うための ソフトウェア設計戦略 2

Slide 10

Slide 10 text

さくらのクラウド UIの歴史 サービス開始 「さくらのクラウド」を提供開始 サーバー、ストレージ、ネットワークの3機能のみ 2011 2013 UIリニューアル コントロールパネルをリニューアル 機能拡張しやすいUIに変更 2026 政府クラウド本認定(仮) 2025年度末までに技術要件を満たす 2024 現在 2013年時点のUIを拡張・メンテして使っている 提供サービスは40以上、複雑なUIになっている

Slide 11

Slide 11 text

なぜリニューアルできなかったか ライブラリ依存症 • 依存をばらまくライブラリが多数ある • 古い独自UIライブラリが剥がせない • IE対応で導入したライブラリの数々 • 削除したけど影響範囲がわからない • バージョンを上げると壊れる • 複雑なビルド処理を移行できない • 改修が大規模になってしまう • …… 歪なソフトウェア設計 • プレゼンテーションとビジネスロジック、 外部通信が密結合して単体テストが書けない • トランザクションスクリプトで可読性が悪い • ドメイン知識が散らかっている • グローバル変数で状態管理をしている • 存在し得ないデータ型が許容されている • 型付けできないオブジェクトが多数ある • ……

Slide 12

Slide 12 text

課題解決のためにやったこと フロントエンドの複雑さに立ち向かう フロントエンドの設計方法をDDDやClean Architectureの視点から共通認識を作る https://speakerdeck.com/bcrikko/tackling-complexity-of-front-end- software-with-ddd-and-clean-architecture 自分でやった設計ひとり反省会 さくらに入社してからずっと改善を続けていたUIで、自分がやってしまった失敗の分析と共有 https://speakerdeck.com/bcrikko/evaluation-of-my-architecture フロントエンドのモデル駆動設計 他社のフロントエンドエンジニアとドメインモデリングについて意見交換 https://kuroeveryday.blogspot.com/2024/02/frontend-for-backend- engineer.html

Slide 13

Slide 13 text

ドメインモデリングと関心の分離 曖昧な状態を排除し、ドメイン知識をドメイン層に集約する 関心を分離し、可読性とテスト容易性を確保する 入れ替え・パージしやすい設計 ライブラリ依存を局所化し、振り回されないようにする バージョンアップに耐えられない場合は即パージできる仕組みをつくる

Slide 14

Slide 14 text

互いに高め合う 社内勉強会 3

Slide 15

Slide 15 text

社内勉強会の例 Design Weekly デザイナーグループ主催の雑談スタイルの勉強会 デザインやWeb制作に関するさまざまなネタを共有する フロントエンド交流会※ 仲良くなることを目的とした雑談スタイルの交流会 フロントエンドにとどまらず、デザイン関連や仕事の相談を共有する バックエンド交流会 仲良くなることを目的とした雑談スタイルの交流会 フロントエンド交流会の姉妹勉強会でバックエンドを中心に共有する DDD読書会・モデリング勉強会※ エリック・エヴァンス著「ドメイン駆動設計」を読み解く会 本から学んだことを実際の開発現場を想定してモデリングを行う勉強会 CSS・コンポーネント設計勉強会※ デザイナーとフロントエンドエンジニアの共通認識を作る会 NES.css開発で培ったCSS設計、コンポーネント設計を共有する and more... ※は主催した勉強会

Slide 16

Slide 16 text

共通認識の形成とスキルアップ 共通認識を大切にし、メンバー全員が同じ方向を向いて仕事をする メンバーのスキルを底上げし、全員が対等な立場で議論をする 勉強会の種類が豊富 デザイナー〜インフラエンジニア(物理)までいるので勉強会の幅が広い マーケティングや法律、人事、経理、財務などの勉強会もある

Slide 17

Slide 17 text

さくら 採用 検索 社会を支える パブリッククラウドを 一緒に作りませんか? https://www.sakura.ad.jp/recruit/

Slide 18

Slide 18 text

“懇親会ぼっち”なので 一緒にお話しませんか? (こっちのほうが重要)