まめりうむ

WindowsからMacへ乗り換るためのネタをまとめたり好きなことをまとめたり。

*

リーダブルコードを読みました

   

スポンサーリンク
By: Chris

By: Chris

ひょんなことからクオカード1,000円分が手に入ったので、前から読んでみたかったプログラミング関係の本を買ってみました。

Code Completeもものすごく良いという評判を聞いていたんですが、立ち読みした感じ、まずはとっつきやすそうなリーダブルコードからw

今までの間違いに気付かされました

立ち読みの段階でも感じたんですが、とにかく読みやすいです。

翻訳が上手なんでしょうね。翻訳文独特の違和感が全く無いです。

内容も実践しやすいものからちょっと難易度の高そうなところまで色々あって勉強になります。

特に印象に残ったポイントが2つあって、ひとつは

どうして1行で書こうとしたのだろう?そのときは「オレは頭がいい」と思っていたのだ。ロジックを簡単なコードに落とし込むことに一種の喜びを感じていた。(102ページより引用)

ってトコです。

この文章のちょっと前に説明変数要約変数の紹介があったんですが、コーディングの段階では説明変数や要約変数にあたる変数を作成してるのに、一段落したらあえて省いてました

何となく変数に一回代入する文無駄が多いのかなと思って省いてたんですが、読みやすさを考えるとダメだったんですね、コレw

そして、もうひとつは

関数で複数のreturn文を使ってはいけないと思ってる人がいる。アホくさ。関数から早く返すのはいいことだ。むしろ望ましいときもある。(91ページより引用)

ってトコですね。

確かにコレも思ってましたw

出口が色んなとこにあるとわかりにくいのかなと思って極力避けちゃってたんですよね。

他にも変数名・関数名といった取り掛かりやすい問題から制御フローの再構成に至るまで見直すポイントは沢山あります。

ただ、最後のケーススタディ(「分/時間カウンタ」を設計・実装する)で急に難易度が上がったように感じてしまったあたり、実際にリーダブルコードを実践するのは一朝一夕には行かないようです。

難しいと感じたのはわたしがC++を全く知らないせいかもですが…w

でも、出来上がったコードは美しいと思いましたよw

あーゆーコンパクトでわかりやすいコードかける人がホントのプログラマーさんなんでしょうね。

Sublime Text3に追加パッケージをインストール

見た目的な美しさ(読みやすさ)の点で、縦の線をあわせるのが良いと紹介されていたので、コレを機にSublime Text3にもコード整形に役立つパッケージをインストールしました。

Alignment

以前読んだWeb制作者のためのSublime Textの教科書という本で

という2つのパッケージが紹介されてたんですが、Alignmentの方がイメージどおりの動きをしてくれたのでコチラを使用しています。

Python Flake8 Lintの設定変更

ただ、Alignmentでコードを整形するとPython Flake8 LintでE221エラー(オペレーターの前にスペース多い)が連発しちゃうので、ユーザー設定のignoreに”E221″を追加しておきます。

{
	// set desired max line length
	"pep8_max_line_length": 99,
	// skip errors and warnings (e.g. ["E303", E4", "W"])
	"ignore": ["W191","E261","E221"],
}

使ってみると

#Alignment前
details = request.POST.get('details')
location = request.POST.get('location')
phone = equest.POST.get('phone')
email = request.POST.get('email')
url = request.POST.get('url')

#Alignment後
details  = request.POST.get('details')
location = request.POST.get('location')
phone    = equest.POST.get('phone')
email    = request.POST.get('email')
url      = request.POST.get('url')

一目瞭然で見やすいですねw

本でも紹介されてましたが、変数名のスペルミスなんかはすぐわかります。

こーゆースペースで列を合わせるのって結構面倒なんですけど、Sublime Text3使って簡単に整形できるならやる気になりますw

オススメされていた書籍のまとめ

高品質のコードを書くための書籍






プログラミングに関する書籍






歴史的記録




どれも興味ありますけど、この中だとまずはやっぱりCode Complete第2版でしょうか。

この本は立ち読みでチラッと見たんですが、すごく気になるところとサッパリわからなそうなところがいっぱいあって読み通すにはちょっと骨が折れそうですw

ただ、職業プログラマーじゃない人がきちんと理解するためにはこーゆー本で勉強しないとダメなのかもしれませんね。

ちょっとお高いのですぐには手が出ませんが、いつか手に入れたいと思います。

 - プログラミング ,

スポンサーリンク

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

  関連記事

Pythonでニコ生アラートを作る(放送通知サーバをクラス化する)

前回までのスクリプトでニコ生の放送通知を受け取ることが出来たので、今回はもう少し …

Pythonスタートブックを読みました

Sublime Text3きっかけで、前からちょっと触ってみたいなと思ってたスク …

[Python]try~finally文中でreturn文を使ったときの動作

Pythonドキュメントの日本語訳を読んでて気付いたんですが return によ …

Pythonでニコ生アラートを作る(放送通知サーバのステータス確認と接続情報の取得)

このところプログラミングしたい病が発生していて、ひっそりとPythonでニコ生ア …

サーチエンジンの検索結果から欲しい情報だけ抽出するPythonスクリプト

引き続きPythonドキュメントの日本語訳を読んでます。 チュートリアルを読み終 …

Pythonチュートリアルを読みました

Pythonを勉強するにあたって、最初にPythonスタートブックという本を読み …

Pythonのlxmlモジュールをインストールする

Pythonの勉強のためにYahoo!の検索結果からタイトルとリンクを抽出するP …

Pythonでニコ生アラートを作る(放送通知サーバへの接続情報を使ってsocket接続)

前回の続きです。 今回は、前回得られた放送通知サーバへの接続情報を使ってsock …

Sublime Text3でPython開発環境を整えるためにインストールしたパッケージと設定

Sublime Text3でPythonのお勉強をするのに役立ちそうなパッケージ …

Pythonのwith文

このところ興味の矛先がPythonからRaspberry Piに移りつつあります …