前回から2年ぶりに変わった部分を書きました。
バックエンド
API
GraphQL
データベースの文字コード
utf8mb4
utf8だと保存できない絵文字が出てくるため。
テスト
- rspec-rails
- factory_bot_rails
- capybara
- poltergeist
- database_rewinder
設計
やるべきではない
- 論理削除
- https://speakerdeck.com/moro/do-not-delete-softly
- 全部の例外を補足
- https://www.slideshare.net/t_wada/exception-design-by-contract
- メタプログラミングの乱用
フロントエンド
JavaScript
ES2017 + Flowtype + React + Redux
Reactの場合直接、DOMの要素を取るということをしないで済むようになったのでjsプレフィックスはほぼ使わなくなった。
TypeScriptでも良いとは思うが
- 標準はあくまでもECMAScript
- 将来的にECMAScriptに型が入ってくるという予想
テスト
- enzyme
- expect
- jest
- jsdom
- mocha
- react-addons-test-util
- sinon
テストで使うセレクタはdata-test属性を付けて、productionビルドする時はdata-test属性を消す。
サーバー
Amazon ECS
- Elastic Beanstalkは勝手にセキュリテグループその他の設定が自動生成されるのとなんか設定を変えると反映されるまで使いづらかった
- ECSのタスク定義などの設定などはTerraformで管理する
- 今後は東京リージョンで使えるようになれば、AWS Fargateに移行するという予想
CI環境
CircleCI