新卒一年経ったので振り返ってみる

Diary

#振り返り

syakoo

お久しぶりです。

去年の今頃フロントエンドエンジニアとして入社して、あっという間に一年が経ってしまいました。 想像以上に忙しくまた体力もなく体調を崩しがちだったので、仕事以外の事まで手を付けることができず、 果たして入社前に描いていた自分になれているのだろうかと思う一方で、その分貴重な経験をすることができました。

今回はこの一年で学んだことを残していこうかと思います。 あくまで自分の考えであるので、どの状況においても必ずしも正解とはなりません。ご了承ください。

健康第一

やっぱり健康が一番。 特にリモートだと出勤をしないため家にこもりがちになるので、強制的にでも運動の機会を作ったほうがいいです。

___わかっていても続きません。おかげで先週も胃カメラに行きました。みなさんは無理して働かないようしましょう。

テキストコミュニケーションの大事さ

リモートで働いているため、基本的に誰かとコミュニケーションをとるときは通話かテキストコミュニケーションになります。 その中でもテキストコミュニケーションは、テキストとして残るので非常に大事です。 とはいえ、語るほどではないので割愛します。

Pull Request もテキストコミュニケーションの一つ

抽象的に考えると、エンジニアがよく出す Pull Request (以降 PR) も日本語 + 英語 + 各々のプログラミング言語で表されるテキストコミュニケーションの一つです。

レビュワーにこの変更を加えても良いかという提案を出すので、それを十分に説明する必要があります。この要件 -> 実装について一番詳しいのは実装したあなたです。 PR を出すうえで意識していることを挙げていきます(できているとは言ってない):

変更内容の概要を最初に(できれば一文で)書く

Writing good CL descriptions > First Line | eng-practices, Google にあるように、 最初に何をしたかの情報を完結に載せます。

例えば機能を追加するうえで「他のモジュールのリファクタリング」+「機能追加」であれば、二行で箇条書きとしたほうがわかりやすいかもしれません。

コミットは「単純な作業ログ」にならないようにする

コミットはあくまで機能を追加する上でのフローを残すようにします。 例えば、「機能追加」->「フォーマット」とコミットを分けてしまうのではなく、Git のリベースを活用して一つのコミットにまとめることを推奨します。

レビュワーはこの機能を追加するうえでどういう変更をしているかについて関心があり、コミッターのフォーマット忘れや今回追加したコードに対する小さなリファクタリングには関心はありません。 これは人によって意見が異なるかもしれませんが、1コミットを変更した量を小さくするよう心がけるのではなく、各コミットの結合度を減らしできるだけ独立させるほうが良いかと自分は考えています。 独立していれば量は多くても問題ないと考えています。

自分が変更・設計した理由を残す

全てを残すべきとは言いません。少なくとも要件にないものは残すべきだと考えています。 なぜなら要件にないのに残っていると、その場所に対する機能追加ができたとき混乱してしまうためです。 なぜこの処理がここで走っているのか、このように設計されているのか、崩したらデグレしてしまうのではないかと思いながらコミット履歴をあさり、実装者に聞いてみると、

🤔「いやー、わからないですねぇ」

うーん絶望。 そもそもこのコミュニケーションすらなくしたいと思うので、手間にはなってしまいますがテキストとして残すのが一番よいのではないかなと思います。

さて、テキストの残し方は「コードへのコメント」「コミットメッセージへのコメント」「PR へのコメント」があるかと思いますが、 一番伝えやすい「コードへのコメント」が一番良いと思います。が、変更が一部分ではなくコミット単位で残したい場合はコミットメッセージに、クリティカルではない設計面に関しては PR へのコメントにと場面によって変えるのが良いと思います。

co-authored を入れる

そもそも co-authored とは、Git で共同作成者をコミットに載せることができる機能(?)です。(参考: 複数の作者を持つコミットを作成する | GitHub) 上の節での例では実装意図が不明な時に「実装者に聞く」とありますが、この時にコミッターだけではなく他の方の意図も入っていますよという情報を残すことができます。

PR レビュー時や実装相談で意見を聞いたときに私は入れたほうが良いと考えています。 ただし、その聞いた意見から大きく変わる場合や別の内容も一緒にコミットする場合は別です。

まとめ

他にもプロジェクトや人間関係など様々学ぶことができましたが、量が多くなってしまうし自分の関心のある内容はかけたかなと思うので終わりにします。

今年度は「体調第一」を目標に頑張っていきます。💪

イラストも描きたい。。。