プログラミング時に心がけている事

プログラミング時に心がけている事

大抵の開発では動くかどうかもわからないものを作ることはないと思います。
その場合動くものは作れて当然であり、それをどれだけ早く、品質が良く、メンテナンス性も良く、カスタマイズ性も良いものを作るかが私がプログラミング時に心がけている付加価値です。
この付加価値を完璧に提供できるように日々勉強中です。

自分のプログラム(仕事)にプライドを持つ

任されたプログラム(仕事)に対してプライドを持つようにしています。仕様に不明点が多かろうが設計書に間違いがあろうが、自分が作ったものの責任は自分にあると考えています。やるべきことをしっかりと理解した上で作業を進めれば、仕様の問題や設計書の問題にも気づけることがあります。なぜこの機能があり、何をしたいのかをよく考えるようにしています。

作業が終わったら終わったと報告する

当然のことなんですが、たまに終わっているのに報告せずにだらだらと過ごしている人を見かけます。パーキンソンの法則「ある資源に対する需要は、その資源が入手可能な量まで膨張する」にもあるように、人は与えられた期限を消化しきってしまう傾向が多いようです。早くてミスがあれば手抜き、ギリギリまで時間をかけてミスがあれば頑張ったけどミスがあった・・・とはならないはずです。ギリギリでミスが見つかればリカバリーの時間がありませんからギリギリであるほどミスは許されないはずです。

すぐ終わるものはすぐにやってしまう

何かの作業中に頼まれごとをされた時に、その内容がすぐ終わるものであればなるべく優先して終わらせてしまいます。その方が相手にとっても助かるし、自分も忘れてしまうこともないメリットがあると思います。学生症候群のようにすぐできることを後回しにしてしまうといつも余裕のない状態での仕事となってしまいます。

とりあえず動くものを出来るだけ早く

最低限の処理を実装してとりあえず動くものを早く作り、動きを随時確認しながらちょっとずつ実装を進めていきます。必要な処理を全て書き終わってから動かしていると、どこに問題があるのかもわかりづらくなります。

読みやすく理解が容易なソースコードを

プログラムというのは、書いている時間より読んでいる時間の方が長いです。自分が書いたプログラムは長ければ10年、20年は保守され誰かに読まれる可能性があります。
グループ毎に改行したり、適切にインデントしたり、コメントがなくとも意図がわかるようなソースコードになるように心がけています。

同じような処理は必ずメソッド化、クラス化、ライブラリ化を行う

たまに既存の処理に影響を与えたくないからと言って全く同じ処理を別のところにコピーしているようなソースコードを見かけます。コピー&ペーストは絶対だめ!

1メソッドはモニタに収まる程度に

その時使っているモニタの大きさにもよりますが、大体30行ほどだと思います。ぱっと見でそのメソッドの全容がわかるくらいが良いですね。

変数名、メソッド名、クラス名は意図がわかる名前に

基本中の基本ですね。最近ではそこまでひどい名前は見かけないですが、昔はよく見かけた気がします。

出来る限りネストを減らす

ネストが深ければ深いほど読みづらくなります。最近見かけた中で酷かったのが下記のような条件分岐が10個くらいあって最終的なif文に処理がポツッと書かれているもの。下記は3つに省略していますが、それでも微妙です。

if (条件1) {
    if (条件2) {
        if (条件3) {
            処理
        }
    }
}

リターンのあるメソッドでは早めにリターンする

これは全てにおいて当てはまるわけではないですが、読まなくても良いコードを読まなくて良いようにするため、なるべく早くリターンするようにしています。
またこうすることで、if文のネストを減らすことになりソースも読みやすくなります。

フレームワークやライブラリをなるべく利用する

利用できるなら利用すべきだと思います。有名なものであれば様々な人に利用されていて実績もありますし、先人たちの知恵が凝縮されています。

テストコードを書く

今まで経験してきた中で、テストコードを書いているプロジェクトは1つもありませんでした。プロジェクトとして必須ではなくても、私は不安な箇所(処理)についてはテストを書いていました。ちょっと処理が複雑なメソッドに対してだけでもテストコードを書いてしまえば安心できますのでオススメです。

動くものができ、テストコードを書いたらリファクタリング

最後の仕上げです。随時リファクタリングを行いながら開発しますが、動くものが完成したと思ったらそこからさらにリファクタリングを行います。

プログラミング関連の塾読書

 

なんと気づけば2冊も持っていました。。

 

 

最近一押しの本です。私が普段考えていたこと思っていたことが書かれていてかなり共感しました。こう言った本に興味のアリそうな人にはいつもオススメしています。
そのうちまた読み直したいと思っています。
本当に良い本は何度でも読んでます!

この本もかなり勉強になりました。特に最近悩まされているのが、とりあえず動くものを作りました!みたいなソースコード。これをメンテナンスしようとすると、予想外のところで障害が発生したりします。
そう言ったことにならないようにするために、どのようにプログラムを設計すれば良いのかを学べます。

プログラミングカテゴリの最新記事