C#+WPFチューニング戦記

C#とWPFで高速なコードと最適なシステムを書くためにやってきたいろいろな事を書いてみます。.NET Frameworkのソースコードを読み解きましょう。なお、ここに書かれているのは個人の見解であって何らかの団体や企業の見解を代表するものではありません。

コピペを極力避けるべき理由

プログラマがコピペを忌むべき理由

  1. あなたがコピペしたコードは、他の人が権利を主張した瞬間に、結合しているすべてのコードの公開を求められるものかもしれません。
  2. あなたがコピペしたコードは、別の人がそこにコピペしたもので、実はどこかのOSSライセンスに抵触しているかもしれません。
  3. あなたがコピペしたコードは、社内のコーディング規約に合わないかもしれません。
  4. あなたがコピペしたコードは、メンテナンスされておらず、自分もメンテナンスできないかもしれません。既知の不具合を読む時間はありましたか?
  5. あなたがコピペしたコードは、あなた達が作ろうとするシステムにはオーバースペックで、速度を損なうかもしれません。
  6. あなたがコピペしたコードは、ほんの少し書き換えただけの従妹が存在するかもしれず、コード重複が発生するとメンテナンス性が下がります。
  7. あなたがコピペしたコードは、あなたの技術を上達させることはほとんどありません。

とはいえ、まとまった1つのライブラリはブラックボックスでさえなければ大変有用に機能します。
OSSの力を活用することには肯定的です。
しかし、あなたはそのライセンスと、その機能について理解していることが必要でしょう。
無知であることは常にリスクです。逆に、知っているならばそれは大変な武器を手に入れたことになります。
機能に必要があって導入したものだとしても、中身を知る努力は常に怠らぬことが肝心です。そして、実行結果のベンチマークは必ず取るようにしましょう。

話は少々変わりますが、
SonarQubeというツールの恩恵が最近大変大きいです。
プロジェクト内のFxCop違反コード、重複コードをどんどん撲滅しています。
重複が少ないという事は、キャッシュヒット率が全体的に向上するという意味です。
こういったありがたいシステムを作ってくださる人たちは本当にすごいと思います。