新刊ピックアップ

プログラマーとして独り立ちするために

この記事を読むのに必要な時間:およそ 1 分

プログラマーに求められるスキル

プログラミングを行っているときに,次のような壁にぶつかった経験はないですか?

  • 何から手をつけていいのかわからない
  • 一貫性のないコードを書いてしまった
  • バグを直そうとして,別のバグを生んでしまった
  • 作ってみたものの,今後も開発を続けていくのは大変

こういった「プログラミング迷子」になってしまうのは,⁠開発の地図」を持っていないせいです。

プログラミングに必要なのは,何も文法の知識だけではありません。設計や開発プロセス,エラー処理といった,さまざまな技術知識が必要になります。

プログラミング言語の文法や書き方,役割を知っている人が,より効率的かつ効果的にプログラムを書けるようになるためには,技術的なつまづきと学びを繰り返し,その背景にある原理原則を見つけていくことが重要です。単に「動くコードが書ける」のではなく,⁠プログラミングで作りたいものを設計できる」⁠何かを作るプロセスを知っている」こと,つまり,⁠どうコードを実装して実現していくのか」こそが,プログラマーに求められるスキルなのです。

そんな必須スキルのうち,ここでは「関数設計」に関するベストプラクティスを紹介します。

関数設計のベストプラクティス

処理内容を想像できる関数名にする

プログラミングにおいて,関数化と関数名はとても大切です。たとえばある関数にitem_csvという名前をつけたとします。これでは,関数名を見ただけで何をする処理かわかりません。

この関数が「書き込む」処理を行うのであればwrite_item_csvのように,処理内容を表す動詞を関数名の頭につけるといいでしょう。

狭く具体的な意味の英単語を使おう

では,この関数が「取得する」処理を行う場合はどんな関数名にすればいいでしょうか。get_item_csvにすればいいじゃないか」と思った方がいるかもしれません。ですが,⁠get」という英単語は意味の幅が広すぎて,関数が具体的にどういう動作をするかまで想像できません。

外部へのアクセスがどれくらい発生するか,計算処理はどれくらい発生するか,データベースへのアクセスはあるのか,など,関数名から読み取れる英単語を使うことが望ましいです。

たとえばfetch_item_csvとすると,外部アクセスをして取得する意図が伝えられます。load_item_csvとすると,CSVファイルを読み込む処理なのだろうと想像できます。このように,英単語から処理や副作用を「想像できる」ことも重要です。

getは,そのほかにも表1のような単語で置き換えることができます。

表1 想像できる英単語の例

英単語想像できる意味
search検索処理が発生する
calc外部アクセスなしに計算だけする
merge2つのデータを合わせて1つのデータにする
render文字列や画像を処理捨て描画する

「自走プログラマー」を目指して

書籍自走プログラマーでは,実際の現場で起こった問題とその解決方法をもとに,設計からコードまで書けるようになるために知っておいてほしい120のベストプラクティスをまとめました。ここで紹介した関数設計をはじめ,クラス設計やテーブル定義,ロギング,リソース設計,モックアップ作成などにおいて,⁠プロジェクトの各段階でプログラマーがやること」⁠その選択をどう判断するのか」⁠どうコードを実装して実現していくのか」を紹介します。プロジェクトや失敗のレベル感もさまざまなので,チーム開発でも,個人開発でも役に立つこと間違いなしです。

本書を読んで,設計書をコードにする単純作業者ではなく,やりたいことをまとめ,設計からコードにし,そしてリリースするまでをすべて1人でできる「自走プログラマー」を目指しましょう。