diff --git a/best_practices/introduction.rst b/best_practices/introduction.rst new file mode 100644 index 0000000..113f13d --- /dev/null +++ b/best_practices/introduction.rst @@ -0,0 +1,64 @@ +.. index:: + single: Symfony Framework Best Practices + +Symfony のベストプラクティス +============================= + +Symfony は *すごく* 柔軟なフレームワークとして知られており、小規模なサイトから何十億ものコネクションを処理するエンタープライズなアプリケーションの開発で利用されたり、*他の* フレームワークの基盤としても利用されています。2011年7月にリリースされてから、コミュニティは Symfony で何ができて、どうするのが *一番良い方法* かについて多くのことを学んでいます。 + +これらのコミュニティののリソース、たとえばブログの記事やプレゼンテーションなどが、Symfony のアプリケーション開発のための非公式な助言を生み出してきました。 +残念ながら、これらの多くの助言は web アプリケーションにとって必要とされていません。 +大抵、これらの助言は不必要に物事をより複雑にし、本来の Symfony の哲学にあっていません。 + +このガイドについて +------------------ + +このガイドは **フルスタックフレームワークである Symfony で web アプリケーションを開発するためのベストプラクティス** についてまとめることでこの状況を正すことが目的です。Symfony の最初の設計者である `Fabien Potencier`_ によって思い描かれたフレームワークの哲学に合うベストプラクティスがあります。 + +.. ノート:: + + **ベストプラクティス** は *"ほぼ申し分のない成果物を開発する方法として知られている明確な順序"* を意味する名詞です。そしてまさにこのガイドが提供しようしているそのものです。もしあなたがすべての助言に同意できないとしても、あなたのすばらしいアプリケーションをより少ない複雑さで構築するために役立つと思います。 + +このガイドは **次のような場合に特に適しています** : + +* フルスタックの Symfony でウェブサイトや web アプリケーションの開発 + +また次のような、**Symfony を拡張しあなたの特定の用途にあわせる** ときの、**最初のポイント** としてこのガイドは調度良いかもしれません: + +* Symfony コニュニティに公開し共有されているバンドル; +* 自身の標準を構築した上級開発者やチーム; +* 高度なカスタマイズが必要とさえる複雑なアプリケーション; +* 社内限定で共有されているバンドル; + +古い習慣が容易に滅びないということをしっていますし、あなたはベストプラクティスにショックを受けるかもしれません。しかしベストプラクティスに従えばより高速にアプリケーションを開発することができます。しかも複雑さは少なくなり場合によってはより高品質になります。改善を繰り返すという移動する目標でもあります。 + +これらは **任意の助言** であるということを覚えておいてください。あなたやあなたのチームにこれらの助言は合ったり合わなかったりするでしょう。もしあなた自身のベストプラクティスと方法論を使い続けたいのであればもちろんそうすることができます。Symfony はあなたのやりたいことに合わせるには十分柔軟です。変える必要は全くありません。 + +誰のための本か (ヒント: チュートリアルではありません) +------------------------------------------------------- + +上級者であれ初級者であれ、すべてのSymfony 開発者がこのガイドを読むことができます。しかし、このガイドはチュートリアルではありません。そのため、Symfony の基礎知識が必要になるでしょう。全くの初心者であれば、`The Quick Tour`_ チュートリアルから始めてみてください。 + +故意にこのガイドは短くしています。あなたが莫大な Symfony のドキュメントで見つけることができるようなこと、たとえば、dependency injection や フロントコントローラーなどのようなことにつて繰り返し説明したくないからです。あなたが知っていることについてどうすべきかということにだけもっぱら説明していきます。 + +アプリケーション +------------------ + +このガイドに加えて、あなたが思うようなベストプラクティスで開発されたサンプルアプリケーションを見つけることができるでしょう。**そのアプリケーションはシンプルなブログエンジンです**。なぜシンプルなブログエンジンかというと、このアプリケーションは難しい詳細に覆われることなく Symfony のコンセプトと特徴に集中することができるからです。 + +このガイドで順番にアプリケーションを開発するのではなく、章を通して選択されたコードのスニペットを見つけるでしょう。アプリケーションとインストール方法の詳細については最終章を参照してください。 + +既存のアプリケーションをアップデートしない +----------------------------------------------- + +このハンドブックを読んだあとに、既存の Symfony のアプリケーションのリファクタリングについて考えるかもしれません。私達の助言は明確です: **ベストプラクティスに合致させるために既存アプリケーションはリファクタリングすべきでない**。この理由は様々です。: + +* 既存アプリケーションは間違っていません、それらは別のガイダンスに従っているだけです; +* 完全なコードベースのリファクタリングはアプリケーションがエラーを起こす傾向がある; +* エンドユーザーに本当に価値のある昨日追加やテストの改善に専念し時間を費やすほうが良い; + +.. _`Fabien Potencier`: https://connect.sensiolabs.com/profile/fabpot +.. _`The Quick Tour`: http://symfony.com/doc/current/quick_tour/the_big_picture.html +.. _`The Official Symfony Book`: http://symfony.com/doc/current/book/index.html +.. _`The Symfony Cookbook`: http://symfony.com/doc/current/cookbook/index.html +.. _`github.com/.../...`: http://github.com/.../...