ランサーズでは自己学習の場として毎朝1時間程のもくもく会を開催しています。
もくもく会を開催しようと思ったきっかけは、こちらで紹介しています。
以下は今週の取り組みになります。
今週のもくもく会
谷
- デイリートピック収集
- Nest.jsやっていき
- https://zenn.dev/highgrenade/scraps/eb6207f3006dad
- Nest.jsとは
- Node.jsで作成されているバックエンド開発フレームワーク
- TypeScriptで作られている
- コアがExpress
- Angularエクスパイア
- Nest.jsのメリット
- 型の恩恵
- Expressの機能、ライブラリが利用可
- NestCLIでプロジェクト、ファイルのテンプレートを生成可
- テストフレームワークが標準装備
- Nest.jsの環境構築
- npm i -g @nestjs/cli
- nest new プロジェクト名
- Nest.jsの基本アーキテクチャ
- コアな要素
- Mudule
- Controller
- Service
- main.ts(エンドポイント)
- app.module.ts(ルートモジュール)を読み込む
- ルートモジュールの中で、フィーチャーmoduleを読み込む
- feature.module.ts→ feature.service.ts
→ feature.controller.ts
- コアな要素
- Nest.jsとは
- https://zenn.dev/highgrenade/scraps/eb6207f3006dad
太田
- 最近やったことを会話形式で話す
- 今週は環境構築メイン (Windowsの別アカウントに開発環境全くなかった)
- Macでfishやめたときになぜかfish消せなかった
- bash_profileからfishをexecしてた
- Macにnode_env入れた(今更)
- ファイル添付調査
磯野
- レガシーコードとどう向き合うか本の読書
- Chapter1 なぜレガシーコードが生まれるのか
- やっぱりお金が大事
- お金がないと、強いエンジニアが雇えない
- ただ創業期は、投資家や銀行からお金を借りることになるので、そんな莫大なお金を使うことはできない
- 強いエンジニアがいないと、設計などがガバガバになり、将来的にレガシーコードになる確率が高まる
- 経営者的には作ったプロダクトで、お金を稼ぐことがまず第一
- とにかく金がないと、会社が潰れちゃう
- 会社が潰れるとレガシーコードもクソもない
- 結論レガシーコードは大半の会社ではどうやっても生まれてしまうもの
- 過去を責めても仕方ないので、徐々に改善かけていこう
- Chapter2 レガシーコードを改善するための道筋
- 優先順位大事(勇魚さんには頭が上がらない。。)
- 経営的アプローチ
- 短期的な投資
- 長期的な投資
- エクイティストーリーや、P/Lから余日を鑑みて、意思決定を行う
- 開発者的アプローチ
- プログラマーの三代美徳
- 怠惰
- なるべく働きたくないから自動化
- 短気
- プログラム遅いの許せねえ!
- 傲慢
- 自分の書いたコード綺麗だなぁ、美しいなぁ
- 怠惰
- 顧客により良い価値を届けるための基盤を整えていくのが大事
- 4keys
- デプロイの頻度
- 変更のリードタイム
- 変更障害率
- サービス復元時間
- プログラマーの三代美徳
- Chapter3 レガシーコードを読む力
- とりあえずコードを読むしかない
- まずはコードを一目見て大体の処理が想像できるレベルになるのが目標
- このレベルにならないと、レガシーコード改善に対して効果的な対策を打ち出せない
- 安易なフルリプレイスに走ってしまう
- いろんな引き出しを持つのが大事
- Chapter1 なぜレガシーコードが生まれるのか
岡田
ディスカッション
- ISUCONどうでした?
- ペアで8時間を取り組み
- 岡田
- ペアの子がGit, AWSもろもろを整えてくれた
- 砂田
- 1〜3年目が参加者(1年目が多かった)
- 2人でペア組むけど、ペアのレベル感が揃ってなかった
- ISUCON合同研修名前の会だったが、蓋をあけると模擬試合だった
- 座学パートがあったら足並みを揃えられたかも
- そもそもISUCONってどんな形式?
- お題があってそのパフォーマンスを上げる
- https://isucon.net/archives/55140539.html
- ISUCONで一番必要な知識ってなんなの?
- お題によるかもだけどスロークエリの解消がメインかも
- ランサーズ自体をISUCONのお題にしても良いかもね
- ISUCONで勝ちを狙うなら徹底してパフォーマンスを意識して、言語を変えたり、DBをSQLiteからMySQLに変えたり、フレームワークを変えたりなど取り組めることは徹底して取り組む
今週の報告は以上です。
週毎に取り組みを掲載していきますので、ご期待下さいませ。