ランサーズ(Lancers)エンジニアブログ > もくもく会 > 2023/6/26週 もくもく会 Nest.js, レガシーコードとどう向き合うか読書, ISUCON学習
2023/6/26週 もくもく会 Nest.js, レガシーコードとどう向き合うか読書, ISUCON学習

2023/6/26週 もくもく会 Nest.js, レガシーコードとどう向き合うか読書, ISUCON学習

tanifumiya|2023年06月30日
もくもく会

ランサーズでは自己学習の場として毎朝1時間程のもくもく会を開催しています。
もくもく会を開催しようと思ったきっかけは、こちらで紹介しています。
以下は今週の取り組みになります。

今週のもくもく会

太田

  • 最近やったことを会話形式で話す
    • 今週は環境構築メイン (Windowsの別アカウントに開発環境全くなかった)
    • Macでfishやめたときになぜかfish消せなかった
      • bash_profileからfishをexecしてた
    • Macにnode_env入れた(今更)
    • ファイル添付調査

磯野

  • レガシーコードとどう向き合うか本の読書
    • Chapter1 なぜレガシーコードが生まれるのか
      • やっぱりお金が大事
      • お金がないと、強いエンジニアが雇えない
      • ただ創業期は、投資家や銀行からお金を借りることになるので、そんな莫大なお金を使うことはできない
      • 強いエンジニアがいないと、設計などがガバガバになり、将来的にレガシーコードになる確率が高まる
      • 経営者的には作ったプロダクトで、お金を稼ぐことがまず第一
      • とにかく金がないと、会社が潰れちゃう
      • 会社が潰れるとレガシーコードもクソもない
      • 結論レガシーコードは大半の会社ではどうやっても生まれてしまうもの
      • 過去を責めても仕方ないので、徐々に改善かけていこう
    • Chapter2 レガシーコードを改善するための道筋
      • 優先順位大事(勇魚さんには頭が上がらない。。)
      • 経営的アプローチ
        • 短期的な投資
        • 長期的な投資
        • エクイティストーリーや、P/Lから余日を鑑みて、意思決定を行う
      • 開発者的アプローチ
        • プログラマーの三代美徳
          • 怠惰
            • なるべく働きたくないから自動化
          • 短気
            • プログラム遅いの許せねえ!
          • 傲慢
            • 自分の書いたコード綺麗だなぁ、美しいなぁ
        • 顧客により良い価値を届けるための基盤を整えていくのが大事
        • 4keys
          • デプロイの頻度
          • 変更のリードタイム
          • 変更障害率
          • サービス復元時間
    • Chapter3 レガシーコードを読む力
      • とりあえずコードを読むしかない
      • まずはコードを一目見て大体の処理が想像できるレベルになるのが目標
        • このレベルにならないと、レガシーコード改善に対して効果的な対策を打ち出せない
        • 安易なフルリプレイスに走ってしまう
        • いろんな引き出しを持つのが大事

    岡田

    • 達人が教えるWebパフォーマンスチューニング 〜ISUCONから学ぶ高速化の実践
      • 3章 基礎的な負荷実験
        • nginx nginx.conf 設定して access.log を取得alp :アクセスログを見やすく集計
        • ab コマンドで簡単な負荷
        • mysql mysqld.cnfを設定してスロークエリログを取得mysqldumpslow コマンドで見やすく集計
        • ちょっとしたチューニング
          • データベースのインデックス作成
          • workerプロセスを複数
      • 4章 シナリオを持った負荷実験
        • 負荷ツール k6 を使う
      • 5章 データベースのチューニング

    ディスカッション

    • ISUCONどうでした?
      • ペアで8時間を取り組み
      • 岡田
        • ペアの子がGit, AWSもろもろを整えてくれた
      • 砂田
        • 1〜3年目が参加者(1年目が多かった)
        • 2人でペア組むけど、ペアのレベル感が揃ってなかった
        • ISUCON合同研修名前の会だったが、蓋をあけると模擬試合だった
        • 座学パートがあったら足並みを揃えられたかも
    • そもそもISUCONってどんな形式?
    • ISUCONで一番必要な知識ってなんなの?
      • お題によるかもだけどスロークエリの解消がメインかも
    • ランサーズ自体をISUCONのお題にしても良いかもね
    • ISUCONで勝ちを狙うなら徹底してパフォーマンスを意識して、言語を変えたり、DBをSQLiteからMySQLに変えたり、フレームワークを変えたりなど取り組めることは徹底して取り組む

    今週の報告は以上です。
    週毎に取り組みを掲載していきますので、ご期待下さいませ。