アカウント名:
パスワード:
C に記述標準を設けてバグの入りにくいコードを書けるようにという志で作られた MISRA C ですが、関数の末尾以外の return を禁止するという誰得ルールを筆頭に使い物にならない制約が多すぎます。役に立つところといえば、これをそのまま採用するところの技術力は信用できないという判断材料になることぐらい。
> 関数の末尾以外の return を禁止する
なぜ禁止なのかわからない人にコードは書かせたくないなあ
なぜ禁止すべきでないのかわからない人にコードを書かされたくないなあ。# 論理的な理由があるならそれを書けば済むだけなのに決まってこんな罵倒しか返ってこないんだよな
途中で return すると、リソース解放し忘れるミスが増えるから。コードの見通しの悪さによる保守性悪化と、リソースリークの潜在的危険性を天秤にかけた。理由としてはそれだけ。
MISRA C の主目的は深刻なバグの入りやすいパターンを避けることだから大多数にはバカバカしいルールでも、たった一人の間抜けに躓かないための妥協が多くなる。
C にデストラクタがあればこんなルールは生まれないね。
> 大多数にはバカバカしいルールでも、たった一人の間抜けに躓かないための妥協が多くなる。
間抜けに躓かないのを基準にルールをつくると、本来不要なルールがいくらでも増えていく。コードの健全性を期待するなら lint みたいなチェッカで評価するのを標準化するほうがより適切かと。
> C にデストラクタがあればこんなルールは生まれないね。
C でデストラクタ相当の処理を設けたいなら、リソース割当と解放をする呼び出し関数を経由するんじゃないかな。
コードの健全性を期待するなら lint みたいなチェッカで評価するのを標準化するほうがより適切かと。
そんなツールが手軽に使えれば、泥臭いデザインパターンみたいなコーディング規約に頼らなくてもいいのだが。無いものねだりは仕方がない。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
吾輩はリファレンスである。名前はまだ無い -- perlの中の人
MISRA C という失敗 (スコア:1)
C に記述標準を設けてバグの入りにくいコードを書けるようにという志で作られた MISRA C ですが、
関数の末尾以外の return を禁止するという誰得ルールを筆頭に使い物にならない制約が多すぎます。
役に立つところといえば、これをそのまま採用するところの技術力は信用できないという判断材料になることぐらい。
Re: (スコア:1, すばらしい洞察)
> 関数の末尾以外の return を禁止する
なぜ禁止なのかわからない人にコードは書かせたくないなあ
Re: (スコア:0)
なぜ禁止すべきでないのかわからない人にコードを書かされたくないなあ。
# 論理的な理由があるならそれを書けば済むだけなのに決まってこんな罵倒しか返ってこないんだよな
Re: (スコア:1)
途中で return すると、リソース解放し忘れるミスが増えるから。
コードの見通しの悪さによる保守性悪化と、リソースリークの潜在的危険性を天秤にかけた。
理由としてはそれだけ。
MISRA C の主目的は深刻なバグの入りやすいパターンを避けることだから
大多数にはバカバカしいルールでも、たった一人の間抜けに躓かないための妥協が多くなる。
C にデストラクタがあればこんなルールは生まれないね。
Re: (スコア:0)
> 大多数にはバカバカしいルールでも、たった一人の間抜けに躓かないための妥協が多くなる。
間抜けに躓かないのを基準にルールをつくると、本来不要なルールがいくらでも増えていく。
コードの健全性を期待するなら lint みたいなチェッカで評価するのを標準化するほうがより適切かと。
> C にデストラクタがあればこんなルールは生まれないね。
C でデストラクタ相当の処理を設けたいなら、リソース割当と解放をする呼び出し関数を経由するんじゃないかな。
Re:MISRA C という失敗 (スコア:1)
コードの健全性を期待するなら lint みたいなチェッカで評価するのを標準化するほうがより適切かと。
そんなツールが手軽に使えれば、泥臭いデザインパターンみたいなコーディング規約に頼らなくてもいいのだが。
無いものねだりは仕方がない。