「良いコード」を書くエンジニアになりたい駆け出しエンジニアへ
こんにちは。iOSエンジニアのあかつきです。今回はイベントの宣伝がてら、「良いコード」とは何なのかについて書きたいと思います。
「良いコード」とは
所属する文化や言語、各個人の考えによって「良いコード」の定義はちょっと違ってくると思うので、ここではあくまで個人の意見として「良いコード」の定義をしておこうと思います(自分のことは棚に上げて…)。
■メンテナンス性の高いコード
1ヶ月先、もっというなら明日の自分は他人です。書いた当時の大人の事情とか、試行錯誤した内容なんて忘れてます。ましてや他人をや。ということで誰が見てもわかりやすいコードを書くことは、継続して開発する上で大切です。
加えて、変更のしやすさ、再利用のしやすさも重要です。「ある部分を改修したら思わぬところで悪影響が出た」「既存のものと同じような処理をやりたいんだけど、密結合すぎて共通化できない」というコードはメンテナンスしにくいです。
■可読性の高いコード
先述の通り、誰が見てもわかりやすいコードを書くことは大切です。エンジニアはコードを読む時間も長いです。不具合調査で、「調査はすごく時間がかかったけど修正は一瞬で終わった」ということもあります。読みやすいコードを書くことは、未来の自分への投資になります。
■無駄がないコード
同じような処理を何回も書いてしまう、計算結果は出てるのにreturnせずに最後まで回してしまうなどの無駄なコードは、UXの悪化に繋がることもあります。また、もう使われていないコードをそのままにしておくと、DX(Developer Experience)の悪化に繋がります。このようなコードは排除しておきたいですね。
■(その言語らしいコード)
それぞれの言語には、それぞれの特徴があります。それに則った方が効率的に、スマートに書ける場合があります。ただし、あまりにも高度に使いすぎると逆に読みにくくなってしまうので注意が必要です。
「良いコード」を書くには
完全に自分だけで改善していくのは限界があるのではないかと思います。もちろん日々技術力がアップしているはずなので、後から見たら「誰だこの恥ずかしいコードを書いたのは??…自分かよ!!」ということもあるのですが、書いた直後はそれが悪いコードだとは思ってないはずです。ここでは3つほど対応策を紹介しようと思います。
■コードレビューをしてもらう
厄介なことに、自分では「良いコード」を書いているつもりでも、他人から見たら「良くないコード」の場合があります。単なるうっかりミス、知識の欠如、俯瞰できる視野の欠如など様々な要因があると思います。自分の精一杯を超えるためには、他人の力を借りるといいです。自分にはない世界を見せてくれます。
スポーツにしても、うまい人から「実はこんなことを意識してるんだ」「こうするとうまくいくよ」と教えてもらった方が成長が早いと思います。コードも同じです。早く成長したいなら先輩からアドバイスがもらえる環境がいいです。
■「良いコード」に関する資料を漁る
名著『リーダブルコード』を手にとって、どんなコードが良いとされているかを学んでみることをおすすめします(言語によっては、必ずしも本に書かれている法則に従わない方がいい場合や、プラスαの法則があったりします。同じく本を読んだ人と議論してみると面白いと思います)。その他にもネット上には「良いコード」を書くための情報がいっぱい転がっているので、さらっと読んでみるといいと思います。
■コードリーディングをする
有名なOSSなどのコードを読んでみましょう。「こんなスマートな書き方があるのか!」「こんな意図でこれを書いてそう」など、いろいろ勉強になります。最初は小さなプロジェクトのコードからでいいので、ちょっとずつ読み進めると良いです。
イベント宣伝
長々と書きましたが、最後にイベントの宣伝したいと思います。
このイベントではもくもくとコードを書きつつ、必要に応じてメンター(全員女性)にコードレビューをしてもらうという形式になっています。
コードレビューしてもらいたい方以外にも、単にIT業界についてもっと知りたい方、プログラミング学習について不安を持っている方、一緒にプログラミングを頑張る仲間が欲しい方なども参加対象となります。
女性専用のコワーキングスペースを使うということもあり、女性、もしくは女性から紹介いただいた男性からの申し込み受付になることはご了承ください🙇
「自分は対象者ではないけど、いい取り組みだと思う / 社内に需要がある人がいるかも」という場合は、ぜひTwitterや社内で情報共有をしていただけると助かります🙇
イベントに申し込むかどうかを決めるにあたって質問したいことがある、ちょっと不安という場合は気軽に相談/質問してください。DM開放してます。→@akatsuki174
それでは皆様の参加をお待ちしています(๑•̀ㅂ•́)و✧
共感した、他の人にも知ってもらいたい等々思ったら、ぜひTwitterなどでシェアしてください。