私は「スタイリング」に夢中になっているので、約8kのSLOCプロジェクトで現在使用しているガイドラインを書き留めます。ファイルのほとんどはPEP8と一致します。
PEP8は79(WTF?)と言っています、私は80で行き、今はそれに慣れています。結局、目の動きが少なくなります!
'''の複数行にまたがるDocstringsなど。他のすべて''
。また、二重引用符は好きではありません。常に一重引用符のみを使用します...これは、JavaScriptコーナーから来たためだと思います。ここでは、''を使用する方が簡単です。そうすれば、すべてをエスケープする必要がないからです。 HTMLのもの:O
先頭に、カスタムアプリケーションコードの前に組み込まれています。しかし、私は「早期に失敗する」アプローチも採用しているので、バージョンに依存するもの(GTKなど)がある場合は、最初にそれをインポートします。
場合によっては、ほとんどの場合、importfooとfromfoo importを使用しますが、特定の場合(たとえば、名前は別のインポートによってすでに定義されています)、fooimportbarからblaとしても使用しました。
4スペース。限目。本当にタブを使用したい場合は、SCMで作業するときにコミットする前に、必ずタブをスペースに変換してください。しかし、決して(!)タブとスペースを混ぜないでください!!! それは恐ろしいバグをもたらす可能性があります。
some_methodまたはfoo_function、CONSTANT、MyClass。
また、メソッド呼び出しなどが複数行にまたがる場合のインデントについて議論したり、使用する行継続スタイルについて議論したりすることもできます。すべてを囲むか()
、\
行の最後で何かを実行します。私は後者を行い、次の行の先頭に演算子やその他のものも配置します。
# always insert a newline after a wrapped one
from bla import foo, test, goo, \
another_thing
def some_method_thats_too_long_for_80_columns(foo_argument, bar_argument, bla_argument,
baz_argument):
do_something(test, bla, baz)
value = 123 * foo + ten \
- bla
if test > 20 \
and x < 4:
test_something()
elif foo > 7 \
and bla == 2 \
or me == blaaaaaa:
test_the_megamoth()
また、比較操作のガイドラインがいくつかあります。私は常にis(not)
チェックするために使用None True False
し、暗黙のブール比較を行うことはありません。if foo:
常に実行しますif foo is True:
。動的型付けは便利ですが、場合によっては、正しいことを確認したいだけです。 !!
私がするもう一つのことは、空の文字列を決して使用しないことです!それらは定数ファイルにあり、コードの残りの部分では、私が好きなものを持っているusername == UNSET_USERNAME
か、label = UNSET_LABEL
それはそのようにもっと説明的です!
厳密な空白のガイドラインやその他のクレイジーなものもありますが、それが好きです(クレイジーなので)、コードをチェックするスクリプトも作成しました:http:
//github.com/BonsaiDen/Atarashii/blob/マスター/チェックスタイル
警告(!):それはあなたの気持ちを傷つけるでしょう!JSLintよりもさらに...
しかし、それは私の2セントです。