この投稿は、「PHP プロフェッショナルになる」シリーズの 4 つのうちの 1 つ目です。
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