search
LoginSignup
1
Help us understand the problem. What are the problem?

More than 5 years have passed since last update.

FreeBSD Advent Calendar 2016 Day 5

posted at

Styleの事

FreeBSDのカーネルソースをいじってPHABRICATORでレビューしてもらってheadにマージしてもらったのですが、Style(9)を何度か指摘されました。

私のコーディングスタイルは、ほぼ一から開発するようなケースはなく、類似のコードをコピーするところから始めます。大昔にシーナ&ロケッツの鮎川誠さんがイベントで、ホームページでJavaScriptを使っている事を聞かれて、「良さそうなページからコピーしてる。ロックの基本はコピーです。」とか言われて、私もロックな気持ちでプログラミングしています。:)

コピーから始めるときにいろいろなコードを見る事がうまくいく手助けになることがあります。SOCのネットワークコードを作ったときにTulip互換なのでdev/deのコードをベースにしようとしてうまくできませんでした。これはdeのコードはいろいろなデバイスのサポートのために、コードの見通しが悪くなっているためです。代わりにsys/mipsにあったコードをベースにしてどうにか作る事ができました。socベースのコードはそのデバイスのみのサポートになるので、比較的見通しが良いコードが多いです。

レビューの話に戻すと、PHABRICATORのツールのarcでもLINTは実行しているようなのですが、それ以上の項目がStyleでは指定されています。具体的に指摘された点は以下の通りです。

  • defineの後の空白はスペースでなくタブで
  • if,forの後には空白を入れる
  • 演算子の前後にも空白を入れる
  • //を使わない
  • 変数の宣言と初期化は別にする
  • 変数定義が無い関数は{の後一行開ける

既存コードにも違反しているものあって、それをコピーして指摘されるとちょっと凹みます。とはいえ、FreeBSDのコードの奇麗さにも貢献している事だと思うので、ちゃんと守っていきたいです。

私の場合、ロシアの方々が指摘してくれたのですが、manを見るよりも指摘された方が理解が早くありがたく思います。

Style対応のlintツールみたいなものがあったら良いのにと思ったりします。

ではでは。

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
What you can do with signing up
1
Help us understand the problem. What are the problem?