Dry(Don't repeat yourself)
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
「[[.NET 開発基盤部会 Wiki>http://dotnetdevelopmentinfras...
-[[戻る>なんとか原則]]
*目次 [#afeb9d1d]
#contents
*概要 [#ec85b2a4]
定義を忘れるためメモ。
*対象 [#m1f0cf4b]
様々な参考情報を参考にすると、恐らく、~
[[前者(コードを対象としているという主張)>#i6c06441]]が...
**コードを対象としているという主張 [#i6c06441]
単に「コードを重複させない」という原則ではなく、
-DBスキーマ、
-テスト、
-ビルドシステム、
-ドキュメント
なども対象になっており、
「ソフトウェア開発全体において情報を重複させない」
という原則。
**コードを対象としていないという主張 [#n6367ffb]
***[[OAOO(Once And Only Once)]]原則 [#q6d9bd61]
転じて、プログラムコード中で同じ(ような)動作をするコード...
一度書いたものを再利用するようにすべきとする意味で用いら...
こちらは本来は“[[OAOO(Once And Only Once)]]原則と呼ばれる...
***クラス、オブジェクトに対する適用 [#we38c88a]
-DRY はオブジェクト・インスタンス(データ)に対して適用さ...
-OAOO はクラス(コード)に対して適用される。
*用例 [#w3e98c70]
2つのコンテキストがある。
-業務系などライフサイクルが長いケースでは前者が重視されて...
-Web、ゲームなどライフサイクルが短いケースでは後者が重視...
**ポジティブなコンテキスト。 [#d6b5475e]
共通化などを行ったDry。
-大規模なSI案件では、~
チーム開発でも疎結合なDryの状態を維持するため、~
標準化・共通化などは半ば常識的に行われる。
>密結合なDryの状態で開発されていたら、大規模化して~
長期の維持・保守が必要になった場合に、対応できなくなる。
-[[Open棟梁>http://opentouryo.osscons.jp/]]導入案件でも、...
標準化・共通化のレイヤは、追加されたUIコントロールなどで...
**ネガティブなコンテキスト。 [#y14f8197]
(車輪の再開発はしない的な)素描Dry。
-観測範囲で、Web、ゲームやフリーランス界隈でも、Dryが尊ば...
-しかし、下記のように、「[[Dryで書いたものが負債になって...
ライフサイクルが短く、スクラップ・アンド・ビルドなプロジ...
--≒ モジュール強度が強く、結合度が弱くなる境界で分割され...
--≒ デファクトなフレームワークの生のAPIを触りたい為、レイ...
---フレームワークの生のAPIを触りたい。
---低品質な≒オレオレ的なレイヤを構築したくない(&触りた...
※ なんとなく、時間を掛けて適切な設計が出来無い案件でDryが...
*疑問 [#o98f456a]
**モジュールの凝集度・結合度との関連 [#k94eeee3]
ありそう。
-モジュールとしてまとめられたときに困るのは、~
凝集度が低く、結合度が高くて、自由度が制限されること。
-モジュール化するべきか、しないべきか、については慎重に考...
**スタックしなくてもDryにできるか? [#g47ab134]
基本スタックしないとダメそう(素描DryはDryじゃないダロ的...
-しかし、凝集度・結合度に問題がある下位スタックだと逆効果。
-こういうこともあって、[[デメリットについての言及>#odf5da...
*参考 [#had64951]
-Don't repeat yourself - Wikipedia~
https://ja.wikipedia.org/wiki/Don%27t_repeat_yourself
-DRY原則(Don't Repeat Yourself)とは - IT用語辞典~
http://e-words.jp/w/DRY%E5%8E%9F%E5%89%87.html
-DRY原則 | プログラマが知るべき97のこと~
https://xn--97-273ae6a4irb6e2hsoiozc2g4b8082p.com/%E3%82%...
-プリンシプルオブプログラミングを読んだ • nemupm~
https://nemupm.com/blog/2018/02/12/principles-of-programm...
**デメリットについての言及 [#odf5da81]
-@mizchiさんのツイート:
--https://twitter.com/mizchi/status/959297746908856320
>DRY、よかれと思って書かれたものが負債になってることのほ...
--https://twitter.com/mizchi/status/1078243362640093185
>本当に共通化できるモジュールを発見するのは、~
技術的な分解点とドメイン理解の双方がないと正しく行うこと...
--@mizchiさんの「DRY」に対する言及コレクション。~
https://twitter.com/search?l=&q=Dry%20from%3Amizchi&src=t...
-あなたはDRY原則を誤認している? - Qiita~
https://qiita.com/yatmsu/items/b4a84c4ae78fd67a364c
--DRYは素晴らしい考えですが、やり過ぎると密結合を生んでし...
--ソフトウェア開発原則は他にも多数存在するわけで、それぞ...
-DRY原則の利用: コードの重複と密結合の間~
https://www.infoq.com/jp/news/2012/05/DRY-code-duplicatio...
--DRYは重複とそれに伴うメンテナンスの問題を軽減するものだ...
--教訓:ソフトウェア開発原則は、ほかの原則やパターン、プ...
-DRYと不当な抽象化によるコストについて | POSTD~
https://postd.cc/on-dry-and-the-cost-of-wrongful-abstract...
>抽象化のコストがコードを重複させるコストを上回らない限り...
終了行:
「[[.NET 開発基盤部会 Wiki>http://dotnetdevelopmentinfras...
-[[戻る>なんとか原則]]
*目次 [#afeb9d1d]
#contents
*概要 [#ec85b2a4]
定義を忘れるためメモ。
*対象 [#m1f0cf4b]
様々な参考情報を参考にすると、恐らく、~
[[前者(コードを対象としているという主張)>#i6c06441]]が...
**コードを対象としているという主張 [#i6c06441]
単に「コードを重複させない」という原則ではなく、
-DBスキーマ、
-テスト、
-ビルドシステム、
-ドキュメント
なども対象になっており、
「ソフトウェア開発全体において情報を重複させない」
という原則。
**コードを対象としていないという主張 [#n6367ffb]
***[[OAOO(Once And Only Once)]]原則 [#q6d9bd61]
転じて、プログラムコード中で同じ(ような)動作をするコード...
一度書いたものを再利用するようにすべきとする意味で用いら...
こちらは本来は“[[OAOO(Once And Only Once)]]原則と呼ばれる...
***クラス、オブジェクトに対する適用 [#we38c88a]
-DRY はオブジェクト・インスタンス(データ)に対して適用さ...
-OAOO はクラス(コード)に対して適用される。
*用例 [#w3e98c70]
2つのコンテキストがある。
-業務系などライフサイクルが長いケースでは前者が重視されて...
-Web、ゲームなどライフサイクルが短いケースでは後者が重視...
**ポジティブなコンテキスト。 [#d6b5475e]
共通化などを行ったDry。
-大規模なSI案件では、~
チーム開発でも疎結合なDryの状態を維持するため、~
標準化・共通化などは半ば常識的に行われる。
>密結合なDryの状態で開発されていたら、大規模化して~
長期の維持・保守が必要になった場合に、対応できなくなる。
-[[Open棟梁>http://opentouryo.osscons.jp/]]導入案件でも、...
標準化・共通化のレイヤは、追加されたUIコントロールなどで...
**ネガティブなコンテキスト。 [#y14f8197]
(車輪の再開発はしない的な)素描Dry。
-観測範囲で、Web、ゲームやフリーランス界隈でも、Dryが尊ば...
-しかし、下記のように、「[[Dryで書いたものが負債になって...
ライフサイクルが短く、スクラップ・アンド・ビルドなプロジ...
--≒ モジュール強度が強く、結合度が弱くなる境界で分割され...
--≒ デファクトなフレームワークの生のAPIを触りたい為、レイ...
---フレームワークの生のAPIを触りたい。
---低品質な≒オレオレ的なレイヤを構築したくない(&触りた...
※ なんとなく、時間を掛けて適切な設計が出来無い案件でDryが...
*疑問 [#o98f456a]
**モジュールの凝集度・結合度との関連 [#k94eeee3]
ありそう。
-モジュールとしてまとめられたときに困るのは、~
凝集度が低く、結合度が高くて、自由度が制限されること。
-モジュール化するべきか、しないべきか、については慎重に考...
**スタックしなくてもDryにできるか? [#g47ab134]
基本スタックしないとダメそう(素描DryはDryじゃないダロ的...
-しかし、凝集度・結合度に問題がある下位スタックだと逆効果。
-こういうこともあって、[[デメリットについての言及>#odf5da...
*参考 [#had64951]
-Don't repeat yourself - Wikipedia~
https://ja.wikipedia.org/wiki/Don%27t_repeat_yourself
-DRY原則(Don't Repeat Yourself)とは - IT用語辞典~
http://e-words.jp/w/DRY%E5%8E%9F%E5%89%87.html
-DRY原則 | プログラマが知るべき97のこと~
https://xn--97-273ae6a4irb6e2hsoiozc2g4b8082p.com/%E3%82%...
-プリンシプルオブプログラミングを読んだ • nemupm~
https://nemupm.com/blog/2018/02/12/principles-of-programm...
**デメリットについての言及 [#odf5da81]
-@mizchiさんのツイート:
--https://twitter.com/mizchi/status/959297746908856320
>DRY、よかれと思って書かれたものが負債になってることのほ...
--https://twitter.com/mizchi/status/1078243362640093185
>本当に共通化できるモジュールを発見するのは、~
技術的な分解点とドメイン理解の双方がないと正しく行うこと...
--@mizchiさんの「DRY」に対する言及コレクション。~
https://twitter.com/search?l=&q=Dry%20from%3Amizchi&src=t...
-あなたはDRY原則を誤認している? - Qiita~
https://qiita.com/yatmsu/items/b4a84c4ae78fd67a364c
--DRYは素晴らしい考えですが、やり過ぎると密結合を生んでし...
--ソフトウェア開発原則は他にも多数存在するわけで、それぞ...
-DRY原則の利用: コードの重複と密結合の間~
https://www.infoq.com/jp/news/2012/05/DRY-code-duplicatio...
--DRYは重複とそれに伴うメンテナンスの問題を軽減するものだ...
--教訓:ソフトウェア開発原則は、ほかの原則やパターン、プ...
-DRYと不当な抽象化によるコストについて | POSTD~
https://postd.cc/on-dry-and-the-cost-of-wrongful-abstract...
>抽象化のコストがコードを重複させるコストを上回らない限り...
ページ名: