LoginSignup
228
232

More than 5 years have passed since last update.

私が実践しているPyCharmの運用ルール

Last updated at Posted at 2017-03-04

私の記事の「最強のPython開発環境 PyCharmのすゝめ」が、「いいね」が200超えましたので、続きを書こうかと思います。

とはいえ、便利な機能はあらかた紹介済みですので、私なりのPyCharmの運用ルールを書いてみたいと思います。
これはあくまで、私個人で実践している自分ルールですので、「こんな風にやってるんだ」くらいに読んでください。

静的解析のインスペクション項目は全てON

PyCharmはリアルタイムでコードを静的解析して、コードのダメな部分を注意してくれます。

しかし、実際にコードを書いていると「ちょっと神経質かな〜?」と思うでしょう。
インスペクション項目(検査項目)は、1つ1つ細かくON/OFFができるので、自分流にカスタマイズしていくのが普通だと思います。

ちなみに、私のPyCharmはインスペクション項目は全てONです。
そのうえ、インスペクションがグリーン(警告が0の状態)になるまでコミットしないという縛りも課しています。

範囲を選択_031.png

とはいえ、ある程度の規模になってくるとオールグリーンはほぼ不可能です。
どうしても警告が取れない部分は、コメントによって最小範囲でインスペクションを無効にしています。

範囲を選択_032.png

大事な事は、無視する警告はあれどすべて目視チェックを通してから無効にするという事です。
自分の預かり知らない警告を握りつぶすと静的解析の意味がなくなりますので。

すべてのコードを一括でインスペクト(検査)したい場合は、メニュー「Code」→「Inspect Code...」を選択して一括検査することができます。

範囲を選択_034.png

コメントは書かずともタイプヒントだけは書く

個人的な話ですが、私はコードにコメントはあまり書きません。

そもそもコメントが必要なコードを書いている時点で設計がおかしいのです。適切な命名、機能分割、簡潔なコードであればコメントはほぼ必要ないはずで、そういうコードを目指しています(書けるとは言っていない)。

コメントよりも、タイプヒントをできるだけ書くように心がけています。

範囲を選択_033.png

紹介記事でも書きましたが、タイプヒントと静的解析によってPythonが動的型付け言語と静的型付け言語の美味しいとこ取りができるのです。

静的解析を通していないPythonコードは安全装置を外した銃みたいなものです、安全装置を外したままの銃を弄っていれば、いつか自分の足を撃ちぬきます。

7年ほどPythonコード書いている私でも毎日自分の足をぶち抜いています1、安全装置を外したエディタでバグを出さずにコードを書ける自信がありません。
逆にいえば安全装置のついたエディタを選ぶだけで、型の制約のない強力な表現力、柔軟性、お手軽さを兼ね備えた最強言語になります。

単体テストライブラリ「py.test」を使う

単体テストのライブラリはpy.testを使っています。

テストの記述が簡単だし、テンポラリディレクトリの扱いが楽なので非常に重宝しています。
PyCharmでpy.testを使うには、標準のテストランナーを変更する必要があります、「Settings...」→「Python Integrated tools」の「Default test runner」の項目を設定します。

メニュー_038.png

テスト関数を右クリックで、そのテスト関数のみをテストできるようになるので便利です。

Jupyter Notebookを積極的に使う

最近、コードは専らJupyter Notebookで書いています。
結果を確認しながらコードを書けるのも便利ですが、コードを書いた後にマークダウンで注釈を書けばマニュアルにもなるし、単体テストにもなる素晴らしいツールです。

PyCharmとJupyterの連携機能を使うと、Jupyter上でPyCharmの補完機能が使えるので最高に快適です。

tAZ4YS0mO3.png

Jupyterは便利なんですが、from IPython.display import displayとか定型文を入力するの面倒ですよね。
私の場合は「Extranal Tools」を使って定型文が入力済みのノートブックを生成しているので、作業がめちゃくちゃ楽です。

メニュー_019.png

やり方は「PythonでJupyterノートブック「.ipynb」を生成する」に書いてありますので、そちらをどうぞ。

また、Jupyterの有効な使い方はJupyter Notebookを単体テストやマニュアル作成ツールとして使うにも書きましたので、そちらも参考にしてください。

TODOを忘れない

非常に当たり前の事ですが、「あとで実装する」と書いたTODOコメントを忘れてはいけません。
でも忘れちゃいますよね、にんげんだもの。

メニューの「View」→「Tool Windows」→「TODO Alt+F6」でソースに書いたTODOコメントの一覧を集約して表示してくれます。

範囲を選択_036.png

JenkinsでTODO一覧を出してくれる機能がありますが、こっちはローカル環境で一覧を出してくれます。
ありがてぇ、ありがてぇ。

コードの検索はShift x 2

Shiftを2回押すと出てくる検索ウインドウが強力すぎて、他の検索機能はあまり使いません。

メニュー_035.png

これだけで、ファイル、クラス、メソッド、メンバ、変数まで全部これだけで検索できます。
あと使うのはCtrl + Shift + Fのグレップ検索くらいですね、この2つだけでだいだい事足ります。

よく使うショートカット

PyCharmのUIが洗練されすぎてて、使っているショートカットは多くありません。
Ctrl + W&Ctrl + Shift + Wが意外と便利。

ショートカット 機能
Shift x 2 検索
Ctrl + Shift + F グレップ検索
Ctrl + / コメント/アンコメント
Ctrl + Q オブジェクトのヘルプ表示
Ctrl + X 行の削除(非選択状態)
Ctrl + G 指定行へ移動
Ctrl + W 選択拡大
Ctrl + Shift + W 選択縮小
Ctrl + B 定義元へジャンプ
Shift + Alt + ↑↓ 行の上下移動
Shift+ Enter どこでも改行

更に詳しいショートカットの記事をがありました、私は別に忙しくないので覚えれるやつだけ使ってます。

忙しい人のためのIntelliJ IDEAショートカット集(´-`)

まとめ

私なりのPyCharmの運用ルールを書きました。
PyCharmは機能が非常に多いので人それぞれ使い方に個性が出るんじゃないかなと思います、他の人のPyCharmまたはPythonコードの運用ルールも知りたいですねー。

みんなの運用ルール記事を読みたいです!

Qiitaの編集画面

関係ない話ですが、Qiitaの記事編集画面で編集する度にプレビューが先頭に戻ってしまうのは、私だけなんでしょうか?
すっごい使いにくいです。


  1. 実際は自分の脚をぶち抜く前に、PyCharmが警告してくれています 

228
232
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
228
232