top of page

vol.150 -「新人プログラマー必見!プログラムを効率的に書く方法」

  • 執筆者の写真: 株式会社ビジョンクリエイト
    株式会社ビジョンクリエイト
  • 2023年4月4日
  • 読了時間: 3分

皆さんはプログラムを書くときに、いきなりコードから書き始めていないでしょうか。そういう私もプログラムを学び始めた頃はそうでした。「とりあえずコードを書いてみよう」と書き始めますが、だんだんと自分が何を作ろうとしているのかわからなくなり、やっと出来上がったコードは無駄な処理やバグも多く、とてもスマートと言えるものではありませんでした。例えるなら、目的地を聞いただけで家を飛び出し、散々迷子になってボロボロの状態でなんとか目的地にたどり着いたようなものです。事前に交通手段を調べてルートを検討するように、プログラムを書くときも事前の準備が重要です。 それでは、具体的にどのような準備が必要なのか見ていきましょう。


①目的を明確にし言語化する


まず、実現したい処理を言語化しましょう。日本語でいいので、コメントに具体的に書きます。頭の中でふわっとしている状態でも、言語化することで目的が明確になります。例えば「ユーザが入力したパスワードが規則に合っているか判断するメソッド」などです。このままだと「規則って何?」「パスワードはどういった手段で受け取るの?」など曖昧な部分がありますので、補則として追記します。


# ユーザが入力したパスワードが規則に合っているか判断するメソッド

# ・パスワードは8文字以上16文字以下の半角英数字で、数字と英字を少なくても1つ以上含むこと

# ・パスワードは文字列として受け取る

# ・規則に合っていればTrue、合っていなければFalseを返す


これで実現すべき処理の目的と入出力が明確になりました。


②処理を細分化する


ここでまだコードを書き始めてはいけません。

次にすることは、実装方法を考えてこれも日本語でコメントに書きます。例えば、正規表現を使って判断する方法もありますが、条件を一つずつ検証する方法で考えてみましょう。


# パスワードが8文字未満、または16文字を越えていたらFalseを返す

# パスワードに含まれる半角数字の数を取得する

# パスワードに含まれる半角英字の数を取得する

# 半角数字と半角英字それぞれの数がどちらも1以上ならTrue、違うならFalseを返す


③細分化した処理を見直す


処理に過不足がないか、誤りがないか、目的を実現できているか、見直しましょう。特にイレギュラーな場合(データがnullなど)の処理を考慮できていないことが多いです。これも忘れずに付け足しましょう。


④コメントの下にコードを書く


ここまで来れば、あとはコメントに従ってコードを書くだけです。コードが分からなくても、調べるのはコメントに書いた内容だけに絞ることができるので、やりやすくなります。

もし、それでも分からないときは、さらに処理を細分化してみましょう。


# パスワードは8文字未満、16文字を越えていたらFalseを返す

 ↓ 細分化

# パスワードの文字数を取得する

# パスワードの文字数が8文字未満、または16文字を越えていたらFalseを返す


このように処理や手順を分解することで、さらに理解しやすくなりコードに落とし込みやすくなります。

最後に不要なコメントを削除したり体裁を整えて完成です。

■処理を言語化、細分化するクセをつけよう

いきなりコードを書くのではなく、まずは目的を日本語で言語化してコメントに書き、処理を細分化することで、スマートで効率的なプログラムを書くことができます。是非参考にしてくださいね。

最新記事

すべて表示
vol.155 -「進化するマルウェア - 巧妙化する手口」

はじめに 最近のニュースで話題になっていましたが、楽天やSBI等のネット証券会社で口座の乗っ取りが急増する被害が発生しています。 (参考URL) 証券口座乗っ取り、不正取引額3000億円超に被害拡大-金融庁 https://www.bloomberg.co.jp/news/...

 
 
vol.154 -「PCのスペック - ITエンジニアが提案するスペックの見方と選び方」

はじめに 過日、友人達と飲みに行った時の事ですが、友人のお子さんが大学に入学する事にノートPCを購入する必要があるそうで「どういったスペックのもの買えば良いのか?」、という話題になりました。 結論から申し上げると、アプリケーションを開発したりといった用途ではないらしく、そこ...

 
 
vol.153 -「SoC - 高性能・低消費電力化に向けて」

はじめに スマートフォンやPC、IoTデバイス、自動車など、SoCはあらゆるデバイスに組み込まれていて、私たちの生活や産業に大きな影響を与えています。 今回は、SoCに使われている技術がどのように進化しているのか、技術トレンドを交えながら 記事をお届けしたく思います。...

 
 
 

Comments


Commenting on this post isn't available anymore. Contact the site owner for more info.
bottom of page