CROOZ TECH BLOG

~読んだらわかるSHOPLISTの裏側~

CROOZ TECH BLOGとはクルーズ株式会社の開発チームが技術について共有するブログです
開発の中での発見や知識を広めてオモシロカッコイイ〇〇をツクリます。

未経験エンジニアの僕、コーディングがくそ過ぎて人格否定された件

こんにちは。新卒2年目のKEN☆YAMAGUCHIです!

今回は「コーディングがくそ過ぎて人格否定された」という話をしたいと思います。

コーディングとは、プログラムを書くことでありますが、このコーディングにもいろいろな作法的なものがあります。今回はそんな作法やコードの見易さを深く考えずに開発していたら痛い目を見た経験をお話させていただきます。

駆け出しエンジニアの方はもちろん、エンジニアを目指している方にとってもためになるのではないかと思うので、最後まで読んでいただければ幸いです!

【心躍】初めての開発経験

入社後の開発研修を終え、いよいよ配属されることになりました。こちらの開発研修の内容について、こちらの記事が公開されているので気になる方がいらっしゃいましたら是非そちらも読んでいただければと思います。

さて、僕の配属先は、バックエンドと呼ばれる社内の管理画面や対ブランド向けの管理画面を開発する部署でした。この時期にちょうど、対ブランド向けの管理画面のリプレイスするというプロジェクトが進行しておりました。そのためこのプロジェクトにアサインすることとなりました。

僕が担当することとなったタスクは、新規で開発が必要なものであり、一からプログラムを作ることとなりました。

当時、新規の開発ともあり心を躍らせながら開発作業を行っていました。

【失態】コーディングがくそ過ぎた、、、

約2か月ほど、色々と壁にぶつかりながら、そしてトレーナーの方の力を借りつつ開発を進めていた矢先、組織変更が行われ、当時行っていた担当案件を開発の途中で同期のエンジニアに引き継ぐことになりました。

当時粛々と開発を進めていく中で、恥ずかしながら、要件さえ満たせればいいという考えでいたため、ソースコードの共通化や可読性などの考えを軽んじていました。
引継ぎが終わり、引継ぎ相手にプログラムを見てもらうと、共通化や可読性などの考えが全く反映されていないコードだと気づかれ、「変数名も分かりづらいし、共通化もされてない(怒)」と激しく詰められてしました。

【教訓】コーディングで意識すべきこと

このように、要件を満たせばいいと勝手に考え開発進めた結果、詰められ、失笑されるといったしくじり経験をしてしまいました。

そんな僕から良いコードを書くためのコーディングで意識すべきことを3つほどお伝えさせていただきます。

①何か月後かの自分が見ても理解できるか

②変数名の命名は、我が子に名前を付けるのと同等

③コードを書き始める前にプログラムの完成形をイメージをする

上げたらきりがないくらい意識すべきことはあると思いますし、熟練のエンジニアさんにとっては当たり前だと怒られてしまいそうですが、温かい目で見ていただければと思います(笑)

①何か月後かの自分が見ても理解できるか

1つ目は、未来の自分が見ても理解できるかです。プログラムを書いているときは、自分で理解できていると思いますが、何か月後かの自分はほとんど他人であるといわれたことがあります。当時は理解できていても何か月後かにコードを見てみたら理解できない、またはとても分かりづらいなんてことになってしまいます。そのためにも未来の自分でも読みやすいかを軸にコードを書くことを意識すべきだと考えています!

②変数名の命名は、我が子に名前を付けるのと同等

2つ目は、少し大げさですが、我が子に名前を付けるのと同じくらいの気持ちで変数名を命名すべきだという事です。変数名を考えるのに時間をかけすぎてしまうのはよくないと思いますが、その変数がどんな役割りなのか、何を格納しているのかを変数を見ただけで分かるように命名することで、読みやすいコードになると思います。

実際にしくじり経験をした後から、変数名の命名にはとても気を遣っています(笑)

③コードを書き始める前にプログラムの完成形をイメージをする

3つ目も僕は重要だと考えており、完成形やある程度のイメージを持ったうえでコードを書き始めることで、ここは共通化できるなとかを考えながらコードを書き進めることができると思います。

しくじり経験をしたときはとりあえずコーディングしながら考えようという意識でいたので、行き詰ってしまっていたリ、共通化の意識を軽んじてしまいました。

【推薦】コーディングを学べる本

前章でお伝えしたものは、自分が考えるものであり、意識すべきことのほんの一握りでしかありません。なので本章では、駆け出しエンジニアの方や、エンジニアを目指している方、僕と同じようにコーディングがくそだといわれてしまった方におすすめの本を紹介させていただきます。

1つ目は「リーダブルコード―より良いコードを書くためのシンプルで実践的なテクニック」という本です。こちらは先輩エンジニアの方にお勧めされ僕自身も読みました。

こちらの本は、特定のプログラミング言語に特化したものではなく、プログラムを書く際に意識すべきことや、良いコードを書くためにはどのようにすればいいかが書かれています。

エンジニアになったばかりの人でも読みやすいものだと思います!

2つ目は「良いコード/悪いコードで学ぶ設計入門」という本です。

こちらの本はオブジェクト指向型の言語を元に書かれており、オブジェクト指向プログラミング言語の基礎知識があって、設計を学びじめようと考えている方向けになっています。どんな構造が良いものなのかを理解するために、設計の基本的な考え方や、クラス設計などについてコードを元に解説してくれます。

1つ目の本より少し難しいかもしれませんが、設計の基本的は考え方を学べるのでお勧めです!

【まとめ】

今回はコーディングがくそ過ぎてしくじってしまった話をさせていただきました。失敗を経験したことで意識的にコードを書くことができるようになったので、今となってはいい経験でした。

実際、先輩エンジニアの方はかなり細かいところまでコードを見ているなと実感しています。なので、人格否定をされてしまう前に最低限のコーディングの基礎を身に付けておく必要があると思います!

本を読んで完璧に身につけるのは難しいと思います。なので僕も先輩エンジニアにコードをレビューしてもらいながら学んでいるところですので一緒に頑張りましょう。

それではまた次回お会いしましょう!