Remixing Vol.3 with　オールアバウト and LIG　にスピーカとして参加してきた


# まえがき
この記事はオールアバウトアドベントカレンダー5日目です。

前回 6月に[Remixing with All About,Inc.](https://remixing.doorkeeper.jp/events/26208)でリッチメディアさんと共同で勉強会を開催しこの時もスピーカーとしてAPIについて話してきました。
前回の発表内容は以下
http://www.slideshare.net/takumiyoshida14/20150627-remixing

今回は弊社、リッチメディアさん LIGさんと3社で勉強会を行いました。
今回の勉強会ではCMSについて話しましたが、具体的な補足事項に関してはアドベントカレンダーで12/22に書くのでしばしお待ち下さい

本記事はどちらかと言うと感想記事になります。
今回の勉強会はテーマ別3セッションありました。
デザイン/フロントエンド, サーバサイド/インフラ, エンジニアマネジメント

# デザイン/フロントエンド
デザイン・フロントエンドに関しては個人的に一番弱い部分なので参考になりました。

## Form in Mobile: アクセシビリティとユーザビリティ  by RichMedia
スピーカー 斉藤 祐也さん
内容: フォームをモバイルで使いやすくする話
■フォームは一番最初の入り口だけどFormは様々な問題点を抱えている
inputフォームとか。
フォームのレンダリングはブラウザ任せでめんどくさいし input typeが最近いろいろ追加された。
chrome で input type =dateとするとdatetimepicker使えるけどそれ以外のデザインだと消す必要がある
css/javascriptに頼りっきり
Form Helperが拡張性持ってない
Formの使い方
必要最小限の入力項目に留める
■分割
問題を単純な小さな問題に細かく分割して解決せよ
クレカ情報などは入力が必要なときだけにするべきだよね。
モバイルではtypeによって適切なキーボードが立ち上がる
最近フォームにおけるUIパターン　→アプリ
リアルタイムバリデーション jsによるバリデーション
■アクセシビリティ
骨折などで使えないとかもあるからアクセシビリティは誰にとっても大事
最低限の優しさ
マウスをなるべく使わない
入力内容がラベルにあってわかりやすいか?
必須?　文字数制限は?
■フォーム作成を楽にする。
WUFOO
The Current State of HTML5 Forms　→　ブラウザごとのフォーム対応状況
INPUT TYPE SANDBOX
WTF,forms
■最小限のcssで実装する
Foundation 6
Bootstrap 
semantic UI
■フォームのためだけの軽量フレームワーク
valdelama

## コンポーネント単位で考えるWeb制作 by LIG
スピーカー 堀 祐磨（ほりでー） さん
Webコンポーネントじゃなくて画面のパーツのまとまりをコンポーネントとしてる
LIGブログを例にとるとコンポーネントは８種類
コンポーネントが増えると実装工数が増えるしコンポーネントごとに工数が違う
コンポーネントが共通化されているか？

ページ内コンポーネント数×コンポーネントの複雑さ×コンポーネントの共通要素
ページを基準にすると変なことになる。
■提案1
コンポーネント単位で工数出す
コンポーネントはチケット化しやすい。
■実装面から
コンポーネントABに共通要素が入っている
→コンポーネントCとして抜き出して参照することで共通化できる。
サイトジェネレータや各種テンプレートエンジン
タスクランナーでビルド
■LIGではEJSを例にしてる
構造化CSSの概念を取り入れていくといいかも
見た目の違いをmodifierとして使える
クラスが違うだけで中身を一緒ってことができる。
似てるけどCSSで吸収しにくいパターン
modifierの概念をHTMLコンポーネントにも拡張する
■ディレクトリ構造をコンポーネント中心に
コンポーネントとコードとチケットが同じ名前になるので把握しやすい。

# サーバサイド/インフラ
## フルスクラッチCMS開発ノウハウ With Laravel
発表者私です。
スライド: http://www.slideshare.net/takumiyoshida14/20151205cms-with-laravel

## Web/ネイティブAPIでのGolang導入事例 by RichMedia
スピーカー : 杉本吉章 さん
スライド:
https://s3-ap-northeast-1.amazonaws.com/sugimoto/remixing_vol3/slide.html

■Web側はカオスってる
Golangでの解決
モバイルトークン
AWS SNSでプッシュしたいけどトークン管理したい。
PHPで同期処理してたけどトップ画面が出るまで遅かった

■2.外部向け公開API
HAIRのサーバサイド　複雑な認証機構があって外部向けAPIは使いづらい
レスポンスを速くしたい
既存リソースでやる必要がある
内部のマイクロフレームワーク作った
エンドポイントは少ないので小さな実測
Elasticsearchで検索するAPI

■Micro Framework
http.Requestをラップ
クエリビルド
レスポンスキャッシュ
ElasticSearch連携

■レコメンドエンジン
今後機械学習にしたい
行動データ×スタイリストでやってる

■メンテツールはほぼGolang
ビルドしてバイナリ渡して実行してもらうだけ
GOlangの社内勉強会

■PHP+GOlangはなかなかいい
View得意なPHP 非同期可能で早いGolang
・フロントAPIをPHPで、BGタスク周りはGolang データ生成・登録処理
■TIPS
コミットハッシュ追加しておくといい


## 国内最大級の総合情報メディアを支えるVarnish Cache by オールアバウト
スピーカー　弊社　大原和人さん　
■大規模メディアだとキャッシュが必要になってくる
Varnishの良い所
高速
柔軟な制御が可能
高機能
■302キャッシュしてリダイレクトしている。
Varnishに依存した作りにしない
VarnishとWebアプリのUA判定を統一する
■Varnishが役に立った事例
クラウドに立ててネットワーク負荷低減させたことがある。

## LIGブログインフラ遍歴〜体制とインフラ〜 by LIG
スピーカー 菅原 のびすけさん

LIGブログ　業界で最も見られているコーポレートサイト

LIGブログの変遷と使っているサーバ等の変遷の紹介
2014/10 SVN→GIT　にしたっぽい。
今年になってから専任つけた。
最近apache→nginxへ

# エンジニアマネジメント
RichMedia,オールアバウト,LIGの3社でエンジニアのマネジメントをしている3名によるパネルディスカッション

RichMedia:斉藤 祐也さん
オールアバウト:寺門 伸悟 さん
LIG 林 優一さん

以下敬称略 会社名略称で RichMedia:リッチ/オールアバウト:AA/LIGとします。

チーム構成
AA:34/35 インフラ5名 開発25 集計5 開発は複数Gで複数サービス
LIG:エンジニア17名 + デザイナー+ディレクターで30人
リッチメディア: 16名 混成チームでマネジメント

Q1:マネジメントをしていて一番つらい仕事
LIG:トラブルが合った場合に飛んでいかないとならない。中間管理職としての辛さ
AA:人の炎上が辛い。意見の対立。年上同士が揉めてるのをなだめるのが辛い。
リッチ：お二人とだいたい同じ。技術・人間というところ

Q2:採用に際しての一番の判断ポイント
AA:ベースとしての知識+粘り
LIG:その人と一緒に働くイメージができるか。技術はあとからついてくる
リッチ:文化的なところ+ものを作ることが好きか

Q3:スキル面でニーズのあるエンジニア
LIG:コミュニケーション　よく喋る人。
AA:開発プロセスを整えたいので、CI等に強い人。全体のプロセスをみながらデキる人
リッチ:サーバサイドエンジニア。コーディングが好きな人

Q4:エンジニア/マネジメントの仕事の割合
LIG:1:1 半分エンジニアリング　半分マネジメント
AA: 1:9 マネジメントが9 
リッチ: 0:10 最近は5:5か 9:1で時と場合による

Q5:マネジメントする際に意識していること
LIG:まとめるのは無理なのでまとめないマネジメントをしている。エンジニアがやりたいことを実現できる環境を作ってる。
AA:得意なところはできるだけ得意な人に任せたい
リッチ:ビジネス的なところを意識しないといけない。次のステップを意識している

Q6:どういったチームや会社にしたいと思っていますか
AA:体制や文化は変わりつつあるけど、エンジニアと企画が近くでやってけるようなチーム・会社にしていたい。
技術的な開発基盤を考えていきたい
LIG:チームとして：週二でエンジニアが自由に使える時間があって、自主的にやってもらってる。自分が好きなことでビジネスできるエンジニアが増えていくといいな
リッチ:自主性（自治性、スケーラビリティできる）ように。

Q7:マネジメントする立場になった経緯、理由
LIG:前職で管理する人がいなくなって、まとめていたらいつのまにかなっていた。
AA:もともといた人が違うポジションに行ったので、入った。1人だと限界だし、チームを率いてやってくしかないと思った
リッチ:影響がある人って感じでなっていた。リッチメディアに入った時にエンジニア/マネジメントどっちなのかなーと思ったらマネージャになってた。

Q8:10年後の自分はどうなっていると思いますか、10年前いまの自分を想像していましたか？
LIG:リモートワークを実現して別の地方で働いていたい。10年前は何も考えてない。
AA:その時で必要なときにやっていって、積み上げていけばなるようになっている。
リッチ:基本変わってないと思う。何かしら信じるものがあればそこに辿りつけてるんじゃないかな

以下参加者からのQ
Q9:マネジメントする人って部下に伝えるのが大切だと思うんですけどそのへんどう思いますか？
LIG:LIGブログでポエム記事があってそれでやろうかなと思いつつ、勉強会をやりたい。
AA:都度都度必要な人に対しかできてない。来年ぐらいからは1on1でやってきたい感じはする。
リッチ:1:1の面談を大事にしている。

Q10:マネジメントしていて楽しかったことは？
LIG:あるサイトがリリースされた時.育てがい
AA:一人でできないことができる。部下の成長が嬉しい。考え方など。
リッチ:成長する様を見ているとやっていてよかったと思う。