この投稿は、「Becoming a PHP Professional」シリーズの 4 つの投稿のうちの最初の投稿です。
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 の拡張機能としてインストールされているという事実により、現時点で存在するどのフレームワークよりも優れています。もっと早く)。ただし、さまざまなフレームワークを自分で試してみる価値はあります。
さまざまなフレームワークを試してみると、同じ問題を新しい方法で解決できることがわかります。各フレームワークには、好きな長所と嫌いな短所がありますが、さらに重要なのは、他の人、特にフレームワークの開発者の考え方を理解できるようになります。新しい使用方法とアプローチがわかります。ベスト プラクティスは、同じ実験プロジェクトをできるだけ多くのフレームワークを使用 リファクタリング することです。これは、特定のフレームワークの有効性、つまり、それを使用した開発の速度とそのパフォーマンスを効果的に測定するのに役立ちます。
他の人のヒントやコツを過小評価しないでください。できるだけたくさん読んでください。読み続ければ、思っているほど時間はかかりません。優れたブログを見つけてフォローし、サイトのガイドを読み、StackOverflow の質問と回答を閲覧し、SitePoint フォーラムにアクセスし、ニュースレターを購読し、Google+ で優れたリソースをフォローします。基本的な PHP チュートリアル本は出版された時点では古くなっているため、避けてください。代わりに、最新のコードが含まれるオンラインで見つけられるスニペットやガイドに焦点を当ててください。すでに研究したトピックに出会った場合でも、それについて読んでみてください。同じテーマに関する他の人の視点を読むことで、何か新しい発見があることがよくあります。
やる事がないなら何か作ってみよう
常に何かをする。 「取り組むプロジェクトがない」とか、さらに悪いことに「退屈だ」などとは決して言わないでください。進行中のプロジェクトがない場合は、作成してください。毎日使用しているツールの機能が不完全なためにイライラしていませんか?もっと良いものを自分で作ってください!新製品のアイデアはありませんか?次に、既存のコピーを作成します。練習できるように、基本的な FaceBook を再構築したり、すでに知っているものを再構築したりしてみてください。
最も重要なことは決して止まらないことです。1 時間を大切にしないと 10,000 時間も蓄積できません。良い仕事を続けて、興味と関心を持ち続けてください。簡単なアドレス帳アプリケーションを作成します。次に、別のフレームを使用して再構築します。 MariaDB の代わりに Mongo などの別のデータベースを使用します)。忙しくしてください!
パートナー/メンターを見つける
誰かと一緒にいると学習が容易になります。あなたの情熱を分かち合うパートナーを見つけてください。おそらくあなたは、独自の興味を共有するパートナーがすでにいる幸運な数少ない人の一人かもしれません。もしかしたら、学校や大学に、一緒に仕事を始めて一緒に頑張りたいという仲間がいるかもしれません。メンターを見つけて専門家から指導を受けることもできます。
パートナーの力を過小評価しないでください – 3 人組なら、いつでも教えてくれる人がいます!
概要
これらすべての項目に焦点を当て、可能な限りそれらをマスターし、これが自分が望んでいることであると認識したら、それを続けてください。あなたは上級 PHP 開発者への道を進んでいます。自分の原則を守り、周りの人が諦めても決して諦めず、練習を続けてください。
役立つリソースをお持ちで、中級開発者の障壁をどのように乗り越えたか、または超えようとしているかについて私たちと共有したい場合は、以下にコメントを残してお知らせください。
翻訳リンク: http://blog.jobbole.com/56560/