PHP グローバル開発者カンファレンスは、2016 年 5 月 14 日から 15 日まで北京で開催されます。カンファレンスの前に、このイベントの講演者の 1 人であるプラットフォーム アーキテクトの Lu Yi 氏について話しました。 Lianjia.com の独占テキストインタビューが行われました。記事中の太字部分は DevLink の記者、太字部分は Lu Yi 先生です。
こんにちは、Lu Yi さん、まずあなたの技術的な経歴を紹介していただけますか?
わかりました。
私は学生時代にいくつかの Web 開発テクニックを独学で学びました。 2011 年の卒業の半年前に、私は Sina SAE でインターンをしました。インターンシップ中に、Sina Microdisk の最初のバージョンの開発に参加しました。卒業後は、PHP や JS を含む SAE のフロントエンドおよびバックエンドの機能を開発しました。 SAE は Sina Platform Architecture 部門の一部であるため、最初の 1 年半の仕事でさまざまな技術的な役割を担当することになり、その経験により私の技術的な視野が大きく広がりました。
2012 年末に、Baidu モバイル クラウド部門のモバイル Baidu 製品ラインに加わり、PHP を中心としたサーバーサイド ビジネスを開発しました。 Baidu での 3 年間は、事業開発、モバイル検索速度の最適化、プラットフォーム サービスの構築の 3 つのステージに大別され、それに対応する成長も、詳細なビジネス、詳細な詳細、水平的な技術ソリューション サポートの 3 つのステージに分かれています。 Baidu での 3 年間は、Baidu 製品ラインの最も急速な発展に追いつき、幸運にも私は T4 から T6 に昇進することができました。
Baidu での最後の期間、私はその後の技術的なルートをどのように取るかを考え、数か月間 C++ サービスの開発を試み、最終的には TopDown の主要プロジェクトにも数か月間投資しました。それでもBaiduを抜け出し、快適な環境で運動したいと思い、2015年9月にLianjia.comに入会しました。
Sina と Baidu での仕事は主にアプリケーションとフロントエンド開発に焦点を当てていましたが、Lianjia に入社した後、アーキテクチャとプラットフォーム開発に焦点を移したのはなぜですか?
実際、ここ数年間の私の仕事のほとんどは PHP 開発ビジネスに基づいていました。しかし、上記の紹介からもわかるように、Baidu 時代の後半では、ビジネス ラインの公共的な特性を抽象化することで、複数の APP ビジネス ラインを水平方向にサポートするサービスを開発しました。 。当時、私はプラットフォームサービス「トピック」に参加するだけでしたが、いくつかの横串サービスを運営する中で、デザインのアイデアや仕事のやり方もたくさん蓄積してきました。
私が初めて Lianjia.com に到着したとき、担当者が必要なことがいくつかありましたが、緊急に必要とされていたのは電話サービス プラットフォーム プロジェクトでした。私は会社の目標に焦点を当て、電話サービス プラットフォーム プロジェクトに投資しました。これは、Lianjia ネットワーク内のすべてのビジネス ラインを水平的にサポートする必要があり、非常に重要なプラットフォーム サービスです。 Lianjia.com のその後の取り組みでは、ビジネス分野のニーズが収集され、チームメンバーが補充されるにつれて、他のいくつかのプラットフォームベースのサービスプロジェクトが次々と立ち上げられました。
したがって、焦点の変更は意図的なものではなく、会社のニーズと私の能力に基づいて総合的に選択した後の自然な発展の結果でもあります。これも、技術的な役割を十分に与えてくれたLianjia.comのおかげです。技術開発の余地。
現在の主な仕事について話しましょう
現在、Lianjia.com でプラットフォーム サービスの仕事をしています。仕事の内容は大きく 2 つの側面に分けられます。 、一方のチーム。
テクノロジーに関しては、技術計画とアーキテクチャ設計を行い、プロジェクト開発に参加する必要があります。チームはプロジェクト管理、チーム計画、チームメンバーのメンテナンスにおいて適切な仕事をする必要があります。仕事の 2 つの側面が散りばめられています。
プロジェクトについては、比較的成熟したプロジェクトの責任をチーム内の学生に委任し、最初のフェーズの全体的な計画に集中して、プロジェクトに納品されます。チームとして、私はプロジェクトの反復的なフォローアップと方向性の管理をうまくやっています。
技術的には、私は問題を解決するために新しいテクノロジーを使用することを奨励しますが、責任あるチームメンバーとして、チームのテクノロジースタックを統合することに努めます。新しいテクノロジーや新しいソリューションの導入は、チームメンバーが問題に対するより良い解決策を提案し、技術的なインプットとアウトプットの比率を制御することを奨励するために、レビューと詳細なデータ比較によってサポートされる必要があります。
プロジェクトについて具体的に言えば、現在のトラフィック、ストレージ、写真、統計、リアルタイム ログ分析はすべて当社チームの現在のプラットフォーム作業であり、それらはすべて Lianjia.com 内のすべての製品ラインに対するサービスです。これも私たちのチームの仕事内容で言えば、上流が事業ライン、下流が上流と下流を繋ぐ中間層のサービスを提供するということが分かります。ビジネスラインは、より速く、より堅牢に実行するために、より多くのエネルギーを得ることができます。
「古い」言語である PHP と、Go や Node.js などの新興言語の違いは何だと思いますか?
2009 年にリリースされた 2 つの新興言語である Go や Node.js と比較すると、PHP は確かに「古い」言語です。私はnode.jsの実務経験がないので、コメントしません。 PHP と Go については、言語適用の違いとプログラムの推移性の違いをまとめると次のようになります。
言語アプリケーションの違いは主に言語機能と言語の目標によって決まります。PHP の目標はサーバー側のビジネス モジュールを迅速に構築することですが、Go は同時実行性の高いサービスを迅速に開発するための同時実行機能を提供します。 2 つの言語の使用にはさまざまな側面がありますが、長年の蓄積を経ても、PHP は迅速な開発と健全性の要件を満たすことができるサーバーサイドのビジネス モジュール開発に最も適した言語です。一方、Go は優れています。リクエストとデータを同時に処理する場合。一般的な Web ロジック要件を例に挙げると、PHP 独自の処理メソッドのサポートと PHP のアップストリームおよびダウンストリームのサポートにより、PHP は一連の Web サーバー ビジネス モジュールを安定して開発できます。ビジネスの些細なニーズを実現するには、自分で開発する必要があり、上流サービスと下流サービスによる Go のサポートが不均一であるため、Go の Web アプリケーション シナリオも制限されます。
プログラムの推移性の違いは、言語の歴史によって決まります。PHP には長い歴史があり、初心者レベルの PHP プログラマーにとって、歴史的な PHP プロジェクトを引き継ぐ際には、多くの構文が導入されてきました。プロジェクトのデータ フローとプロジェクト コードを整理するにはまだある程度の時間がかかり、Go 言語はまだ数年しか経っていません。言うまでもなく、Go は過去 3 ~ 4 年で言語自体を徐々に改善し、周辺機器を構築してきました。したがって、初心者レベルの Go プログラマーにとって、Go で書かれたプログラムを理解することはそれほど難しくありません。もちろん、Go 言語はコードの書き方とコードの読みやすさを特別に考慮して設計されており、コードを読んで理解するのが比較的簡単であることは言及する価値があります。
言語アプリケーションの表面とプログラムの推移性の包括的な違いにより、プロジェクト設計時の開発に適切な言語の選択が決まり、それによって言語の使用シナリオも決まります。
個人のブログで、将来は Go と PHP に注力すると述べていましたが、この 2 つの言語の補完的な機能がどのような理由でこの方法を選択したのか具体的に教えていただけますか。
正確に言うと、「将来的にはこれら 2 つの言語に収束する予定です」。実際、チームの全員が現在チーム プロジェクトで使用している言語に PHP が含まれています。 、Java、Go、Lua など。統合の理由は、主に技術チームの技術スタックの構築を考慮するためであり、さまざまな言語の統合を歓迎し、チームメンバーの状況、業界の発展を考慮した上で、チームが得意とする言語の方向性を持たせる必要があります。当面のプロジェクトの傾向やアプリケーションシナリオを考慮して、その後のビジネスロジックプロジェクトを決定します。スケジュール要件が厳しいプロジェクトは PHP を使用して開発され、同時実行要件が高く、一定の開発期間が必要なプロジェクトは Go を使用して開発されます。これらは特定のプロジェクトについて詳細に検討する必要があり、強制することはできません。
「この選択をする理由となる 2 つの言語の補完的な側面は何ですか?」という質問については、一方では、前の質問で述べた PHP と Go のアプリケーション シナリオの違いが考えられます。一方、全体的なアーキテクチャを設計する際には、サブモジュールをマイクロサービスに分割し、各サブモジュールを API または RPC 通信を通じて直列に接続することができます。 PHP と Go は、プロジェクト全体において、特定のサブモジュールでそれぞれの役割を相互に補完し合うことができます。
この PHP グローバル開発者カンファレンスでは何について話しますか?簡単なプレビューを教えていただけますか?
このカンファレンスで講師を務め、主に Lianjia.com 統計プラットフォームとログ リアルタイム処理プラットフォームの背後にある一連のリアルタイム ログ処理ソリューションを共有するいくつかのプロジェクトの蓄積を共有できることを光栄に思います。 。このソリューションには、ログの収集、処理、記録、表示のすべての側面が含まれており、すでに Lianjia.com 内で実行されており、RD と QA の各ログの分析と統計を提供し、PM と運用の製品ツリーの各ノードを提供します。 . ポイント多次元データのサポート。ミーティングでは、アーキテクチャから詳細まで詳しく説明し、Lianjia.com 内のアプリケーション シナリオや、このソリューションを使用できるその他のシナリオを共有します。さらに詳しい内容については、5 月中旬に開催される PHP カンファレンスにご注目ください。
あなたはかつて「PHP への道を歩む「若者」へ」という記事を書きましたが、この記事を書こうと思ったきっかけを教えていただけますか。
恥ずかしいです。私のブログを変更した結果、Lianjia.com に来る直前に新しいブログが作成されました。過去6か月間、あまりブログを投稿していませんでした。私が書いた唯一の記事は、当時 PHP の新人とコミュニケーションをとった後の私の感情でした。それを書いた主な理由は、その新人と一晩コミュニケーションをとった後、自分がそのときの自分と会話しているように感じたからです。新人の戸惑いや不安は、私が働き始めた頃と基本的に同じだと思いましたが、このような戸惑いはほとんどの若者が抱えているはずなので、「経験者」としての私の考えを書き留めてみませんか。若い人たちが寄り道を避け、より短い道を使って自分のやりたいことを見つけられるようにするため、この仕事を始めたばかりの多くのプログラマーに役立つことを願ってこの記事を書きました。
最前線の開発者に言いたいことは何ですか?みなさんに専門的なアドバイスをいただけますか?
私は現役プログラマーでもあり、第一線の開発者でもあります。第一線の開発者に言いたいのは、「開発なしにアーキテクチャを行うな」ということです。誰もが私と同じように、業界の優れた人々の建築デザインや彼らのさまざまな専門的視点に感心することが多いと思いますが、すべての完璧な建築は細部の完璧な制御の上に構築されることを理解してください。この業界の優れた人は、長い時間をかけて細部を習得した上で精緻な建築設計を行っているはずだと思いますが、本来の能力がなければ、ある計画の建築設計をただ真似するだけでは、確実に破綻してしまいます。ある日巣を作る。誰もが技術の専門家として認めているニアオ兄弟でさえ、Lianjia.com のオフィスエリアでは、夜にワークステーションでバグリストをチェックしている姿をいつも見かけます。 PHP コミュニティに参加し、PHP コミュニティ プロジェクトの開発に投資します。
PHP プログラマの皆様へ、私の数年間の PHP 開発経験に基づくアドバイスは、公式ドキュメント、組み込み関数と拡張機能の使用法ドキュメント、公式パラメータの説明を読んでリターンする必要があるということです。 PHP プログラマは、値の説明やサンプル コード、さらにはページ上のコメントを注意深く理解し、忘れたときに公式ドキュメントを確認する習慣を身につけてください。これは初級および中級の PHP プログラマーにとって非常に役立ちますが、しっかりした基礎を築くことが重要です。
私たちのインタビューに応じていただき、ありがとうございます。今年の PHP グローバル開発者カンファレンスであなたの素晴らしい情報を共有できることを楽しみにしています。
PHP 開発者に共有とコミュニケーションのためのこのような機会とプラットフォームを提供してくださった DevLink にも感謝します。
開発者相互扶助コミュニティ DevLink が独占的に主催する第 2 回 PHP グローバル開発者カンファレンスが、2016 年 5 月 14 日から 15 日まで北京国際コンベンション センターで開催されます。この会議には、PHP の創設者である Rasmus Lerdorf 氏や PHP7 の主なコア開発者である Hui Xinchen (Brother Niao) 氏など、PHP 分野の多くのトップ専門家が出席し、トピックを共有するよう招待されました。
このカンファレンスは、DevLink 開発者コミュニティの一貫した目的に従っています。つまり、中堅レベルの最前線の開発者を対象とし、開発者の継続的な成長を支援することに重点を置いています。すべてのスピーチのトピックは、Niao Ge を含む PHP 分野の複数の技術専門家によってレビューされ、開発者の日常業務と技術的能力の向上に真に役立つスピーチのみがステージに上げられ、コンテンツ共有の品質が完全に保証されます。
DevLink は、上級開発者で連続起業家の Gao Chunhui によって共同設立された開発者コミュニティです。オフラインの特別カンファレンス、トレーニング、オンライン専門メディア、相互扶助コミュニティなどを通じて、開発者に技術能力を向上させ、最新の技術進歩を追跡する可能性とプラットフォームを提供します。開発者専用のサービス組織として、DevLink の各イベントは 1 つのプログラミング言語またはトピックの詳細な説明のみに焦点を当てています。共有を通じて、イベントに参加する開発者が業界のトレンドを理解するだけでなく、特定の技術実装、アーキテクチャ、および方法論を習得できるように努めています。 DevLink のアクティビティはカンファレンスというよりは公開クラスに似ており、開発者はアクティビティに参加することで直接的かつ効果的な支援を得ることができます。
現在、この PHP グローバル開発者カンファレンスの残りのチケットが販売されています。クリックして原文を読み、詳細を確認し、参加するチケットを購入できます。
このインタビューについて質問がありますか?会議が始まる前に技術専門家とコミュニケーションをとりたいですか? WeChat を使用して以下の QR コードをスキャンして友達として追加してください。あなたが本当に PHP 開発者であることが確認されたら、すぐにテクノロジーの専門家と交流できるように WeChat グループに追加されます。 (技術認証サービスは、技術評価ソリューションのプロバイダーである Yuanquan によって提供されています)
この記事は DevLink の独占的な原稿であり、転載する前に DevLink に連絡して許可を得る必要があります。再版中は許可されます。お問い合わせ番号:13752002090

PHPでは、特性は方法が必要な状況に適していますが、継承には適していません。 1)特性により、クラスの多重化方法が複数の継承の複雑さを回避できます。 2)特性を使用する場合、メソッドの競合に注意を払う必要があります。メソッドの競合は、代替およびキーワードとして解決できます。 3)パフォーマンスを最適化し、コードメンテナビリティを改善するために、特性の過剰使用を避け、その単一の責任を維持する必要があります。

依存関係噴射コンテナ(DIC)は、PHPプロジェクトで使用するオブジェクト依存関係を管理および提供するツールです。 DICの主な利点には、次のものが含まれます。1。デカップリング、コンポーネントの独立したもの、およびコードの保守とテストが簡単です。 2。柔軟性、依存関係を交換または変更しやすい。 3.テスト可能性、単体テストのために模擬オブジェクトを注入するのに便利です。

SplfixedArrayは、PHPの固定サイズの配列であり、高性能と低いメモリの使用が必要なシナリオに適しています。 1)動的調整によって引き起こされるオーバーヘッドを回避するために、作成時にサイズを指定する必要があります。 2)C言語アレイに基づいて、メモリと高速アクセス速度を直接動作させます。 3)大規模なデータ処理とメモリに敏感な環境に適していますが、サイズが固定されているため、注意して使用する必要があります。

PHPは、$ \ _ファイル変数を介してファイルのアップロードを処理します。セキュリティを確保するための方法には次のものが含まれます。1。アップロードエラー、2。ファイルの種類とサイズを確認する、3。ファイル上書きを防ぐ、4。ファイルを永続的なストレージの場所に移動します。

JavaScriptでは、nullcoalescingoperator(??)およびnullcoalescingsignmentoperator(?? =)を使用できます。 1.??最初の非潜水金または非未定されたオペランドを返します。 2.??これらの演算子は、コードロジックを簡素化し、読みやすさとパフォーマンスを向上させます。

XSS攻撃を防ぎ、リソースのロードを制限し、ウェブサイトのセキュリティを改善できるため、CSPは重要です。 1.CSPはHTTP応答ヘッダーの一部であり、厳格なポリシーを通じて悪意のある行動を制限します。 2。基本的な使用法は、同じ起源からのロードリソースのみを許可することです。 3.高度な使用法は、特定のドメイン名がスクリプトやスタイルをロードできるようにするなど、より微調整された戦略を設定できます。 4。CSPポリシーをデバッグおよび最適化するには、コンテンツセキュリティポリシーレポートのみのヘッダーを使用します。

HTTPリクエストメソッドには、それぞれリソースを取得、送信、更新、削除するために使用されるGET、POST、PUT、および削除が含まれます。 1. GETメソッドは、リソースを取得するために使用され、読み取り操作に適しています。 2. POSTメソッドはデータの送信に使用され、新しいリソースを作成するためによく使用されます。 3. PUTメソッドは、リソースの更新に使用され、完全な更新に適しています。 4.削除メソッドは、リソースの削除に使用され、削除操作に適しています。

HTTPSは、HTTPに基づいてセキュリティレイヤーを追加するプロトコルであり、主に暗号化されたデータを介してユーザーのプライバシーとデータセキュリティを保護します。その作業原則には、TLSの握手、証明書の確認、暗号化された通信が含まれます。 HTTPSを実装する場合、証明書管理、パフォーマンスへの影響、および混合コンテンツの問題に注意を払う必要があります。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

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

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

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

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

ホットトピック



