Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
Submit search
EN
Uploaded by
Yoshie Kaneno
PDF, PPTX
334,090 views
食べログのフロントエンドエンジニアってめっちゃ大変やねん・・・
2017/11/30「【エンジニア交流会】食 Tech 〜 食系サービスにおけるテクノロジーの裏側 〜」での発表資料
Internet
◦
Read more
46
Save
Share
Embed
Embed presentation
Download
Download as PDF, PPTX
1
/ 63
2
/ 63
3
/ 63
4
/ 63
5
/ 63
6
/ 63
7
/ 63
8
/ 63
9
/ 63
10
/ 63
11
/ 63
12
/ 63
13
/ 63
14
/ 63
15
/ 63
16
/ 63
17
/ 63
18
/ 63
19
/ 63
20
/ 63
21
/ 63
22
/ 63
23
/ 63
24
/ 63
25
/ 63
26
/ 63
27
/ 63
28
/ 63
29
/ 63
30
/ 63
31
/ 63
32
/ 63
33
/ 63
34
/ 63
35
/ 63
36
/ 63
37
/ 63
38
/ 63
39
/ 63
40
/ 63
41
/ 63
42
/ 63
43
/ 63
44
/ 63
45
/ 63
46
/ 63
47
/ 63
48
/ 63
49
/ 63
50
/ 63
51
/ 63
52
/ 63
53
/ 63
54
/ 63
55
/ 63
56
/ 63
57
/ 63
58
/ 63
59
/ 63
60
/ 63
61
/ 63
62
/ 63
63
/ 63
More Related Content
PDF
KafkaとPulsar
by
Yahoo!デベロッパーネットワーク
PDF
テスト文字列に「うんこ」と入れるな
by
Kentaro Matsui
PDF
新入社員のための大規模ゲーム開発入門 サーバサイド編
by
infinite_loop
PDF
正しいものを正しく作る塾-設計コース
by
増田 亨
PDF
20分くらいでわかった気分になれるC++20コルーチン
by
yohhoy
PDF
マイクロにしすぎた結果がこれだよ!
by
mosa siru
PDF
コンテナにおけるパフォーマンス調査でハマった話
by
Yuta Shimada
PPTX
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
by
NTT DATA Technology & Innovation
KafkaとPulsar
by
Yahoo!デベロッパーネットワーク
テスト文字列に「うんこ」と入れるな
by
Kentaro Matsui
新入社員のための大規模ゲーム開発入門 サーバサイド編
by
infinite_loop
正しいものを正しく作る塾-設計コース
by
増田 亨
20分くらいでわかった気分になれるC++20コルーチン
by
yohhoy
マイクロにしすぎた結果がこれだよ!
by
mosa siru
コンテナにおけるパフォーマンス調査でハマった話
by
Yuta Shimada
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
by
NTT DATA Technology & Innovation
What's hot
PDF
目grep入門 +解説
by
murachue
PDF
DeNAの大規模ライブ配信基盤を支える技術
by
DeNA
PDF
ドメイン駆動設計 本格入門
by
増田 亨
PDF
ピクサー USD 入門 新たなコンテンツパイプラインを構築する
by
Takahito Tejima
PPTX
オーバーエンジニアリングって何? #devsumi #devsumiA
by
Ore Product
PDF
UE4でマルチプレイヤーゲームを作ろう
by
エピック・ゲームズ・ジャパン Epic Games Japan
PDF
Docker入門: コンテナ型仮想化技術の仕組みと使い方
by
Yuichi Ito
PDF
UniTask入門
by
torisoup
PDF
Doozy UI 使おうぜ! #unity_lt
by
torisoup
PDF
エンジニアから飛んでくるマサカリを受け止める心得
by
Reimi Kuramochi Chiba
PDF
コンテナ未経験新人が学ぶコンテナ技術入門
by
Kohei Tokunaga
PDF
UniRx完全に理解した
by
torisoup
PPTX
JavaScriptの仕組みと未来のJavaScript ~ESNextとは~
by
Yuki Hirano
PPT
メタプログラミングって何だろう
by
Kota Mizushima
PPTX
kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)
by
NTT DATA Technology & Innovation
PDF
Twitterのsnowflakeについて
by
moai kids
PPTX
Jenkins使ってみた~Windows編~
by
Yuta Matsumura
PPTX
マイクロサービスにおける非同期アーキテクチャ
by
ota42y
PPTX
Hack言語に賭けたチームの話
by
Yuji Otani
PPTX
async/await のしくみ
by
信之 岩永
目grep入門 +解説
by
murachue
DeNAの大規模ライブ配信基盤を支える技術
by
DeNA
ドメイン駆動設計 本格入門
by
増田 亨
ピクサー USD 入門 新たなコンテンツパイプラインを構築する
by
Takahito Tejima
オーバーエンジニアリングって何? #devsumi #devsumiA
by
Ore Product
UE4でマルチプレイヤーゲームを作ろう
by
エピック・ゲームズ・ジャパン Epic Games Japan
Docker入門: コンテナ型仮想化技術の仕組みと使い方
by
Yuichi Ito
UniTask入門
by
torisoup
Doozy UI 使おうぜ! #unity_lt
by
torisoup
エンジニアから飛んでくるマサカリを受け止める心得
by
Reimi Kuramochi Chiba
コンテナ未経験新人が学ぶコンテナ技術入門
by
Kohei Tokunaga
UniRx完全に理解した
by
torisoup
JavaScriptの仕組みと未来のJavaScript ~ESNextとは~
by
Yuki Hirano
メタプログラミングって何だろう
by
Kota Mizushima
kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)
by
NTT DATA Technology & Innovation
Twitterのsnowflakeについて
by
moai kids
Jenkins使ってみた~Windows編~
by
Yuta Matsumura
マイクロサービスにおける非同期アーキテクチャ
by
ota42y
Hack言語に賭けたチームの話
by
Yuji Otani
async/await のしくみ
by
信之 岩永
Similar to 食べログのフロントエンドエンジニアってめっちゃ大変やねん・・・
PPTX
食べログのフロントエンドリプレース戦略
by
Tsuji Yuko
PDF
HTML5でオフラインWebアプリケーションを作ろう
by
yoshikawa_t
PDF
Facebook対応と大規模サイト移転のトライ&エラー
by
Garyuten
PDF
Spine入門
by
AdvancedTechNight
PDF
自作node.jsフレームワークとnginxを使ってラジオサイトを作ってみた
by
Yuki Takei
PDF
小規模案件で作られた秘伝のタレ
by
Muyuu Fujita
PDF
node.jsによる お手軽画像uploader実装
by
Yohei Fushii
PDF
2013 Ignite UI 最新情報 in 岡山
by
インフラジスティックス・ジャパン株式会社
PDF
20130412 titanium meetupvol7
by
Hiroshi Oyamada
PDF
できる!スマホアプリ:Webからはじまるアプリ for CMU16
by
Masami Yabushita
PPTX
UnicastWS vol.2
by
Unicast Inc.
PDF
DEV-010_エンプラ系業務 Web アプリ開発に効く! 実践的 SPA 型モダン Web アプリ開発の選択手法
by
decode2016
PDF
Reco choku tech night #09 -reinvent2018報告会-
by
recotech
PDF
Knockout_エンジニア勉強会20131120
by
エンジニア勉強会 エスキュービズム
食べログのフロントエンドリプレース戦略
by
Tsuji Yuko
HTML5でオフラインWebアプリケーションを作ろう
by
yoshikawa_t
Facebook対応と大規模サイト移転のトライ&エラー
by
Garyuten
Spine入門
by
AdvancedTechNight
自作node.jsフレームワークとnginxを使ってラジオサイトを作ってみた
by
Yuki Takei
小規模案件で作られた秘伝のタレ
by
Muyuu Fujita
node.jsによる お手軽画像uploader実装
by
Yohei Fushii
2013 Ignite UI 最新情報 in 岡山
by
インフラジスティックス・ジャパン株式会社
20130412 titanium meetupvol7
by
Hiroshi Oyamada
できる!スマホアプリ:Webからはじまるアプリ for CMU16
by
Masami Yabushita
UnicastWS vol.2
by
Unicast Inc.
DEV-010_エンプラ系業務 Web アプリ開発に効く! 実践的 SPA 型モダン Web アプリ開発の選択手法
by
decode2016
Reco choku tech night #09 -reinvent2018報告会-
by
recotech
Knockout_エンジニア勉強会20131120
by
エンジニア勉強会 エスキュービズム
食べログのフロントエンドエンジニアってめっちゃ大変やねん・・・
1.
食べログのフロントエンドエンジニアって めっちゃ大変やねん... 株式会社カカクコム 食べログシステム本部 システム開発1部 FEチーム 金野
淑恵
2.
Copyright © Kakaku.com
Inc. All Rights Reserved. 今日話すこと フロントエンドの開発体制作りにおける苦労
3.
Copyright © Kakaku.com
Inc. All Rights Reserved. 今日ほとんど話さないこと 技術的なノウハウ
4.
お話の流れ 自己紹介 食べログの紹介 食べログのフロントエンドエンジニアって? 具体的にやっていること まとめ
5.
Copyright © Kakaku.com
Inc. All Rights Reserved. 自己紹介 金野 淑恵 (かねの よしえ) @empitsu88 Profile Career 食べログシステム本部FEチームリーダー 食べログのフロントエンド領域の設計・開発などを担当 2009~2015年 某印刷会社入社 Flasher/フロントエンジニアとして受託Web制作 2015~2017年 株式会社カカクコム入社 食べログのフロントエンドエンジニア
6.
お話の流れ 自己紹介 食べログの紹介 食べログのフロントエンドエンジニアって? 具体的にやっていること まとめ
7.
Copyright © Kakaku.com
Inc. All Rights Reserved. は お店選びで 失敗したくない人のための グルメサイトです
8.
Copyright © Kakaku.com
Inc. All Rights Reserved. 食べログってどんなサービス? ネットで飲食店を探すときに起こりがちな 「想像とは違うお店だった」というような失敗をなくすために ユーザーの口コミと共に全国のレストラン情報を掲載
9.
Copyright © Kakaku.com
Inc. All Rights Reserved. 基本データ 1億450万人 約2,200万件 約86万件 …という大規模なグルメサイト 月間利用者数 口コミ数 掲載店舗 ※2017年12月現在のデータ
10.
Copyright © Kakaku.com
Inc. All Rights Reserved. カカクコム社のミッション ユーザー本位 サービスの原点は 生活者が感じる不便や社会的課題を解決すること
11.
Copyright © Kakaku.com
Inc. All Rights Reserved. 派生サイト
12.
Copyright © Kakaku.com
Inc. All Rights Reserved. Ruby on Rails unicorn MySQL 使用技術 プロジェクト・タスク管理 (REDMINE) ソースコード・バージョン管理 (GitHub)
13.
Copyright © Kakaku.com
Inc. All Rights Reserved. HTML5 CSS3 jQuery + Backbone.JS ECMAScrip2015 Sass 使用技術 - フロントエンド Gulp + webpack + SMACSS+BEM+FLOCSS compass CSS3
14.
Copyright © Kakaku.com
Inc. All Rights Reserved. アプリ構成 20以上のRailsアプリが存在 appliA appliB appliC appliD appliE appliF appliG appliH appliI appliJ appliK appliL main_service hoge fuga fega haga base_api faga micro_service
15.
Copyright © Kakaku.com
Inc. All Rights Reserved. お察しの通り・・・ とにかく規模が大きく ソースコードもカオス
16.
お話の流れ 自己紹介 食べログの紹介 食べログのフロントエンドエンジニアって? 具体的にやっていること まとめ
17.
Copyright © Kakaku.com
Inc. All Rights Reserved. 従来の食べログの開発体制
18.
Copyright © Kakaku.com
Inc. All Rights Reserved. デザイナー UI設計者&デザイナー&マークアップエンジニア 約20名体制
19.
Copyright © Kakaku.com
Inc. All Rights Reserved. エンジニア Rubyエンジニア&インフラエンジニア&ネイティブアプリエンジニア 約70名体制
20.
Copyright © Kakaku.com
Inc. All Rights Reserved. エンジニア デザイナー 業務分担 インフラ JSDB CSSRuby HTML バックエンド (server-side) UI/ VS フロントエンド (client-side)
21.
Copyright © Kakaku.com
Inc. All Rights Reserved. エンジニア+デザイナーで約100名の開発部隊 HTML/CSS/JS を俯瞰したスキルを持った人が少ない 1週間でデプロイされる Redmine のチケットの数は約80件
22.
Copyright © Kakaku.com
Inc. All Rights Reserved. 結果・・・ 場当たり的な実装が繰り返され カオス に
23.
Copyright © Kakaku.com
Inc. All Rights Reserved. そこで・・・ 2016年 フロントエンドエンジニア 爆誕
24.
Copyright © Kakaku.com
Inc. All Rights Reserved. エンジニア デザイナー 担当領域 Server JSDB CSSRuby HTML バックエンド (server-side) UI/ VS フロントエンド (client-side) フロントエンドエンジニア
25.
Copyright © Kakaku.com
Inc. All Rights Reserved. フロントエンドエンジニア FEチーム 今は約6名体制
26.
Copyright © Kakaku.com
Inc. All Rights Reserved. 「フロントエンドはFEが 全部つくれば安心だね!」
27.
Copyright © Kakaku.com
Inc. All Rights Reserved. 「フロントエンドはFEが 全部つくれば安心だね!」
28.
Copyright © Kakaku.com
Inc. All Rights Reserved. エンジニア デザイナー 担当領域 Server JSDB CSSRuby HTML バックエンド (server-side) UI/ VS フロントエンド (client-side) フロントエンドエンジニア 開発の主体はエンジニア・デザイナーのまま
29.
Copyright © Kakaku.com
Inc. All Rights Reserved. あくまで食べログのFEは 監督者・サポーターの立場
30.
Copyright © Kakaku.com
Inc. All Rights Reserved. なんで?完全分業にしないの? チーム・人員間で意識や目的の共有が難しくなりがち チーム間の利害の対立や局所最適化が発生しやすい 特定のチームしか実装しない・できない状態だと そのチームが詰まったときに案件が進められなくなってしまう 事業会社ではデメリットも多い・・・ 職能別組織の一般的な課題として・・・
31.
Copyright © Kakaku.com
Inc. All Rights Reserved. あくまで目的は事業の成功 制作者一丸となることが必要 FEの存在意義は 食べログのフロントエンドに秩序をもたらし 正しい方向に導いていくこと
32.
Copyright © Kakaku.com
Inc. All Rights Reserved. 正直、ただ開発するより めっちゃ大変
33.
お話の流れ 自己紹介 食べログの紹介 食べログのフロントエンドエンジニアって? 具体的にやっていること まとめ
34.
Copyright © Kakaku.com
Inc. All Rights Reserved. やってること 開発案件での方針策定・設計・サポート フロントエンドの環境整備
35.
Copyright © Kakaku.com
Inc. All Rights Reserved. 1.開発案件での方針策定・設計・サポート
36.
Copyright © Kakaku.com
Inc. All Rights Reserved. まず「キレイなコード」を考える 「キレイさ」とは PREDICTABLE 予測しやすい MAINTAINABLE 保守しやすい REUSABLE 再利用しやすい SCALABLE 拡張しやすい Googleエンジニア フィリップ・ウォルトン氏のブログより
37.
Copyright © Kakaku.com
Inc. All Rights Reserved. 具体的に? ready イベントの callback は 1つの Entry point につき1つだけ Module ファイルは Entry point から初期化する
38.
Copyright © Kakaku.com
Inc. All Rights Reserved. ready イベントの callback は 1entry point につき1つだけ <html> <head> <script src=“smartphone/sidemenu.js”></script> <script src=“smartphone/top_mainvisual.js”></script> • smartphone/top.html • smartphone/sidemenu.js $(function(){ // ハンバーガーメニュークリックで サイドメニューを表示する処理 }); $(function(){ // メインビジュアルをカルーセル化する処理 }); • smartphone/top_mainvisual.js
39.
Copyright © Kakaku.com
Inc. All Rights Reserved. <html> <head> <script src=“smartphone/sidemenu.js”></script> <script src=“smartphone/top_mainvisual.js”></script> • smartphone/top.html • smartphone/sidemenu.js $(function(){ // ハンバーガーメニュークリックで サイドメニューを表示する処理 }); $(function(){ // メインビジュアルをカルーセル化する処理 }); • smartphone/top_mainvisual.js ready イベントの callback は 1entry point につき1つだけ
40.
Copyright © Kakaku.com
Inc. All Rights Reserved. <html> <head> <script src=“smartphone/top.js”></script> • smartphone/top.html • smartphone/top.js $(()=>{ // ハンバーガーメニュークリックで サイドメニューを表示する処理 // メインビジュアルをカルーセル化する処理 }); ready イベントの callback は 1entry point につき1つだけ
41.
Copyright © Kakaku.com
Inc. All Rights Reserved. Moduleファイルは Entry point から初期化する <html> <head> <script src=“smartphone/top.js”></script> • smartphone/top.html • smartphone/top.js import Sidemenu from “modules/smartphone/sidemenu.js”; import TopMainvisual from “modules/smartphone/top-mainvisual.js”; $(()=> { Sidemenu.ready(); TopMainvisual.ready(); });
42.
Copyright © Kakaku.com
Inc. All Rights Reserved. const Sidemenu = { ready() { // ready 時に必要な処理 } } export default Sidemenu; • modules/smartphone/sidemenu.js moduleファイル側では、呼び出した途端に初期化が始まらないように Moduleファイルは Entry point から初期化する
43.
Copyright © Kakaku.com
Inc. All Rights Reserved. 設計のときに考えるべきこと 食べログの実態に即しているか 費用対効果は適切か 優先度は適切か = 回せるか = コスト = 納期
44.
Copyright © Kakaku.com
Inc. All Rights Reserved. 例)見た目に関わる制御はなるべくCSSファイルに $(window).on('scroll', (e) => { if ($(window).scrollTop() >= 500 ){ // js で行うのは is-scroll の付け替えのみ $('.js-header').addClass('is-scroll'); } else { $('.js-header').removeClass('is-scroll'); } }); • JS • CSS .header.is-scroll { position: fixed; top: 0; width: 100%; }
45.
Copyright © Kakaku.com
Inc. All Rights Reserved. 納期を最優先に考えた上で 「キレイさ」 「回せるか」 「コスト」 のバランスを考えて設計する
46.
Copyright © Kakaku.com
Inc. All Rights Reserved. 他には・・・ 設計書の粒度に気をつけたり・・・ 「なぜこの方針?」「なぜこうする必要があるの?」を 口頭で説明したり・・・ 依頼する実装者によって説明の仕方を変えたり・・・
47.
Copyright © Kakaku.com
Inc. All Rights Reserved. 手を動かすのは あくまで他部署のエンジニア 綿密なコミュニケーションと サポートを心がける
48.
Copyright © Kakaku.com
Inc. All Rights Reserved. 正直、めっちゃめんどうくさい
49.
Copyright © Kakaku.com
Inc. All Rights Reserved. 悩みは多い・・・ どうしたら他部署であるエンジニア・デザイナーと 密な連携が取れるだろうか? どうしたら気軽にJSやフロントエンドについて 質問しにきてくれるだろうか? エンジニアが片手間で手がけているJSの経験値を 効率よく積んでもらえるには・・・?
50.
Copyright © Kakaku.com
Inc. All Rights Reserved. エンジニアBチーム エンジニアAチームFEチーム エンジニアCチーム こうした 部署ごとに窓口となるメンバーを決めた エンジニア内にも兼任フロントエンジニアを作った Aチーム担当 Bチーム担当 Cチーム担当 兼任FE 兼任FE 兼任FE
51.
Copyright © Kakaku.com
Inc. All Rights Reserved. こうなった! 各部署の案件や仕様について誰が一番把握しているか明確に! エンジニア・デザイナーも窓口が明確なら気軽に聞きやすく! リーダーがぜんぶ問い合わせを請け負ってるとボトルネックに なりやすかったがそれも解消!
52.
Copyright © Kakaku.com
Inc. All Rights Reserved. 2.フロントエンドの環境整備
53.
Copyright © Kakaku.com
Inc. All Rights Reserved. フロントエンドコーディング規約
54.
Copyright © Kakaku.com
Inc. All Rights Reserved. 食べログスタイルガイド
55.
Copyright © Kakaku.com
Inc. All Rights Reserved. コンパイル機構の整備 + Rails 5.1 + Webpacker +
56.
Copyright © Kakaku.com
Inc. All Rights Reserved. ソースコードのリファクタリング ECMAScript5 → ECMAScript6 化 CSS module の FLOCSS化 Pure module化 – entryPoint から全部呼び出す
57.
Copyright © Kakaku.com
Inc. All Rights Reserved. 正直、めっちゃ地道
58.
お話の流れ 自己紹介 食べログの紹介 食べログのフロントエンドエンジニアって? 具体的にやっていること まとめ
59.
Copyright © Kakaku.com
Inc. All Rights Reserved. まとめ 食べログのFEは開発というよりサポートに注力しているが めっちゃ大変 「納期」「キレイさ」「回せるか」「コスト」のバランスを 考えて設計するのは めっちゃめんどうくさい リファクタリングとか めっちゃ地道
60.
Copyright © Kakaku.com
Inc. All Rights Reserved. でも・・・ 地道ながんばりの結果 すこしずつ成果はでてきている
61.
Copyright © Kakaku.com
Inc. All Rights Reserved. だから・・・ 食べログを盛り上げるために \ がんばる/
62.
Copyright © Kakaku.com
Inc. All Rights Reserved. 大変なことにも立ち向かえる フロントエンドエンジニア \ 絶賛募集中! /
63.
ご清聴ありがとうございました
Download