麺から食材まで、または両親に従う!

親は常に子供たちに教えます(そのために彼らは親です)。 子どもたちは、親のアドバイスは愚かで不必要だと常に考えています。そうして初めて、すでに自分の親がいるので、親が実際に正しいことを理解します。



たとえば、私の母はいつも3つのことを私に言った:



1.夜に食べ過ぎないでください。

2.ギャンブルをしないでください。

3. PHPフレームワークを作成しないでください


そして今、私は彼女にむやみに従わなかったことを理解しています。 それから...どれくらい前だったか...そんなに昔ではないが、ほんの一年半前。



元学生の若いチームがWebサービスの開発を決定しました。 Web 2.0、Ajax、リッチクライアント、マッシュアップ、タグクラウド-これらの言葉は私の言語を離れることはなく、周りの人々は不快な呪いと思い、しばしば私を打ち負かしました。 そのため、Googleの敗者を自分たちの居場所として最終的に示す新しいスーパースタートアップの開発をすぐに開始することが決定されました。 すぐに問題が発生しました:私たちの「不滅」を何に書くべきか? 言語に関しては、それを疑うことさえしませんでした-もちろん、PHP。 なんで? チーム全体がPHPを知っていたため、結局のところ、 Joel自身が、あなたが知っている言語で開発する必要があると書いたからです。 2番目の質問は次のとおりでした 選択肢は少なかった。



1.何も考えずに純粋なPHPで記述します(つまり、「ヌードル」で記述します)。

2.サードパーティのフレームワークを使用します。

3.独自のエンジンを作成します。


最初の提案はすぐに拒否されました。 私たちはOOP、パターン、その他のがらくたの支持者です。私たちはコードの上ではなく、上司の耳だけで麺を見ることに慣れています。 私たちは非常に一生懸命努力しました(そのような時がありました)が、リクエストに対応するサードパーティのフレームワークは見つかりませんでした。 したがって、まず最初に、SVNでフレームワークブランチを作成し、その名前とアーキテクチャを考え出すために座りました。 多くの論争、宣誓、戦いの後、プロジェクトにAdeptという名前を付けることが決定されました。

熟達した

名前はすぐに承認されました。他の提案とは異なり、チームメンバーは誰も名前の呪いを思い付くことができなかったからです。



アーキテクチャも簡単ではありませんでした。 まず、踏みつけられたMVCトレイルに沿って進みました。 しかし、すぐに、クラシックMVCアーキテクチャでは開発が容易にならないことに気付きました。 プログラマは、単調で退屈なルーチン操作を多数実行し続けます。 そして最も厄介なのは、コードの再利用性が非常に小さいことでした。 つまり、たとえば、あるプロジェクトのツリーを作成し、それを別のプロジェクトで使用するには、HTMLをコピーして貼り付け、手で多くの小さな修正を行う必要があります。 さらに、Htmlは複雑なUIコンポーネントのプログラミング(特に、これはテキスト用のマークアップ言語です)、したがって、メニュー、タブなどの実装には特に適していません。 プログラマーの多くの時間と労力がかかります。



インターフェースパーツの開発をデスクトップアプリケーションと同じくらい簡単にすることにしました。 従来のMVCは廃止し、コンポーネントアーキテクチャに置き換えました。 つまり、デスクトップアプリケーションの場合と同様に、標準UIコンポーネント(ボタン、チェックボックス、ラジオボタン、テキストフィールド、テーブル)のセットを作成し、これらのコンポーネントからインターフェイスを作成することにしました。



また、イベント/リスナーモデルを実装することも決定しました。 UIコンポーネントにイベントを生成させる(たとえば、ボタンをクリックする、リストから特定の項目を選択するなど)ことにより、プログラマーはイベントデータを処理するためのリスナーを登録できます。 つまり、プログラマが「どうやってカレンダーを作ることができるのか」ということさえ考えずに、ビジネスロジック(彼らが本当にやりたいこと)だけをコーディングするようにそのようなフレームワークを作ることです。 私たちの頭にそのような仕事を見つけたので、私たちは働き始めました。 何かが簡単に出てきましたが、コンポーネントを実装するために、悪魔に魂を売ることが必要な場合がありました(残念ながら、悪魔はIEに標準従うことを強制できませんでした)。



そして最近では、「他の誰かが興味を持っているかもしれませんか? たぶん、あなたは他の人にそれを見せるべきですか?」 しかし、これはかなり難しいタスクであることが判明しました(開発よりも難しい)。 ドキュメントの作成、コードのクリーンアップ、オブジェクトの階層の「なめ」、サポートサイトの作成などが必要です。 そして、疑問が生じます:「それは必要ですか? phpコミュニティはそのようなフレームワークを必要としますか?」( ここまたはここの議論を見て、反対について考え始めます)。 家で答えを見つけられないので、私たちはあなたに尋ねることに決めました、habralyudi。 さて、あなたは何と言いますか?



おそらくリンクを添付します。

http://adept-project.com



All Articles