「[[.NET 開発基盤部会 Wiki>http://dotnetdevelopmentinfrastructure.osscons.jp]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。
-[[戻る>技術]]
*目次 [#z496696f]
#contents
*概要 [#lfc90bf2]
-定義を明確にするためメモ。
-現時点で明確な定義は無いが、
--案件レベルで作成した、
--質の低い独自実装の
>フレームワーク全般を指す用語と思われる。
-自作フレームワークとも呼ばれる。
*詳細 [#j0892686]
**オレオレ・フレームワークの考察 [#q031a609]
-「オレオレ・フレームワーク」という用語は、
--厳密には、フレームワークの要件を満たしていないライブラリやテンプレートにも適用される。
--基本的に、disりのコンテキストで利用されるので、プロダクトに何らかの問題があることを示している。
-基本的にシェアが取れているプロダクトに対して、~
「オレオレ・フレームワーク」と言う言葉は使用しないため、~
「オレオレ・フレームワーク」であるか?否か?の必要条件として~
「シェアが取れていない」と言う条件がありそう(ただし十分条件ではない)。
-「シェアが取れていない」プロダクトには以下の様なプロダクトがある。
--[[車輪の再開発>#m97ae984]]
--[[低品質なプロダクト>#s57c0713]]
--[[ニッチ プロダクト>#m5b73cf7]]
***車輪の再開発 [#m97ae984]
純粋に既にシェアを取っているプロダクトの「車輪の再開発」をするようなケースは、~
ユーザにとってのメリットも少なく、「オレオレ・フレームワーク」とdisられることになる。
-帰ってきた!平成最後のオレオレフレームワークの作り方 - Speaker Deck~
https://speakerdeck.com/uzulla/gui-tutekita-ping-cheng-zui-hou-falseoreorehuremuwakufalsezuo-rifang
***低品質なプロダクト [#s57c0713]
-「シェアが取れていない」、「オレオレ・フレームワーク」は、~
品質に問題があることが多く、「オレオレ・フレームワーク」とdisられる。
--特にUX等の品質が低くてみんなをイライラさせるプロダクト。
--殻に閉じ篭って品質が上がらないプロダクト(将来性が無いので習得したくない)。
-フリーランスなどからしてみると
--習得したい知識では無いし、
--足枷のように見える。
***ニッチ プロダクト [#m5b73cf7]
-ニッチとは「隙間」を意味する「特定のニーズ」や「小規模の市場」のこと。
-「特定のニーズ」や「小規模の市場」なので、そもそもシェアが取れない。
**フレームワークが開発される経緯 [#kbcd5f26]
***車輪の再開発 [#bb12a613]
-[[ランタイム・フレームワーク>https://opentouryo.osscons.jp/index.php?%E3%83%A9%E3%83%B3%E3%82%BF%E3%82%A4%E3%83%A0%E3%83%BB%E3%83%95%E3%83%AC%E3%83%BC%E3%83%A0%E3%83%AF%E3%83%BC%E3%82%AF]]と同一のレイヤを開発するケース
--.NET系は純正品の完成度が高く、コレの開発をヤルことは殆どなかったが、
--黎明期のJavaでは、フレームワークが乱立した時代があった模様。
-シェアとの関係
--シェアを取るつもりだったが、結果的にシェアをとれなかったプロダクト
--そもそも、シェアを取るつもりでやっていないプロダクト
>※ 前者は単なる残念。~
後者は単なる趣味なら問題ないけど、チーム開発になるとキツイ。
***低品質なプロダクト [#g67975c5]
-殻に閉じ篭って品質が上がらないクローズドなプロダクト
-密結合な [[Dry(Don't repeat yourself)]] のために、~
案件レベルで追加するレイヤは、きっとオレオレ・フレームワークになる。
***ニッチ プロダクト [#p0f21d45]
-自分のドメインの特定のニーズに合わせて
--既存品の上位スタックを追加開発するケース
--上位スタックを独自スタックで置換するケース
>等が考えられる。
-[[開発基盤>https://opentouryo.osscons.jp/index.php?%E9%96%8B%E7%99%BA%E5%9F%BA%E7%9B%A4%E3%81%A8%E3%81%AF#tc6c363a]]の開発などはこのケースに該当する。
**オレオレ・フレームワークの十分条件 [#a7af3920]
「シェアが取れていない」に、以下の2つの条件を組み合わせると、十分条件となりそう。
***車輪の再開発 [#qb69e021]
結果として、シェアの取れていない(若しくは初めからシェアを取るつもりのない)、車輪の再開発プロダクト
***低品質なプロダクト [#t5982fa2]
結果として、品質が上がらず、シェアの取れていない(若しくは初めからシェアを取るつもりのない)任意のプロダクト
**ニッチ プロダクトには品質向上が必要 [#z24adb3f]
-ニッチ プロダクトについては、シェアを取れていないが、~
→ オレオレ・フレームワークの必要条件とはならなそう。
-自分のドメインの特定のニーズには必要になる。~
例えば...
--チーム開発には必要なレイヤになる。
--大規模化した時に、維持・保守を可能にする。
-以下のトレードオフのバランスをとることが重要になる。
--何もせず、特定のニーズに問題を抱えたものにする。
--設備投資を行い
---特定のニーズを満たす。
---構築した設備の維持・保守の課題の発生と解決。
&color(red){「オレオレ・フレームワーク」という用語にビビって何もしないエンジニア、};~
&color(red){生産性低いから、先ずは最低限、テンプレートぐらいは作って公開するとイイと思う。};
*参考 [#w53c7148]
**OSSコンソーシアム [#m238697d]
***開発基盤部会 Blog [#xe077b41]
-結局オレオレ・フレームワークってどんなモノ?定義を明確にしてみた。~
https://www.osscons.jp/jows0y6mi-537/
-タイムライン上で「自作フレームワーク」的な文字列を観測した件。~
https://www.osscons.jp/jozpkgczv-537/
-使いやすいフレームワークって、どうやって開発するの?~
https://www.osscons.jp/jonpyeir0-537/
-ランタイム・フレームワークについて少々、思ったことを書く。~
https://www.osscons.jp/jodumpwiu-537/
-第三のオレオレ産地は、パッケージ、SIテンプレート(基盤実装)かも。~
https://www.osscons.jp/joz3vkccu-537/
-オレオレ・フレームワーク ならぬ オレオレ・プラットフォーム的な。~
https://www.osscons.jp/jopt8sb31-537/
-オレがフレームワークと言うかエンジニアリングがオレ(的な極地~
https://www.osscons.jp/jowangap0-537/