Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Netteの歴史

Netteの起源は2004年に遡ります。その作者であるDavid Grudlが、純粋なPHPではもはやアプリケーションを作成するには不十分になったため、適切なフレームワークを探し始めたときです。当時利用可能だったソリューションのどれも彼には合わず、彼は後にNetteと名付けられる新しいフレームワークの特徴を徐々に描き始めました。

当時、Symfony、Laravel、あるいはRuby on Railsのような現代的なフレームワークはまだ存在しませんでした。Javaの世界では、JSF(JavaServer Faces)フレームワークが標準であり、競合する.NETではASP.NET Webformsが標準でした。どちらも再利用可能なUIコンポーネントを使用してページを構築することを可能にしました。彼らの抽象化の方法と、セッションやいわゆるポストバックを使用してステートレスなHTTPプロトコル上にステートフル性を構築しようとする試みは、Davidによって誤っており、根本的に機能しないと考えられました。それらはユーザーと検索エンジンの両方に多くの困難を引き起こしました。例えば、リンクを保存した場合、後でその下に異なるコンテンツが見つかって驚くことがありました。

再利用可能なUIコンポーネントからページを構成するという可能性自体がDavidを魅了しました。彼は当時デスクトップアプリケーションを作成するための人気ツールだったDelphiからそれをよく知っていました。彼はDelphi用のオープンソースコンポーネントのマーケットプレイスが好きでした。したがって、彼は、逆にステートレスなHTTPと完全に調和して機能するコンポーネントフレームワークを作成する方法という問題を解決しようとしました。彼は、ユーザー、SEO、開発者にとってフレンドリーなコンセプトを探していました。そして、Netteが生まれ始めました。

Netteという名前は、作者がバスルームでGilletteシェービングジェルの容器がlletteだけが見えるように回転しているのを見たときに偶然生まれました。

何千時間もの研究、思考、書き直しが続きました。ブルノのどこかの村にある埃っぽいガレージで、将来のフレームワークの最初の輪郭が形成されました。アーキテクチャの基礎はMVCパターンとなり、これは当時忘れ去られたPHPフレームワークMojaviで使用され、後にRuby on Railsを巡る誇大宣伝のおかげで普及しました。インスピレーションの源の1つは、Honza Tichýの決して公開されなかったフレームワークphpBaseでさえありました。

作者のブログで、来るべきNetteに関する記事が出始めました。それがベイパーウェアであると冗談が言われました。しかし、2007年10月、プラハで開催されたPHPセミナーカンファレンスで、DavidはNetteを公に発表しました。ちなみに、このカンファレンスは1年後にWebExpoに発展し、後にヨーロッパ最大のITカンファレンスの1つとなりました。当時すでに、Netteは前述のコンポーネントモデル、双方向ルーター、プレゼンター間の特定のリンク方法など、多くの独自のコンセプトを誇っていました。フォーム、解決済みの認証、キャッシングなどがありました。Netteのすべては、今日まで元のコンセプトで使用されています。

Netteでは、controllerという用語の代わりにpresenterが使用されます。コード内にconで始まる単語が多すぎたためです(controller、front controller、control、config、container、…)

2007年末、David Grudlはコードも公開し、Netteバージョン0.7が日の目を見ました。フレームワークはすぐに大きな注目を集めました。その周りには熱心なプログラマのコミュニティが形成され、毎月Posobotaイベントで会合し始めました。コミュニティには、優れたツールPHPStanの作者であるOndřej Mirtesなど、今日の多くの著名人がいました。Netteの開発は急速に進み、次の2年間でバージョン0.8と0.9がリリースされ、フレームワークのほぼすべての現在の部分の基礎が築かれました。14年前にRuby on Rails用のHotwireやSymfony UX Turboを先取りしたAJAXスニペットを含みます。

しかし、当時のNetteには1つの重要なものが欠けていました。依存性注入コンテナ(DIC)です。Netteはいわゆるサービスロケータを使用しており、意図はまさに依存性注入に移行することでした。しかし、そのようなものをどのように設計するのでしょうか?当時DIの経験がなかったDavid Grudlは、約半年間DIを使用していたVašek Purchartと昼食をとりました。彼らは一緒にトピックについて議論し、DavidはNette DIの開発を開始しました。これは、アプリケーションの設計方法に関する考え方を完全に変えたライブラリです。DIコンテナは、フレームワークの最も成功した部分の1つになりました。そして後に、Neon形式とSchemaライブラリという2つのスピンオフを生み出しました。

依存性注入への移行にはかなりの時間がかかり、Netteの新しいバージョンを数年待つ必要がありました。そのため、ついにリリースされたとき、バージョン番号は直接2でした。したがって、Netteバージョン1は存在しません。

2012年、Netteはバージョン2.0で現代史を開始しました。また、Nette Databaseももたらしました。これには、今日Explorerと呼ばれる、データベースを扱うための非常に便利なツールが含まれていました。このライブラリは元々、David Grudlの隣人であり、人気ツールAdminerの作者であるJakub Vránaによってプログラムされました。その後、Jan Škrášekが3年間そのさらなる開発を担当しました。

2014年、Nette 2.1がリリースされ、すぐにNette 2.2が続きました。どうしてそんなことが可能だったのでしょうか?バージョン2.2はバージョン2.1と同じでしたが、20の個別のパッケージに分割されていました。PHPの世界ではComposerツールが定着し、ライブラリ作成の考え方を変えました。したがって、Netteはモノリスであることをやめ、より小さく独立した部分に分解されました。それぞれが独自のリポジトリ、課題追跡システム、独自の開発ペースとバージョニングを持っています。したがって、Netteでは、モノリシックフレームワークで一般的な、パッケージにまったく変更がないにもかかわらず新しいバージョンがリリースされるという不条理は発生しません。Gitリポジトリ自体の分割には、数週間の準備と数百時間のマシン時間が必要でした。

Netteはまた、Sitepoint誌が主催する最高のPHPフレームワークに関する世界的なアンケートで、驚くべき3位にランクインしました。