ブックマーク / tech.pepabo.com (4)

  • レガシーPHPプロダクトのアプリケーションアーキテクチャ改善活動(第1回/全3回) - Pepabo Tech Portal

    ブログサービス JUGEM でサーバサイドエンジニアの川島慧です。社内では @barie という名前で活動しています。 JUGEMは13年間続いてきたブログサービスです。そのコードは長い時間の蓄積とともに老朽化していて、かつそれを見直すこともないまま続いてきました。そのため数多くの問題を抱えており、ちょっとした施策を実施するのにもかなりの工数がかかったり、リリースしてから大量のバグが発見されるような状況が慢性的に続いていました。 今回は私がそんな問題をどう捉え、どう考え、どう改善して行ったのか、その活動内容を整理して全3回の記事にまとめていきたいと思います。その中で同じような問題にぶつかっていらっしゃる方に少しでも参考になるようなものがあれば幸いです。 JUGEMというサービス 前述の通りJUGEMは2004年2月から13年間続いているブログサービスです。実現技術はほぼPHP(一部Perl

    レガシーPHPプロダクトのアプリケーションアーキテクチャ改善活動(第1回/全3回) - Pepabo Tech Portal
  • レガシーPHPプロダクトのアプリケーションアーキテクチャ改善活動(第2回/全3回) - Pepabo Tech Portal

    こちらは前回の記事からの続きとなっております。 前回「上と下から同時に攻める」という方針を掲げ、そのうち上から攻める(アプリケーション全体で保証される仕組みの整備)の部分の改善をこの記事でご紹介していきます。 上から攻める 1. Composerを導入する アプリケーション全体で保証される仕組み作りにおいて最重要項目がComposerを導入することだと考えています。Composer自体が昨今のPHP開発においてほぼ必須のものになりつつありますし、なにより外部から優れたコードを入手して既存のコードと置換することで既存の問題の多くを解消できるようになります。 Composerの導入はPHPバージョン数さえ満たせていればすぐ出来ますし、導入方法は散々世に溢れている情報なので特には触れません。 2. HTTPリクエスト/HTTPレスポンスのクラス化 WebアプリケーションとはHTTPリクエストをI

    レガシーPHPプロダクトのアプリケーションアーキテクチャ改善活動(第2回/全3回) - Pepabo Tech Portal
  • レガシーPHPプロダクトのアプリケーションアーキテクチャ改善活動(第3回/全3回) - Pepabo Tech Portal

    こちらは前回の記事からの続きとなっております。 第1回の記事で「上と下から同時に攻める」という方針を掲げ、そのうち下から攻める(既存のロジックの切り出し)の部分の改善をこの記事でご紹介していきます。 下から攻める 1. 外部ライブラリをComposer管理へ移行 JUGEMの既存のコードの問題として、ダウンロードしてきた外部ライブラリ(主にPEAR)があちこちに配置され、どこまでが自分たちのコードでどこまでがそうではないのか分からなくなっている問題がありました。まずは自分たちで管理すべきコードのみが残るように外部ライブラリを整理していきます。 こちらは全ての外部ライブラリを根こそぎ調査してバージョンの特定を行い、Composer管理へ移動できそうなら全て移動していきました。 こちらの内容はYAPC::Asia Hachioji 2016 mid in Shinagawaにて発表した資料があ

    レガシーPHPプロダクトのアプリケーションアーキテクチャ改善活動(第3回/全3回) - Pepabo Tech Portal
  • グーペのPHPバージョンを5.2から7.1にアップグレードしました - Pepabo Tech Portal

    こんにちは、グーペグループエンジニア @hypermkt と技術部インフラグループ・シニアエンジニア @hfm です。半年に及ぶグーペのPHPアップグレード作業が2017年5月中旬に全て完了し、PHPバージョンは5.2から7.1になりました。今回の記事ではアップグレードの過程と効果について、ご紹介させていただきます。 はじめに 8年目のホームページ作成サービス「グーペ」 なぜ8年目のタイミングでアップグレードをしたのか アップグレード基方針 PHP5.2との後方互換性を維持する deprecatedの対応は優先度低め 事前準備 新旧両バージョンで継続的テスト より広範囲をカバーできるE2Eテストを重視 リアルタイムエラー検知 下位互換性のない変更点の修正 php7ccによる互換性の自動検知 MySQL関数の削除 preg_replaceへの置き換え PHP7.1用php.iniの作成 リ

    グーペのPHPバージョンを5.2から7.1にアップグレードしました - Pepabo Tech Portal
  • 1