window.pipedriveLeadboosterConfig={です。 ベース:'leadbooster-chat.pipedrive.com'、 companyId:11580370, playbookUuid: '22236db1-6d50-40c4-b48f-8b11262155be', version: 2、 } ;(function () { var w = window もし (w.LeadBooster) {なら console.warn('LeadBooster already exists') } else { w.LeadBooster = { {. q: [], on: function (n, h) { this.q.push({ t: 'o', n: n, h: h }) }, trigger: 関数 (n) { { this.q.push({ t: 'o', n: n, h: h }) this.q.push({ t: 't', n: n }) }, } } })() PHPでプロジェクトを維持する:避けるべき5つの間違い - The Codest
The Codest
  • 会社概要
  • サービス
    • ソフトウェア開発
      • フロントエンド開発
      • バックエンド開発
    • Staff Augmentation
      • フロントエンド開発者
      • バックエンド開発者
      • データエンジニア
      • クラウドエンジニア
      • QAエンジニア
      • その他
    • アドバイザリー
      • 監査&コンサルティング
  • 産業
    • フィンテック&バンキング
    • E-commerce
    • アドテック
    • ヘルステック
    • 製造業
    • 物流
    • 自動車
    • アイオーティー
  • 価値
    • CEO
    • CTO
    • デリバリー・マネージャー
  • チーム
  • Case Studies
  • ノウハウ
    • ブログ
    • ミートアップ
    • ウェビナー
    • リソース
採用情報 連絡先
  • 会社概要
  • サービス
    • ソフトウェア開発
      • フロントエンド開発
      • バックエンド開発
    • Staff Augmentation
      • フロントエンド開発者
      • バックエンド開発者
      • データエンジニア
      • クラウドエンジニア
      • QAエンジニア
      • その他
    • アドバイザリー
      • 監査&コンサルティング
  • 価値
    • CEO
    • CTO
    • デリバリー・マネージャー
  • チーム
  • Case Studies
  • ノウハウ
    • ブログ
    • ミートアップ
    • ウェビナー
    • リソース
採用情報 連絡先
戻る矢印 戻る
2022-06-10
ソフトウェア開発

PHPでプロジェクトを維持する:避けるべき5つの間違い

The Codest

セバスチャン・ルザック

PHP ユニットリーダー

しかし、プロジェクトの要件に目を向け、選択されたテクノロジーを前提としたリスク管理を行うことは稀である。

PHPを管理することに関しては、他の言語と同様、何の価値もない欠点もある。 IT プロジェクト どこ PHP が主要言語である。

以下に、それらのリストと、それらを避けるためのヒントをまとめた。

1.PHP規格の推奨事項に従っていない

PHP は参入障壁が非常に低いため、「簡単な言語」と考えられている。その結果、コーディング・スタンダードや、さまざまな外部ライブラリにおけるグローバル・インターフェースの実装方法に大きな格差が生じている。秩序をもたらすために、一連の標準が導入された。これらは、実装の開発者が、標準によって要求される制約のセットを満たすことができる方法のセットを記述している。簡単な例として イベント・ディスパッチャ:

リスナー - リスナーとは PHP Eventが渡されることを期待する callable。0個以上のListenerが同じEventを渡されるかもしれない。リスナーは、そう選択した場合、他の非同期動作をエンキューしてもよい[MAY]。

この標準規格を使用することで、PSR準拠の命名法を使用するすべての開発者は、PSRと簡単に通信できるだけでなく、PSRを使用するすべての開発者と簡単に通信することができます。 コード 他の開発者と一緒に。
これらの基準を実践するには、例えば、以下のような方法がある。 PHP 正しい方法 グローバルPSRインターフェイスをサポートするガイドラインとライブラリにより、以下のことが可能になります。 PHP開発者 機能要件、アーキテクチャ要件、インフラ要件の変更により迅速に対応できるようにする。

どうすればそれを避けることができますか?

コードベースのメンテナとして、実績のある安定したバージョンの外部ライブラリを使用すること、また、カスタムベースのソリューションを使用せざるを得ない場合は、PHP PSRを使用して実装することを常に忘れないでください。
利用可能なすべての規格のリストは、メインウェブサイトでご覧いただけます。 PHP-FIG.実用的な説明を含む拡張規格は、以下のサイトからさまざまな形式で入手できる。 PHP 正しい方法 ホームページ
PHP-FIG規格に準拠した最良のライブラリは、以下のリストに掲載されています。 PHPリーグ ウェブサイトをご覧ください。

2.composer.jsonの依存バージョンをロックしない

依存関係マネージャを使用するプロジェクトでは 作曲家 を長い間サポートし、維持した後に、「このままではいけない」という状況になることがよくある。 製品 本番環境では、アーキテクチャ全体を再構築することなく、機能的な変更を実装する必要がある。たいていの場合、プロジェクトはプログラマに引き継がれ、そのプログラマのタスクは、ローカルの開発環境を立ち上げ、チケットの作業を開始することである。チケットに基づいて コンポーザー・ロック ファイルを変更すると、開発者はプロジェクトを本番環境の状態に戻すことができます。 composer.json ファイルにライブラリを追加するなどすると、エラーの連鎖が起こり、新しい チーム ソリューションの開発期間だけでなく、組織にとってのメンバーでもある。

どうすればそれを避けることができますか?

アプリケーションが安定したら、コードメンテナはライブラリのバージョンを composer.json ファイルを作成し、将来必要になった場合のバージョンアップ方法を説明した明確な手順を作成する。

また、使用するライブラリのセキュリティ状態をチェックし、セキュリ ティアップデートを提供するプロセスを自動化する仕組みの運用も検討する。
などの無料ツールを使用する。 ディペンダボットそうすることで、依存ライブラリの一貫した管理可能なバージョン管理インフラを維持し、アプリケーションのセキュリティを保証することができる。

3.不十分な要件収集

> ただのCRUDなのに、なぜ悩む?

> まさにそれを実現するライブラリーがある!

の中で PHP ドメインでは、製品のビジネスロジックを実装する際に忘却の渦に陥りやすい。データモデルを管理するための管理パネルを作成する](https://backpackforlaravel.com/)、[Google Analyticsのようなビューを生成する](https://github.com/Kunstmaan/KunstmaanDashboardBundle)、[PHPの非同期問題を解決する](https://laravel.com/docs/9.x/octane)といったプロジェクトは、魔法の杖を触るように(コマンドラインクエリ1つでOK)、長年にわたって何百と存在してきた。
PHPの世界には、99.9%の確率で動作する既製の実装が溢れている。
0.1%は、ビジネス・ロジックと、使用されているライブラリの機能的な制約がぶつかるところだ。
いわゆる "スローイン "と呼ばれるもので、プロジェクトの最後に実行するのが最も難しい。

どうすればそれを避けることができますか?

製品のビジネス領域を正しく理解することなしに、過剰エンジニアリングと過小エンジニアリングの間の黄金分割を見つけるチャンスはない。
スタート 開発チーム 製品フェーズの早い段階でメンバーに加わり、プロダクトオーナーと協力しながら積極的に行動することで、長期的な投資として機能しないソリューションを使用する問題のリスクを最小限に抑えることができる。

4.テストを書かないことによるコスト削減

PHP が完璧でないことは確かだ。静的型付け、ジェネリックスのサポート不足、古臭いメソッドの継続的なサポートといった欠点は、今でもプログラマーの間で冗談の種になっている。しかし、しばらくの間 PHP開発者 など、ますます強力なツールが与えられている。 PHPStan, Xdebug, PHP-CS-フィクサー これにより、一貫性と静的型付けを維持し、多くのバグを回避することができる。しかし、テストにはあまりに注意が払われていない。テストは、正しく実装されれば、次のような形ですぐに投資回収ができる。
- 回帰誤差の低減
- 製品能力に対する認識の向上
- 開発者のコード所有意識の向上

どうすればそれを避けることができますか?

テストのコストを削減しないでください。シンプルな Behat スクリプトを書くのはそれほど難しくありません。すぐに複雑なエンドツーエンドのテストを書いたり、実装の詳細に入り込んで全てのメソッドをユニットテストしたりする必要はありません。
自然なドメイン言語で記述されたシンプルなBehatテストは、最も綿密に書かれたエンドツーエンドのテストよりも価値があることが多い。

5.モダン・アーキテクチャ・パターンを考慮しない

について PHP言語 そして最も強力な2つのフレームワーク ララベル そして シンフォニー は、モダンで機能的、そして何よりも高性能なアーキテクチャを構築するのに完全に適している。様々なメッセージ・キュー・システムをサポートし、さらに高速な PHP バージョンごとのパフォーマンス向上により、マイクロフレームワークをベースにしたマイクロサービスを簡単に作ることができる。しかし、ほとんどの場合、私たちは依然としてモノリシックなシステムに依存している。それは悪いことではないが、そのようなシステムの開発を検討する際には、ドメインの境界に細心の注意を払い、新しいソリューションとシステムの古い部分との間のインターフェースのポイントを決定する必要がある。

どうすればそれを避けることができますか?

開発にあたって PHP のウェブサイトでは、現在のソリューションをよく観察し、データ通信のためのグローバル・インターフェースを作成し、最新の技術や慣行を使って新しい機能を実装することに価値がある。実際に使用されている最も一般的なソリューションのひとつは ストラングラー・パターン.

関連記事

ソフトウェア開発

PHPの開発symfony コンソールコンポーネント - ヒントとコツ

この記事は、symfony コンソール開発に関するもっとも便利で検索しやすいヒントとトリックをお見せする目的で作成されました。

The Codest
セバスチャン・ルザック PHP ユニットリーダー
E-commerce

サイバーセキュリティのジレンマデータ漏洩

クリスマス前の駆け込み需要が本格化している。愛する人への贈り物を求めて、人々はますますオンラインショップを "襲撃 "することを厭わなくなっている。

The Codest
ヤクブ・ヤクボヴィッチ CTO & 共同創設者
ソフトウェア開発

内部開発者と外部開発者の雇用

社内採用か社外採用か?それは究極のジレンマだ!以下の記事で、outsourcingと社内チーム構築のメリットをご確認ください。

The Codest
グジェゴシュ・ロズムス Javaユニットリーダー
エンタープライズ&スケールアップ・ソリューション

トップJava開発者を見つける正しい方法

完璧なJava開発者を見つけるのは大変な作業です。そのような専門家に対する市場の需要が驚異的なペースで成長する中、人材発掘のための利用可能な情報源は、時に...

The Codest
グジェゴシュ・ロズムス Javaユニットリーダー

ナレッジベースを購読して、IT部門の専門知識を常に最新の状態に保ちましょう。

    会社概要

    The Codest - ポーランドに技術拠点を持つ国際的なソフトウェア開発会社。

    イギリス - 本社

    • オフィス 303B, 182-184 High Street North E6 2JA
      イギリス、ロンドン

    ポーランド - ローカル・テック・ハブ

    • ファブリチュナ・オフィスパーク、アレハ
      ポコジュ18、31-564クラクフ
    • ブレイン・エンバシー, コンストルクトースカ
      11, 02-673 Warsaw, Poland

      The Codest

    • ホーム
    • 会社概要
    • サービス
    • Case Studies
    • ノウハウ
    • 採用情報
    • 辞書

      サービス

    • アドバイザリー
    • ソフトウェア開発
    • バックエンド開発
    • フロントエンド開発
    • Staff Augmentation
    • バックエンド開発者
    • クラウドエンジニア
    • データエンジニア
    • その他
    • QAエンジニア

      リソース

    • 外部ソフトウェア開発パートナーとの協力に関する事実と神話
    • 米国から欧州へ:アメリカの新興企業がヨーロッパへの移転を決断する理由
    • テックオフショア開発ハブの比較:テックオフショア ヨーロッパ(ポーランド)、ASEAN(フィリピン)、ユーラシア(トルコ)
    • CTOとCIOの課題は?
    • The Codest
    • The Codest
    • The Codest
    • Privacy policy
    • ウェブサイト利用規約

    著作権 © 2025 by The Codest。無断複写・転載を禁じます。

    jaJapanese
    en_USEnglish de_DEGerman sv_SESwedish da_DKDanish nb_NONorwegian fiFinnish fr_FRFrench pl_PLPolish arArabic it_ITItalian ko_KRKorean es_ESSpanish nl_NLDutch etEstonian elGreek jaJapanese