Quora での質問、Google グループ、ニュースレター、雑誌など、さまざまな PHP 関連のブログを閲覧していると、スキルの階層によく気づきます。質問は、「MySQL データベースに接続するにはどうすればよいですか?」または「新しいサーバーを導入せずに、1 時間あたり 10,000 件を超えるメールを送信できるように電子メール システムを拡張するにはどうすればよいですか?」に似ています。
私は、PHP のコンピテンシーレベルを、初心者、中級者、エキスパート、エリートの 4 つのレベル (どのプログラミング言語や専攻にも当てはまります) に分けています。レベル
専門家とは、多くのプロジェクトを経験し、豊富な経験を持っている人のことです。彼らは多くの商用アプリケーションを開発してきましたが、そのためにフレームワークを完全に使用しているわけではありません。彼らは、PHP を使用してさまざまなデータベースを効率的に開発できるだけでなく、会議を通じて問題の解決策について話し合うことができます。彼らは設計パターンに精通しており、プロジェクトのエンジニアリング図面をコードに簡単に実装できます。彼らは手続き型プログラミングから距離を置きます。
エリートプログラマーとは、専門的なスキルを磨くために10,000時間以上働いた人のことです。彼らは、ニーズに応じて PHP 拡張機能を作成でき、ソース コード ファイルを見るだけでバグを見つけることができ、コード レイアウトをよく理解できます。彼らは最も複雑なプロジェクトのみに取り組み、問題に対する代替的で創造的な解決策を見つけることができます。彼らはプログラミング言語に関する人気の書籍をいくつか執筆し、数十回の講義を行っており、独自のバージョンの PHP 言語や非常に成功したフレームワーク、あるいはその両方を持っている場合もあります。
では、中級者には誰が属するのでしょうか?
ミッシングリンク
次のリストは、中級者になるために通過する必要がある PHP 学習の過程を示しています。
スパゲッティコードを捨てましょう
私の提案は、手続き型コードを完全に放棄することです。可能な限りオブジェクト指向スタイルでプログラムします。クラスを作成し、ロジックをカプセル化し、現実世界の用語の使用を検討します。プロシージャル コードのパフォーマンス上の利点は、適切な OOP コードがもたらす再利用性の利点や、将来の開発者がプロジェクトの作業を継続できる容易さに比べれば、見劣りします。この観点に対する反論は、「でも、WordPress は手続き型だ!」というものです。正直に言うと、これは少し厳しく聞こえるかもしれませんが、Instagram を持っていれば写真家になれるのと同じように、「WordPress 開発者」は実際には PHP 開発者ではありません。これを WP が役に立たないという意味に受け取らないでください。ブログ、単純なサイト、および 1 日の小さなプロジェクトの開発にあまり時間をかけないと予想される場合、WP での開発は素晴らしい結果をもたらします。急いでいる人やスキルがあまりない人には最適ですが、WP をマスターしてもプロの PHP 開発者になれるわけではありません。スパゲッティ コーディングが使用され、不適切な設計原則を教えることになります。
小さなことから始めましょう。現実世界の概念を考えて、それを OOP コードで表現してみます。いくつかの基本的なチュートリアルを実行して、ゆっくりと OOP に習熟してください。適切なフレームワークや「モデル」、「ビュー」、「コントローラー」などの混乱を招く用語に移行する前に、クラス全般を理解するまで OOP でコードを書くことに固執してください。これらの用語はすべて雲の中にあり、しっかりした基盤がありません。 OOPで。
既存プロジェクトの分析
標準化された注釈、優れた構造、継続的な開発を備えたプロジェクトを探してください。 2008 年より前に更新されたプロジェクトは、PHP 5.5 を使い始める場合にはそれほど優れたものではありません。そうしないと、すでに過密な分野で目立つことができる PHP の最新かつ最高の機能を見逃してしまう可能性があります。
自分で環境を構築できるというのはとても良い能力です。独自の環境を構築すると、状況に応じて微調整ができるだけでなく、ソース コードから拡張機能を構築することに慣れることもできます。
Windows での開発を放棄する - 主要なデスクトップ環境が Windows の場合は、仮想化ソフトウェアをインストールし、Linux 仮想マシンを実行します - Windows では大文字と小文字が区別されず、行末などがほとんどのサーバーと一致しません 環境が一致しません、Windows で開発しても多くのトラブルが発生するだけなので、最終的にプロジェクトを実行するシステムで開発する方が良いでしょう。
仮想マシンは実験の実施にも役立ちます。何か問題が発生した場合は、最初からやり直すかロールバックできます。混乱を心配することなく、好きなだけ低価格で試すことができます。ツールを使いこなすことは重要ですが、適切に動作するプラットフォームを用意することも重要です。
自分で実験することで、Apache や Nginx、Appserver など、さまざまなサーバーに慣れることもできます。
コードを記述するときは、十分なドキュメント コメント、適切なインデント、適切な構造があることを確認してください。クラス、プロジェクト、またはライブラリを構築するときは、よく知られているドキュメント ツール (PHPDocumentor、ApiGen) を使用してドキュメントのコメントを抽出し、それらを改善します。
優れた IDE も非常に価値があります。クロスプラットフォーム エディターを使用すると、いつでも新しい開発環境をセットアップでき、キーボード ショートカットやテーマの変更に時間を費やすことなく、コードの作成に集中できます。いつでも新規インストール用に構成ファイルをインポートできるように、IDE の構成ファイルを Google Cloud Services などの場所にバックアップしてください。優れた IDE は PHPStorm です。それを買う余裕がない場合、または無料ライセンスを必要とするオープンソース プロジェクトがない場合は、Netbeans が良い選択であり、どちらもクロスプラットフォームです。
ベスト プラクティスを早期に実装すると、コードの一貫性が維持され、他の人がコードをよりスムーズに読むことができます。自分のスタイルを見つけて、それを貫くことで、自分自身だけでなく他の人も助けることができます。 PSR 標準 (PSR-0、PSR-1、PSR-2、PSR-3) に従うようにしてください。これらの標準には理由があります。私たちのほとんどは、誰もがコードを再利用可能で読みやすいものにするこれらの標準を使用し、愛用しています。
初心者向けの継続的に更新される優れたリソースは、正しい方法での PHP です。これを学ぶと、最新のプラクティス、基本的な OOP、セキュリティ、デプロイメント、コーディング標準など、これまでに述べた内容に慣れることができます。
長い間、PHP はほとんどのフレームワークで使用されている言語でした (最近では JavaScript が最もよく使用されています)。これが私たちのコミュニティを反映しているのか、それとも言語の人気に一貫性がないのかはわかりませんが、特に初めて始める場合、フレームワークの選択が困難な作業になる可能性があるという事実は変わりません。
ほとんどのフレームワークを試した結果、Phalcon フレームワークを心からお勧めできます。その理由は、そのまともな堅牢性と品質、そして C で書かれ、PHP の拡張機能としてインストールされているという事実です (したがって、現在の Any フレームワークよりもはるかに優れているはずです)。もっと早く)。ただし、さまざまなフレームワークを自分で試してみる価値はあります。
さまざまなフレームワークを試してみると、同じ問題を新しい方法で解決できることがわかります。各フレームワークには、好きな長所と嫌いな短所がありますが、より重要なのは、他の人 (特にフレームワークの開発者) の考え方について学ぶことです。新しい使用法とアプローチがわかります。ベスト プラクティスは、できるだけ多くのフレームワークを使用して同じ実験プロジェクトをリファクタリングすることです。これは、特定のフレームワークの有効性、つまり、それを使用した開発の速度とそのパフォーマンスを効果的に測定するのに役立ちます。
他の人のヒントやコツを過小評価しないでください。できるだけたくさん読んでください。読み続ければ、思っているほど時間はかかりません。優れたブログを見つけてフォローし、サイトのガイドを読み、StackOverflow の質問と回答を閲覧し、SitePoint フォーラムにアクセスし、ニュースレターを購読し、Google+ で優れたリソースをフォローします。基本的な PHP チュートリアル本は出版された時点では古くなっているため、避けてください。代わりに、最新のコードが含まれるオンラインで見つけられるスニペットやガイドに焦点を当ててください。すでに研究したトピックに出会った場合でも、それについて読んでみてください。同じテーマに関する他の人の視点を読むことで、何か新しい発見があることがよくあります。
やるべきことは必ずある。 「取り組むプロジェクトがない」とか、さらに悪いことに「退屈だ」などとは決して言わないでください。進行中のプロジェクトがない場合は、作成してください。毎日使用しているツールの機能が不完全なためにイライラしていませんか?もっと良いものを自分で作ってください!新製品のアイデアはありませんか?次に、既存のコピーを作成します。練習できるように、基本的な FaceBook を再構築したり、すでに知っているものを再構築したりしてみてください。
最も重要なことは決して止まらないことです。1 時間を大切にしないと 10,000 時間も蓄積できません。良い仕事を続けて、興味と関心を持ち続けてください。簡単なアドレス帳アプリケーションを作成します。次に、別のフレームを使用して再構築します。そして、別のデータベースを使用してください (例: MariaDB の代わりに Mongo)。忙しくしてください!
誰かと一緒にいると勉強が楽になります。あなたの情熱を分かち合うパートナーを見つけてください。おそらくあなたは、独自の興味を共有するパートナーがすでにいる幸運な数少ない人の一人かもしれません。もしかしたら、学校や大学に、一緒に仕事を始めて一緒に頑張りたいという仲間がいるかもしれません。メンターを見つけて専門家から指導を受けることもできます。
パートナーの力を過小評価しないでください。もしあなたが 3 人組なら、必ず教えてくれる人がいるはずです!
これらすべての項目に焦点を当て、可能な限りそれらをマスターし、これが自分が望んでいることであると認識したら、それを続けてください。あなたは上級 PHP 開発者への道を進んでいます。自分の原則を維持し、決して諦めず(たとえ周りの人が諦めたとしても)練習を続けてください。
有用なリソースをお持ちで、中級開発者の障壁をどのように乗り越えた(または現在乗り越えている)かを私たちと共有したい場合は、以下にコメントを残してお知らせください。
原文リンク: SitePoint 翻訳: Bole Online - rokety
PHP は敷居が低いですが、その上限に達した人はどれくらいいるでしょうか?
PHP の基本スキルを学ぶことは非常に重要です。 データ構造について学習した経験があることが最善です。
1歳か2歳の初心者向け。
smarty+pear+adodb+xml+ajax+jquery (プロトタイプ)を2年以内に完全にマスターする必要があります
その後、discuz、zendcartなどの国内外のオープンソースコードの分析に熟練することをお勧めします
ツールは必須ですzend スタジオの開発に熟練していること。
データベースは mysql と sqlserver に精通している必要があります
オペレーティング システムは liunx をある程度理解している必要があります。そして環境を構成することができます。
Apache の管理者マニュアルも購入して、よく読んでください。
上記は2年以内に習得しなければならない内容です。この時点で基本的には始められます。 3 年目では、ユニットに行って何かをするのは難しくありません。.NET や JAVA の開発経験がない場合は、それを補ってください。 .NET と JAVA の考え方は PHP よりもはるかに成熟しているため、SQLSERVER を学習することは、mysql の使用レベルを向上させることにもなります。データベースは、単にテーブルを作成してクエリを実行するだけではありません。
そこで、建義の 3 年目には、アイデアとデータベースに関するコンテンツをさらに追加しました。ただし、最初の 2 年間は視聴しないという意味ではありません。つまり、3年目はそれ以上です。 現時点では、PHP の基本的な部分の多くはすでに理解しているため、一方的な改善ではなく、全体的な改善が必要になるからです。
現時点では、アーキテクチャの問題を考慮する必要があります。
大規模プロジェクトを展開する4年目。負荷やファイルの分散、セキュリティなどの導入上の問題が次々と発生しています。現時点では、ファイル サーバー クラスターとは何か、Web サーバー クラスターとは何か、データベース クラスターとは何かなどを理解するために懸命に努力する必要があります。では、コーディングを改善するための要件、セキュリティ要件などは何でしょうか。
php 鍵となるのは永続性です。まず基本的な文法を学び、良い習慣を身に付け、(変数を) 設定解除することを学び、オブジェクト = NULL を学びます。ランプ ワンプの設定方法を学び、開発ツール NB、zend スタジオの使い方を学びます...その後、関数百科事典 mysql オブジェクト指向プログラミング手法を読み、PHP コードを最適化する方法、SQL クエリ、smarty テンプレート エンジン、mvc フレームワークなどを最適化する方法を学びます。国内の thinkphp は非常に優れており、より軽量な中国語情報が含まれており、zend フレームワーク (非常に巨大なフレームワーク) memcached に準拠しています。 php cliのバックグラウンドサービスを使用します。 ハイエンドになりたい場合は、C を学習してください。これを使用して PHP 拡張機能を開発し、Facebook のヒップホップ PHP を学習します (PHP を C++ に変換するプロジェクトにより、PHP の速度は C で直接書かれた CGI に限りなく近づきます)。 ... 学ぶ 後で、PHP は思っているほど単純ではなく、学習に終わりがないことがわかります (PHP 5.3 が名前空間をサポートし始めた後で確認する必要があります) 夜は少し面倒でしたが、それは問題ありません。基本的には、学習したい場合は、ためらわず、他の人の言うことを信用しないでください。なぜ PHP は小規模なプロジェクトにのみ適しているのでしょうか? Tencent が新しく開発した Friends Network は、すべて PHP で書かれています。 PHP。
忘れずに採用してください