PHP– tag –
-
GitHub Actions上でPHPUnitを並列に動作させて、CI実行時間を1/4にしました
こんにちは、普段PR TIMES STORY(以下STORY)の開発リーダーをしている岩下(@iwashi623)です。 今回は年末のコードフリーズ期間中に、CI実行時間の改善に取り組んだ件について話していこうと思います。 【背景】 STORYではバックエンドのPull Request作成をトリガーにして、CircleCi上でTestを実行していました。Testの実行時間は11〜13分ほどでした。 常々、このTestの実行時間が長すぎて開発体験の質が落ちているような気がしていました。 Testの実行時間が長すぎると何が問題になるのでしょうか? 以下がSTORY... -
Zero Downtime Migration from self-managed Elasticsearch to AWS OpenSearch at PR TIMES
Hello, I’m Duc, currently working on moving our on-premise Elasticsearch server to AWS OpenSearch Service. In this post, I will share how the old Elasticsearch server was replaced by a new one whose core is AWS OpenSearch Service. 【Introduction】 At the time I'm writing this blog, most of processes that require data from Elasticsearch have been replaced by the new AWS OpenSearch Service. But if we look back over the last few months, PR TIMES's search engine system was bas... -
PR TIMESにおけるメール送信機能をリファクタリングしました
こんにちは、開発本部のソンです。最近、PR TIMESのPHPバージョンアッププロジェクトに参加していて、PR TIMESにおけるメール送信機能のリファクタリングを行いました。これを通して、クラス設計やテストしやすいコードの書き方など様々な技術を身に付けました。 この記事では、なぜメール送信機能のリファクタリングを行ったかと、それを実装した話について書きたいと思います。 【なぜメール送信機能のリファクタリングを行ったのか?】 PR TIMESのPHPバージョンアップを行うにあたって、レガシーコード上の多く... -
シンボリックリンクを活用した無停止デプロイとファイル削除を実装しました
こんにちは、インフラチームテックリードの櫻井です。 今回は prtimes.jp のデプロイ改善の一環としてシンボリックリンクを使った無停止デプロイと rsync --delete によるファイル削除とデプロイスクリプトの速度改善を行ったので紹介します。 【シンボリックリンクを使った無停止デプロイ】 まず初めにシンボリックリンクを使った無停止デプロイについて紹介します。 今まで prtimes.jp のデプロイは実際に稼働しているアプリケーションのディレクトリにデプロイサーバーから直接 rsync コマンドを実行し、ファイ... -
企業ページの表示速度を改善しました
こんにちは、バックエンドエンジニアの江間です。 ある日、一通のメッセージが届きました。 ネタバレをすると、ある API が実行している SQL がスロークエリになっており、そのレスポンスが返ってくるまで DOM のレンダリングが行われていない事が原因でした。 この記事では、 New Relic Application Performance Monitoring (APM) を使ったスロークエリの特定と、それを実際にどうやって解決したのか、更に速度改善を行ってAPIの平均レスポンスタイムを約5.78倍にした話についてを書いていきます。 【まずは当た... -
PHPの改善 !== PHPのバージョンアップ
こんにちは、今日もがんばってるuzullaです。PR TIMESでPHP等と向き合い続け、色々なことを日々やっています。 さて、PHPコードの改善というと新しいバージョンのPHP対応と言われて久しいですが(私の感想)、今日のエントリのオチからいえば「PHP5でもよいプログラムは書ける」です。 【】 PR TIMESに入った当初「PHPのバージョンが古いからダメだ」というムードがありました(まあ、良くはないのだが)。それに対して私は「なぜ?」となったのを覚えています。 PHP7や8になって増えた機能は非常に多岐にわたり魅力... -
フォロワーを個人ユーザーへマイグレーションする処理を実装した話
こんにちは!開発本部・バックエンドエンジニアのSongです。 2月の下旬に個人ユーザー・フォロワー統合プロジェクトをリリースできました。 このプロジェクトでは以下の機能を提供しています ユーザーが自身の操作でFacebookフォロワーアカウントを個人ユーザーアカウントへマイグレーションできるユーザーがFacebook認証で個人ユーザーとして新規登録・ログインできるFacebookフォロワーユーザーは新規登録できなくなった。ただし、ログインはできる 最も重要なのはFacebookフォロワーが自身の操作でアカウントを... -
インターンでPHPのレガシーコード改善を行いました
はじめまして、PR TIMESの開発本部でインターンをさせていただいている神戸と申します。インターンでの業務としては主にPHPのレガシーコードのリファクタリングを行っています。 【はじめに】 自分は情報系の学校に通ってはいますが、授業で触る程度の規模でしかプログラミングをしていなかったです。そのため、大きなプロダクトに関わったことはなく、PHPには触れたことすらありませんでした。 さらに、PR TIMESの業務では、はじめて扱うものばかりでした。PHPにおいてはIDEとしてPhpStormが優秀であるため、はじ... -
「一人じゃない」と思えるチームビルディングが鍵 PHPバージョンアップのために欠かせない“精神論”
PR TIMESで定期開催されている社内勉強会。先日は執行役員CTO金子達哉主催で、社内のPHPバージョンアップkickoffイベントを開催しました。今回は本編後半に実施したCTO金子達哉、山岡広幸氏、uzulla氏の座談会の記録をお届けします。 【不平不満をオブラートに包んで、情報として共有していく】 uzulla:スライドでも話しましたが、まずは、精神論をします。僕は「PHPの新しい機能を使いたいから、絶対バージョンアップしてやる!」みたいな、無限のモチベーションにプッシュされる人間ですから、モチベーションは...
1