はじめに
みなさん、こんにちは torihaziです
今日は実務が始まって3ヶ月が経とうとしているので
いつも通り振り返りをしていこうと思います。
言語化していくことで、自分の進歩を実感できるとともに
理想としている姿との差異の可視化ができると思っているので色々棚卸していこうと思います
フォーマットは特に決まっていません。固定化すると凝り固まる気がするので。
思いついたことをそれなりにまとめて書いていこうと思います。
感想
やり切ったというのと少し報われたというのが感想です。
やり切ったというのはアプリの仮リリースまで走りきれたということです。
私のチームはアプリリリースを来週までに、来週までに、来週・・・とかれこれリリースするする詐欺を繰り返していました。
しかし10月初めくらいに「そろそろ仮リリースしよう!」となり、こりゃ大変だと思っていたらなぜか自分が仮リリース隊長に選ばれました笑
せっかくもらった仕事だったし、PMみたいなものだったし、なんとしてでも結果を残さなきゃと思ってもいたので
土日返上でガリガリコードを書きまくって、PRしてmergeしてPRしてmergeしてを繰り返し、
なんとか宣言した期限までに仮リリースをすることができました。
もちろん自分1人で全部はできませんでした。
Githubのカンバンボードに現状の修正箇所をバリバリあげまくったり、それをいろんな人に振り分けたり
これは自分も多分無理そうってなったら「ヘルプです!助けて!」を上の人に秒で投げたり、
上手く周りを巻き込めたのではないかと思います。
コミュ力という一言で括りたくないので少し言葉を変えるならば「とにかく人を巻き込む」という能力はエンジニアにとって必要不可欠だと思いました。
プライドも良い意味でなくてよかったと思います。
「全部1人でやってやるんだ」というのは多分無理だったと思うし、やらなくて良かったと思います。
あと良かった点としたら2つくらいでしょうか。
1つ目はタスクをカンバンボードに書き出す際に詳細度をできるだけあげて書き出したことです。
見た人がその問題を読むあるいは添付画像を見るだけで問題を理解でき、実現すべきゴールをイメージしやすくできるように工夫しました
リモートで働くメンバーもいるので、テキストのコミュニケーションがとても重要です。
質問がチャットで来たとしてもいつも迅速に返信できるとは限らないし、その質問をしてからの時間が全体の遅れにも繋がります。
こうしたことが起きないよう可能な限りタスクの記載には十分気をつけました。
2つ目はPRのmergeを可能な限り早くすることです。
PRが積み上がると、コンフリクトが起こる可能性が高まります。
またPushしたいけど以前出したPRがなかなかmergeされずに次の作業に移行できないことも。
それだけはなんとしてでも避けなければなりませんでした。
そのため私はレビュアーに指定された時はなる早で見てmergeをするように心がけました。
ただ後にPRの開発体験周りが向上したのでこの点についてはそこまで意識しなくても良くなりました。
以上がやり切ったの感想です。
次の報われたというのが、月報酬が5万上がったということです。
あまりお金関係のことは話すと気を悪くする人もいると思うので、スルーしたい方は読み飛ばしてください。
別にふんぞり返って自慢したいというわけではありません。
ただ本当に嬉しかった、というだけです。
仮リリースをし切ったというのも評価されたのかもしれません。
前職では3年かけて1~2万とかしか上がらなかったので、純粋に嬉しかったです。
昇給ペースで行ったら、数十倍です。2ヶ月少しの実務で5万。
初めてなんです。月の給料で振り込まれる額が20超えるの。
3ヶ月なかなか早いペースでやり切ってきて良かったと思います。
目標の年収1000万まではまだ遠いですが、小さな目標を立てて必ず実現させてみせます。
ということで以上、感想でした
技術的に身についたこと
ブログもかなり書いたし、実務で知ることも増えたし、語彙力が酷いですけど色々できるようになったと思います。
今年の最初はRailsもまともに知らなかったのに、今ではRailsとNext.jsの企業様でフリーランスしてるので。
どういうことを知れたかというと、、、実務と自分の勉強で知れたことを棚おろすと
backendは
- Railsのシリアライザは albaというのがめっちゃ使いやすい
- devise-jwtは設定がだるい
- ActiveStorageはBlobだけUserとかにAttachしないで先に作成してuploadすることもできる
- render json: とかできる
- rails g のコマンドは自作できる
- routingはmemberとかcollectionsとかある
- Railsにおいて非同期処理を扱うなら RedisとSidekiqかshoryukenとSQSか
- モデルのidでuuidを使うならmigrationファイルで拡張機能使うと宣言必要(Postgresql)
- t.references :userだけでuser_idとindexを貼ってくれる
- 外部キー制約をつける方法は t.uuid :user_idとadd_foreign_keyを使うかt.referencesを使うかの2通り
- indexを消したいなら外部キーを先に消す必要あり
- もしindexを貼りたいならindexを貼ってから外部キーを貼ること。
frontendは
- axiosにおいてinterceptorを使うと全部のリクエストの前後、レスポンスを受ける前後に記述した処理を挟み込める
- スネークケースにしたりキャメルケースにしたりするならaxiosのinterceptorでreduce使ってやるといい
- swrはkeyを依存配列のように指定でき、そこが変更されると勝手に再取得してくれる
- ページネーションは現在のページ、1ページあたりの表示数、合計、useStateのset関数を取得すればできる
- mutateは再取得を命令する
- 画像をuploadするならFormDataを使う
- 画像をpreviewするならURL.createObjectURL(file)をimgのsrcに。
- react-hook-formで手動でバリデーション走らせるならtrigger。
- ボタンを押したらinputのファイルが開く機能を自作するならinpuにrefは必須。
- Promiseで指定する型は戻り値の型。
- zodのmergeとextendの使い分けは既存のschemaを使い回すか否か
- prismaはコマンド2つでbackendのDBからスキーマを読み取りzodに反映できる
とかでしょうか。
色々Qiitaとかの記事も書いてみたのでかなり良かったのではないでしょうか。
最速で最適な道を行っている気はしませんが、それでも色々なところにぶつかりながら
なんだかんだ大きくなれていると実感しています。
先月の目標を見てみる
読み直してみると、副業をしたい、と書いていました。
確かに副業の申し込みは5社ほどしてみました。
結果は全敗でした。
経験年数不足が主な原因だと思います。
やはり現実は甘くありませんでした。
1社だけ面接をしていただけるところがありまして、
そこのCTOの方とお話をしてみたのですが色々と優しくされど厳しいお言葉をいただきました。
ただとても次進むべき道が見えた気がしたので、結果的には残念でしたが落ちて良かったと思うし今では感謝しています。
数年後の目標から逆算して今すべき行動を行うべし、みたいなことがその面談で心に留まったことですね。
なので1年後の目標をここで立ててみましょう。
そうですね、何が良いでしょう。
やはり今の会社のシステム全てを最悪1人でも回せるくらいのレベルに到達する、という目標がしっくりきます。
FronendとBackend + インフラの比率はまずはBackendの方に重きを置きたいですね。
やっぱり3ヶ月やってみてそっちの方が楽しいというかかっこよさを感じました。
とある人に追いつくという目標も掲げても良いですね。
なので、目標としてはその2つですね。
1人で回せる、追いつく、ということです。
そのためにはどうするか。もっとRailsであったりインフラに触れる必要がありますね。
詰まったら先駆者に教えを乞うことにします。
終わりに
ということで月の振り返り終了です
今年も残すところあと2ヶ月。
今年は人生が大きく変わった年であるので、このままぐいんと舵を切って
飛躍の年にしていきたいです
それでは、また来月。