新規事業でサイト立ち上げのアーキテクトをやった話
- 2. 自己紹介
• 新卒3年目
• 博士中退
• 脳波を機械学習で状態判定とか
• 趣味や研究でプログラム書いてました
• 基本的にC++
• 昔JJUGで別件の発表したりしてます
• Java8移行から始めた技術的負債との戦い(JJUG CCC 2015 Fall)
• ビズリーチサイトの開発についてJava6からJava8に移行した話
- 12. バックエンド - 使用言語
• 決定: Java8
• メンバー全員が経験あり
• 他の言語だとデメリットのほうが目立った
• 候補: Scala
デメリット: コンパイルが遅い, メンバーが未経験なので慣れるまでス
ピードが出ない
• 候補: Ruby
デメリット: メンバーが未経験 & 自分含めガッツリやった人がいない
- 13. バックエンド - FW, ライブラリ
これはむしろこちらがそうしたい、といった構成を提示
• Spring MVC
• Spring Boot
• Lombok
• etc
- 24. Java Script (AltJS)
• ES2015 or TypeScript
→ Reactを使うのでES2015を採用
• ES2015
• class構文などモダンな言語の機能が使えるようになっている
• ブラウザによって対応がまちまちなのでトランスパイラでES3に変換
• es-lintでコードの品質を担保
- 27. タスクランナーについて
• JSやCSSのビルドを行うタスクを記述する
• Gulpを採用
• Gruntに比べて可読性や記述性で有利
• gulpfile.babel.jsにするとES2015で記述できる
• JSのビルド部分はwebpackを採用
• 検証したところbrowserifyよりビルドが高速だった
• MPAのビルドに対応している
• 各ページ用のJSを食わせると、一つの共通JSと各ページ用のJSを出力する
• 共通JSに出力されるのは共通でimportされているJSファイル