ホームページ >バックエンド開発 >PHPチュートリアル >PHP エキスパートになる: 失われたリンク
この記事は、「Becoming a PHP Professional」シリーズ 4 回のうちの 1 回目です。
Quora での質問、Google グループ、ニュースレター、雑誌など、さまざまな PHP 関連のブログを閲覧していると、スキルの階層があることによく気づきます。質問は、「MySQL データベースに接続するにはどうすればよいですか?」または「新しいサーバーを導入せずに、1 時間あたり 10,000 件を超えるメールを送信できるように電子メール システムを拡張するにはどうすればよいですか?」に似ています。
私は、PHP のコンピテンシーレベルを、初心者、中級者、エキスパート、エリートの 4 つのレベル (どのプログラミング言語や専攻にも当てはまります) に分けています。レベル
PHP初心者向けに、変数の使い方、インクルードファイル、フォーム処理などを学びます。彼らは単純な論理構造を学びます。チュートリアルの指導を受けながら、PHPでメール送信を実装したり、よく分からないままオブジェクト指向プログラミングにも触れたりしました。いくつかの WordPress CSS ファイルを変更することもできます。この知識を武器に、彼らは仕事を探し始めますが、残念ながらたいてい失敗します。
専門家とは、多くのプロジェクトを経験し、豊富な経験を持っている人のことです。彼らは多くの商用アプリケーションを開発してきましたが、そのためにフレームワークを完全に使用しているわけではありません。彼らは、PHP を使用してさまざまなデータベースを効率的に開発できるだけでなく、会議を通じて問題の解決策について話し合うことができます。彼らは設計パターンに精通しており、プロジェクトのエンジニアリング図面をコードに簡単に実装できます。彼らは手続き型プログラミングから距離を置きます。
エリートプログラマーとは、専門的なスキルを磨くために10,000時間以上働いた人のことです。彼らは、ニーズに応じて PHP 拡張機能を作成でき、ソース コード ファイルを見るだけでバグを見つけることができ、コード レイアウトをよく理解できます。彼らは最も複雑なプロジェクトのみに取り組み、問題に対する代替的で創造的な解決策を見つけることができます。彼らはプログラミング言語に関する人気の書籍をいくつか執筆し、数十回の講義を行っており、独自のバージョンの PHP 言語や非常に成功したフレームワーク、あるいはその両方を持っている場合もあります。
では、中級者には誰が属するのでしょうか?
ミッシングリンク
初心者がプロになり、プロを超えるにはどうすればよいでしょうか?基本的な知識以上のことを何も知らない人が、どうやってスキルを向上させ、間違った開発方法を放棄し、より高度な開発方法を学ぶことができるでしょうか。この質問は多くの初心者から私に寄せられました。専門家になるためには、まず中級者にならなければなりません。
次のリストは、中級者になるために通過する必要がある PHP 学習の過程を示しています。
スパゲッティコードを捨てましょう
多くの人は、クラスを使用することはオブジェクト指向のコードを書くことを意味し、関数を使用することは手続き型のコードを書くことを意味すると考えています。しかし、これは誤りです。この観点を裏付けるために、手続き型コードはクラスとオブジェクトを使用しないコードであるのに対し、OOP コードはクラスとオブジェクトを可能な限り使用するコードである、という広く普及している定義を前提としています。
私の提案は、手続き型コードを完全に放棄することです。可能な限りオブジェクト指向スタイルでプログラムします。クラスを作成し、ロジックをカプセル化し、現実世界の用語の使用を検討します。プロシージャル コードのパフォーマンス上の利点は、適切な OOP コードがもたらす再利用性の利点や、将来の開発者がプロジェクトの作業を継続できる容易さに比べれば、見劣りします。この観点に対する反論は、「でも、WordPress は手続き型だ!」というものです。正直に言うと、これは少し厳しく聞こえるかもしれませんが、Instagram を持っていれば写真家になれるのと同じように、「WordPress 開発者」は実際には PHP 開発者ではありません。これを WP が役に立たないという意味に受け取らないでください。ブログ、単純なサイト、および 1 日の小さなプロジェクトの開発にあまり時間をかけないと予想される場合、WP での開発は素晴らしい結果をもたらします。急いでいる人やスキルがあまりない人には最適ですが、WP をマスターしてもプロの PHP 開発者になれるわけではありません。スパゲッティ コーディングが使用され、不適切な設計原則を教えることになります。
小さなことから始めましょう。現実世界の概念を考えて、それを OOP コードで表現してみます。いくつかの基本的なチュートリアルを実行して、ゆっくりと OOP に習熟してください。適切なフレームワークや「モデル」、「ビュー」、「コントローラー」などの混乱を招く用語に移行する前に、クラス全般を理解するまで OOP でコードを書くことに固執してください。これらの用語はすべて雲の中にあり、しっかりした基盤がありません。 OOPで。
既存プロジェクトの分析
見つかった既存のソースコードを深く掘り下げます。たとえば、Github で PHP プロジェクトをチェックアウトし、クローンを作成し、独自のホストにデプロイして、コードを読んでみてください。すべてのファイル、すべての行を、その内容を理解するまで繰り返します。
標準化された注釈、優れた構造、継続的な開発を備えたプロジェクトを探してください。 2008 年より前に更新されたプロジェクトは、PHP 5.5 を使い始める場合にはそれほど優れたものではありません。そうしないと、すでに過密な分野で目立つことができる PHP の最新かつ最高の機能を見逃してしまう可能性があります。
独自の 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、セキュリティ、デプロイメント、コーディング標準などに慣れることができます。
さまざまなフレームワークを試して 1 つ選択してください
長い間、PHP はほとんどのフレームワークで使用されている言語でした (最近では JavaScript が最もよく使用されています)。これが私たちのコミュニティを反映しているのか、それとも言語の人気に一貫性がないのかはわかりませんが、特に初めて始める場合、フレームワークの選択が困難な作業になる可能性があるという事実は変わりません。
それらのほとんどを試した結果、Phalcon フレームワークを心からお勧めできます。その理由は、そのまともな堅牢性と品質、そして C で書かれていて PHP の拡張機能としてインストールされているという事実です (つまり、現在の Any フレームワークよりも優れているはずです)。もっと早く)。ただし、さまざまなフレームワークを自分で試してみる価値はあります。
さまざまなフレームワークを試してみると、同じ問題を新しい方法で解決できることがわかります。各フレームワークには、好きな長所と嫌いな短所がありますが、より重要なのは、他の人 (特にフレームワークの開発者) の考え方について学ぶことです。新しい使用法とアプローチがわかります。ベスト プラクティスは、できるだけ多くのフレームワークを使用して同じ実験プロジェクトをリファクタリングすることです。これは、特定のフレームワークの有効性、つまり、それを使用した開発の速度とそのパフォーマンスを効果的に測定するのに役立ちます。
他の人のヒントやコツを過小評価しないでください。できるだけたくさん読んでください。読み続ければ、思っているほど時間はかかりません。優れたブログを見つけてフォローし、サイトのガイドを読み、StackOverflow の質問と回答を閲覧し、SitePoint フォーラムにアクセスし、ニュースレターを購読し、Google+ で優れたリソースをフォローします。基本的な PHP チュートリアル本は出版された時点では古くなっているため、避けてください。代わりに、最新のコードが含まれるオンラインで見つけられるスニペットやガイドに焦点を当ててください。すでに研究したトピックに出会った場合でも、それについて読んでみてください。同じテーマに関する他の人の視点を読むことで、何か新しい発見があることがよくあります。
何もないなら何か作ってみよう
やるべきことは必ずある。 「取り組むプロジェクトがない」とか、さらに悪いことに「退屈だ」などとは決して言わないでください。進行中のプロジェクトがない場合は、作成してください。毎日使用しているツールの機能が不完全なためにイライラしていませんか?もっと良いものを自分で作ってください!新製品のアイデアはありませんか?次に、既存のコピーを作成します。基本的な FaceBook を再構築して、すでに知っているものを練習できるように再構築してみてください。
最も重要なことは決して止まらないことです。1 時間を大切にしないと 10,000 時間も蓄積できません。良い仕事を続けて、興味と関心を持ち続けてください。簡単なアドレス帳アプリケーションを作成します。次に、別のフレームを使用して再構築します。そして、別のデータベースを使用してください (例: MariaDB の代わりに Mongo)。忙しくしてください!
パートナー/メンターを探す
誰かと一緒にいると勉強が楽になります。あなたの情熱を分かち合うパートナーを見つけてください。おそらくあなたは、独自の興味を共有するパートナーがすでにいる幸運な数少ない人の一人かもしれません。もしかしたら、学校や大学に、あなたと一緒に勉強を始めて熱心に取り組んでくれる仲間がいるかもしれません。メンターを見つけて専門家から指導を受けることもできます。
パートナーの力を過小評価しないでください。もしあなたが 3 人組なら、必ず教えてくれる人がいるはずです!
概要
これらすべての項目に焦点を当て、可能な限りそれらをマスターし、これが自分が望んでいることであると認識したら、それを続けてください。あなたは上級 PHP 開発者への道を進んでいます。自分の原則を維持し、決して諦めず(たとえ周りの人が諦めたとしても)練習を続けてください。
有用なリソースをお持ちで、中級開発者の障壁をどのように乗り越えた(または現在乗り越えている)かを私たちと共有したい場合は、以下にコメントを残してお知らせください。
元のリンク: SitePoint 翻訳: Bole Online - rokety
上記では、内容の側面も含めて、PHP エキスパートになるためのミッシング リンクについて紹介しました。PHP チュートリアルに興味のある友人に役立つことを願っています。