- ベストアンサー
美しいコードを書くとはどういうことでしょうか
こんにちは。 最近、プログラミングを始めました。 スクリプト言語はPythonです。 いろいろな本を手にしてみると『美しいコード』という表現に出会うことがあります。 これはどういうことでしょうか。 私の理解では、例えば、改行や空白、インデントなど 一定のルールに従ってプログラムを書くのだと思っていました。 そうすると、どなたが書いても同じような仕上がりになり 『美しい』と言われるコードはどういうものか見当がつかなくなってきました。 『美しいコード』とは、ルールに注目することではなく 同じ命令なら、長々と書くよりもより短く書くという 文書能力のことでしょうか。 ありがとうございます。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
人によって考え方の違いはあるでしょうが、私が考える美しいコードは ・インデント等の体裁が整っている ・簡潔で無駄の無い処理になっている ・他人が読んでもすぐに理解ができる と言う事だと思っています。 特に「他人が読んでもすぐに理解ができる」と言う事が大事で、仕事でプログラムを書いていると当然ながら複数人で仕事をするので、自分の書いたプログラムを他の人が修正したり、他の人が書いたプログラムを自分が修正することがあります。 時には過去に作られたプログラムを改修するプロジェクトがあったりしますが、仕様書がちゃんと残っていなかったり、当時の担当者が退職していて居ないなんて事はよくあることです。 他人の書いたコードを読んで理解する力はエンジニアとして必要なスキルだと思いますが、それ以上に他人が読んでもすぐに理解できるコードを書けると言う事が重要なスキルだと思っています。 私は、使途が分かりやすい変数名や関数名を付けるとか、複雑な処理を無理矢理一纏めにするのではなく簡潔な処理に分解して段階を追って処理するように心がけています。
その他の回答 (3)
- kmee
- ベストアンサー率55% (1857/3366)
御存じかもしれませんが、念の為。 Pythonを使うだけで「字下げ」は綺麗になります。 というか、綺麗にしないと、正しいプログラムになりません。
お礼
お忙しい中、ご回答いただきましてありがとうございました!
- Lchan0211b
- ベストアンサー率61% (573/930)
PythonじゃなくてC言語をとりあげた本ですが、 プログラミングの基礎を養うのにとてもいいと思うので、 以下を読むことをお勧めします。 「Cプログラミング診断室 ~ うつくしく健康なプログラムのために」 http://www.pro.or.jp/~fuji/mybooks/cdiag/index.html#mokuji もう20年前に出版された本で、15年前に絶版になりましたが、 筆者の厚意で本の内容をWebサイトで公開してくれています。 その後、10年前からまた改訂新版として発刊されたようですが、 改訂前の版はWebサイトの公開を続けてくれています。 この本では、「汚いコード」というのがどんなのか、 どうして汚いのかをたくさん説明してくれてます。 普通の本は、きれいでわかりやすいコードしか載せませんから、 汚い/きれいってどういうことなのか、普通の本を読んでもなかなかわかりません。 汚いものがどういうものかわかれば、何がきれいかわかるようになります。 これを無料で読めるんだから、ありがたいことです。
お礼
とても丁寧なご回答をどうもありがとうございました。 早速目を通してみました。 C自体はわかりませんが、やはり長いと見づらいですね。 貴重な情報をどうもありがとうございます。
- Ogre7077
- ベストアンサー率65% (170/258)
以下の書籍を読むことをオススメします リーダブルコード より良いコードを書くためのシンプルで実践的なテクニック http://www.oreilly.co.jp/books/9784873115658/ 個人的には、こっちの方がより「美しい」気がしますけれど ハッカーのたのしみ 本物のプログラマはいかにして問題を解くか http://www.amazon.co.jp/dp/4434046683
お礼
貴重な情報を教えていただき、どうもありがとうございます。 現在の自分のレベルでは、数多くあるPC関連の中から自力で良書を探し出すのはとても難しいです。 早速、注文しました。届くのが楽しみです。 どうもありがとうございました。
お礼
ご回答どうもありがとうございました。 自分が読むだけではなく、後日誰が読んでも分かるように 書くということですね。そうすれば短く簡単に・・・となり 美しいですね。 やはり、どの世界でも人の為と考えるといいものができるのだと 思いました。 どうもありがとうございました。