phper はどのようにしてアーキテクチャに成長するのでしょうか?
私は 5 年以上 PHP に取り組んでおり、アーキテクチャ レベルの PHP を開発したいと考えています。アーキテクチャ レベルで習得するにはどのような知識が必要ですか?また、段階的なプロセスは何ですか?より具体的にしてください
返信内容:
Laruence 氏は次のように述べていたのを覚えています:PHP ->C ->Linux プログラミング ->
それから私は、C、拡張機能、Linux を学ぶために一生懸命働き始めました...
ある日、ニマ、これはまだ PHPer なの? ということに気づきました。
==========私は境界線です==============
追加:
これに限定されませんphp アーキテクトが存在し、php タグを記述します。
Web アーキテクトに方向を変えると、道はより明確になります。 PHP リクエストは受信時に処理され、リクエストが完了すると破棄されます。ライフサイクルの 1 つの層のみを制御するプログラムとして。アーキテクトになることは、Nginx、PHP-fpm、Memcache、HaProxy、MySQL、その他のソフトウェアを構成することに他なりません。
PHP プログラマーは、マルチプロセス、マルチスレッド、ソケット、Epoll など、基礎となるシステムとネットワーク通信の知識を習得する必要があります。 PHP カーネル、拡張機能の開発、および C/C++ はすべて学習する必要があります。ネットワーク通信については、swooleを参照することをお勧めします。 Swoole: PHP の非同期、並列、分散拡張機能
私はアーキテクトになることを目指して努力しています。個人的な意見ですが、参考までに: アーキテクトの最も基本的な責任は、大規模なシステムを、プログラマが処理できる一連の小さなモジュールに分解し、技術的な問題が発生したときにそれを支援することです。 。このことから、PHP アーキテクトが習得しなければならないことは次のとおりです。
1. データ構造とアルゴリズム。少なくとも、それを使用でき、セットをいつ使用するか、いつキューを使用するか、いつソートキューを使用するか、各データ構造がどのような操作をサポートするか、および適切なデータを使用できるようにする必要があります。実際的な問題については、構造の説明を参照してください。
2. データ ストレージ: MySQL Redis など。非パラダイムを構築するためのリレーショナル データベースと非リレーショナル データベースの理論。実際の問題を適切なデータベース構造に落とし込みます。 「SQL クエリの開始」、「Redis の開始」、および「MySql Technology Insider」を読むことができます。
3. Web サーバー: Nginx、Lighttpd。 「Nginx の詳細な理解」を読むことができます
4. キャッシュ: ブラウザー、フロントエンド サーバー、およびバックエンド サーバーのマルチレベル キャッシュ。 「高パフォーマンスの Web サイトの構築」を参照してください
5. メッセージ キュー: 非同期データ書き込みの実装計画。
6. 設計理論: オブジェクト指向、オブジェクト指向の基本原理、設計パターン、リファクタリング、コード アーキテクチャ パターンについての深い理解。推奨: 「デザイン パターン」、「ビッグ トーク デザイン パターン」、「リファクタリング」、「アジャイル ソフトウェア開発: 原則、パターン、実践」。
7. 設計ドキュメントの作成: アーキテクトは、基本的なドキュメント作成スキルに加えて、Visio などの描画ツールを理解している必要があります。
8. ソフトウェアエンジニアリング: アーキテクトは、ウォーターフォール方式、スパイラル反復方式、アジャイルなど、担当するプロジェクトに適した開発プロセスを選択する能力が必要です。良いか悪いかはありません。適切か不適切かだけです。 ;
PHP のみを必要とするプロジェクトの場合、上記の能力があればアーキテクトのポジションに就くことができます。要約すると、アーキテクチャをやりたい場合は、PHP が単なるサーバーサイドのスクリプト言語であると自分自身を位置づけないでください。
しかし、次のような問題もあります。
PHP プロジェクトの規模が大きくない限り、その価値は大きくありません。 PHP は単なるスクリプト言語であり、ビジネスを行ったり、製品のプロトタイプを迅速に構築したりするのに適しています。製品規模が大きくなるとバックエンドはJavaやC++などの静的言語に移行するのは間違いありません。 Java や C++ などの言語を知らない場合。それでは、素晴らしい建築家にはなれないのではないかと思います。
これは非常にややこしい質問ですが、長年 PHP を書いてきた人は Java 陣営と C++ 陣営のどちらに移るべきかということです。私が会ったアーキテクトは、PHP、C++、Java で書くことができます。 言語を知っていて、アーキテクチャを構築したいと思うのは、単なる思いつきです。
現在、フレームワークや多くの言語は言うまでもなく、多くのフレームワークが相互に学習しています。
しかし、これらは建築家にとって重要ではありません。
どのようなスキルが必要ですか? まず、建築家が達成したい目標を見てみましょう。 全体を制御する必要があるが、局所的なボトルネックを理解し、特定のビジネス シナリオに基づいたソリューションを提供する必要がある
システム要件の確認と評価、開発仕様の提供、システム実装のコア アーキテクチャの構築、技術的な詳細と明確な明確化上 メインの難易度。主にシステムの「技術的実装」に焦点を当てます。したがって、彼/彼女はこうあるべきです 特定の開発プラットフォーム、言語、およびツールのマスターは、一般的なアプリケーション シナリオに最も適切なソリューションを即座に提供できると同時に、開発チームを十分に理解し、特定の機能を実装するために自分のチームを評価できなければなりません。 需要には価格が必要です。 システムアーキテクトは、システムの全体的なアーキテクチャを設計する責任を負い、要件から設計に至るあらゆる詳細を考慮し、設計されたプロジェクトを可能な限り効率的に、開発しやすく、保守しやすくするためにプロジェクト全体を把握する必要があります。アップグレードが簡単。
百度百科事典からコピーしました。
上記は要点を抜粋したものです。
- 「ビジネスシナリオ」を理解した上で解決策を提供します。
- 所属する開発チームを十分に理解していること。
- プロジェクトのリスクを管理します。
- 開発プロセスとシステムアーキテクチャの設計、制御、実装のため。
テクノロジーを理解します。洗練されている必要はありませんが、幅広い知識が必要です。ニーズに応じてアーキテクチャを適切に設計し、開発プロセスを標準化し、技術的な制御を行うことができます。開発におけるリスク。
ビジネスを理解し、ビジネス シナリオを一般的に理解しており、少なくともプロのビジネス担当者とコミュニケーションをとる際に障害がなく、シナリオに対する正しい需要分析ができる必要があります。
マネジメントを理解するには、主にチーム、タスク分解のリスク、要件の正確な伝達を理解することが含まれます。
とはいえ、ビジネスを知らずに建築をやっても大丈夫なのでしょうか?いいえ!
もし普遍的なアーキテクチャがあれば、これほど多くのアーキテクトは必要ありません。あらゆるビジネス分野が普遍的なアーキテクチャを見つけるだけです。たぶんそれは普遍的ではありませんが、ほぼ同じですか?そう、この「ちょっとした癖」は、下手をすると人を殺す可能性があるのです。
もちろん、インターネット時代には多くのビジネスモデルが革新的であり、このビジネスの運営方法を誰も理解していません。そうすると、アーキテクトに対する要件も変化し、何が起こるでしょうか?いわゆる「アジャイル開発」、反復更新。ということは、建築家はビジネスを理解する必要がないということでしょうか?いいえ、これは単に石を感じながら川を渡り、ボトルネックに遭遇する前に経験を積んで再建を強化するだけの問題です。
私は卒業したばかりで半年ほどの経験しかありませんが、PHP をお金を稼ぐのではなく、純粋に技術的な研究として扱うと、ソースコードを徹底的に研究し続けることができることがわかりました。追求。私はまだ十分なお金を稼いでいないので、他のことを学び、さらにいくつかのスキルを習得し、十分なお金を稼いだ後は PHP の素晴らしいプロジェクトに集中することしかできません。 あなたのキャリアを PHP に結びつける必要があるのはなぜですか? PHP で数年間働いた後、すぐに次のことに切り替えるでしょう。c/c++ -> Java シリーズ フレームワーク -> jvm シリーズ言語
C/C++ の優れたオープン ソース サーバーには、次のようなものがあります。
nginx は優れたパフォーマンスを備え、
優れた設計は比類のないもので、
トラフィック サーバーは優れた設計とパフォーマンスを備え、
javaも人気が高く、おすすめです。 「Java Concurrent Programming in Practice」を見れば、外の世界がいかにエキサイティングであるかがわかります。
jvm シリーズの言語には、scala 言語の kafka、優れたメッセージ キュー、ストームなど、多くの選択肢があります。
それでも php をさらに詳しく知りたいが転送したくない場合は、hhvm が良い選択です。
腐った木にしがみつくより、知識を得る方が、zend php 拡張機能の書き方を学ぶことに時間を費やす方が、寝るよりも良いです。 あなたの意見を聞かせてください。豚が走っているのを見たことしかない人のものです。
アーキテクトの責任は全体的なソリューションを提供すること、つまり、要件の読み取りから機能設計、テクノロジーの選択、最適化と再構築、テストに至るまで、機能実装のための具体的な計画を与える責任があることを理解しています。リリースのロールバック、さらにはコーディング スタイルを指定する必要があります。
これらすべてが 1 つ以上のドキュメントに反映されるため、アーキテクトにはドキュメント機能が必要であり、出力ドキュメントの品質を決定するのは、要件機能や設計の読み取りと理解など、アーキテクトの中核となる機能です。能力と技術的な幅広さと奥深さ。
建築家にとって、要件の理解と抽象的な設計は、この2つが一定のレベルに達していなければ、建築家としての資格は得られないはずです。
さらに、テクノロジーの選択は、チーム全体が将来依存するテクノロジーの傾向を決定する非常に重要な要素であり、多くのことを比較検討する必要があります。
ワークフローの設計も非常に重要であり、優れたワークフローはチームの効率を大幅に向上させることができ、自動化をさらに導入するためにどのように協力するかということもアーキテクトが考慮する必要がある問題です。
純粋な PHPer がアーキテクトになるのは、アーキテクトの肩書だけを持った 2 人か 3 人がいる潰れた会社でない限り、困難です。
視野が狭すぎるから。
建築家には幅広い知識が求められ、1 つの言語を知っているだけでは十分ではありません。
ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











このチュートリアルでは、PHPを使用してXMLドキュメントを効率的に処理する方法を示しています。 XML(拡張可能なマークアップ言語)は、人間の読みやすさとマシン解析の両方に合わせて設計された多用途のテキストベースのマークアップ言語です。一般的にデータストレージに使用されます

JWTは、JSONに基づくオープン標準であり、主にアイデンティティ認証と情報交換のために、当事者間で情報を安全に送信するために使用されます。 1。JWTは、ヘッダー、ペイロード、署名の3つの部分で構成されています。 2。JWTの実用的な原則には、JWTの生成、JWTの検証、ペイロードの解析という3つのステップが含まれます。 3. PHPでの認証にJWTを使用する場合、JWTを生成および検証でき、ユーザーの役割と許可情報を高度な使用に含めることができます。 4.一般的なエラーには、署名検証障害、トークンの有効期限、およびペイロードが大きくなります。デバッグスキルには、デバッグツールの使用とロギングが含まれます。 5.パフォーマンスの最適化とベストプラクティスには、適切な署名アルゴリズムの使用、有効期間を合理的に設定することが含まれます。

静的結合(静的::) PHPで後期静的結合(LSB)を実装し、クラスを定義するのではなく、静的コンテキストで呼び出しクラスを参照できるようにします。 1)解析プロセスは実行時に実行されます。2)継承関係のコールクラスを検索します。3)パフォーマンスオーバーヘッドをもたらす可能性があります。

文字列は、文字、数字、シンボルを含む一連の文字です。このチュートリアルでは、さまざまな方法を使用してPHPの特定の文字列内の母音の数を計算する方法を学びます。英語の母音は、a、e、i、o、u、そしてそれらは大文字または小文字である可能性があります。 母音とは何ですか? 母音は、特定の発音を表すアルファベットのある文字です。大文字と小文字など、英語には5つの母音があります。 a、e、i、o、u 例1 入力:string = "tutorialspoint" 出力:6 説明する 文字列「TutorialSpoint」の母音は、u、o、i、a、o、iです。合計で6元があります

PHPの魔法の方法は何ですか? PHPの魔法の方法には次のものが含まれます。1。\ _ \ _コンストラクト、オブジェクトの初期化に使用されます。 2。\ _ \ _リソースのクリーンアップに使用される破壊。 3。\ _ \ _呼び出し、存在しないメソッド呼び出しを処理します。 4。\ _ \ _ get、dynamic属性アクセスを実装します。 5。\ _ \ _セット、動的属性設定を実装します。これらの方法は、特定の状況で自動的に呼び出され、コードの柔軟性と効率を向上させます。

PHPとPythonにはそれぞれ独自の利点があり、プロジェクトの要件に従って選択します。 1.PHPは、特にWebサイトの迅速な開発とメンテナンスに適しています。 2。Pythonは、データサイエンス、機械学習、人工知能に適しており、簡潔な構文を備えており、初心者に適しています。

PHPは、電子商取引、コンテンツ管理システム、API開発で広く使用されています。 1)eコマース:ショッピングカート機能と支払い処理に使用。 2)コンテンツ管理システム:動的コンテンツの生成とユーザー管理に使用されます。 3)API開発:RESTFUL API開発とAPIセキュリティに使用されます。パフォーマンスの最適化とベストプラクティスを通じて、PHPアプリケーションの効率と保守性が向上します。

PHPは、サーバー側で広く使用されているスクリプト言語で、特にWeb開発に適しています。 1.PHPは、HTMLを埋め込み、HTTP要求と応答を処理し、さまざまなデータベースをサポートできます。 2.PHPは、ダイナミックWebコンテンツ、プロセスフォームデータ、アクセスデータベースなどを生成するために使用され、強力なコミュニティサポートとオープンソースリソースを備えています。 3。PHPは解釈された言語であり、実行プロセスには語彙分析、文法分析、編集、実行が含まれます。 4.PHPは、ユーザー登録システムなどの高度なアプリケーションについてMySQLと組み合わせることができます。 5。PHPをデバッグするときは、error_reporting()やvar_dump()などの関数を使用できます。 6. PHPコードを最適化して、キャッシュメカニズムを使用し、データベースクエリを最適化し、組み込み関数を使用します。 7
