-
素朴なSeederを作成してUnitテストの実装効率を上げた話
開発こんにちは、フロントエンドエンジニアのやなぎ( @apple_yagi )です。 先日、バックエンドで行っているUnitテストの実装効率を上げるために簡単なSeeder(テストデータを作成するツール)を実装したのでご紹介します。 【前提】 PR TIMESのバックエンドはノンフレームワークのPHPで実装されています。また、ORM(Object-Relational Mapping)ツールなども使用しておらず、PDO と TetoSQL を利用して社内で開発した PrSQL という class を用いてデータベースを操作しています。 Unitテストは、PHPUnit ... -
フロントエンドのGitHub Actions実行時間を削減するために取り組んだこと
開発こんにちは、フロントエンドエンジニアの小張です。GitHub Actionsの実行時間を削減するために取り組んだことについて紹介します。 【経緯】 PR TIMESではReactに関するコードを、monorepoとしてprtimes-frontendという1つのリポジトリで管理しています。 GitHub Enterprise Cloudプランでは月50,000分のGitHub Actionsを無料で実行することができますが、prtimes-frontendだけで7割近い時間を消費してしまっていました。またCIに時間がかかることで、Pull Requestを作成した後、10分近く待たないとコードレビュー... -
Renovateを使ってフロントエンドのバージョンアップを改善した話
開発こんにちは、フロントエンドエンジニアの小張です。Renovateを使ってフロントエンドのパッケージやライブラリのバージョンアップを改善したことについて紹介します。 PR TIMESではReactに関するコードを、monorepoとしてprtimes-frontendという1つのリポジトリで管理しています。 このリポジトリは作成されてから2年ほどしか経っておらず、使っているライブラリも比較的新しいため、今までバージョンアップの仕組みを特に整備していませんでした。 ただフロントエンドのライブラリはバージョンアップの頻度が多く... -
フロントエンドのLintツールをXOに統一した話
開発こんにちは、フロントエンドエンジニアのやなぎ( @apple_yagi )です。 PR TIMESではこれまでLintツールとしてESLintを使用していましたが、2023年9月からXOを使うようにし始めました。本エントリーでは、XOを導入した経緯や進め方、そして導入した結果についてご紹介します。 【導入をした経緯】 これまでPR TIMESでは .eslintrc.jsを自分たちで一から作り、ESLintルールを運用していました。しかし、その設定は最初期の環境構築時に色々なドキュメントを見ながら、つぎはぎで作成したものになってお... -
PR TIMESはPHPerKaigi 2024に協賛・登壇します
カンファレンスサーバーサイドエンジニアのshun (@shunsock)です。PHPerKaigi 2024が近づいてきました。私shunも前日祭に登壇予定のため発表準備を進めています。本日は、PR TIMESのPHPerKaigi 2024への協賛と登壇についてお伝えします。 PR TIMESは、PHPerKaigi 2024にプラチナスポンサーとして協賛いたします。また、同イベントに社内から3人のエンジニアが登壇予定です。さらに、パンフレットにも社内のエンジニアの記事が掲載される予定です。 【PHPerKaigiの紹介】 PHPerKaigi(ペチパーカイギ)は、PHPer、つまり、現在PHP... -
PHPカンファレンス北海道2024に参加しました!
勉強会こんにちは、 PHPerの宮崎(@sucalul)です。 先日開催されたPHPカンファレンス北海道2024にて、PR TIMESはゴールドスポンサーとして協賛し、スポンサーブースを出展しました。 https://developers.prtimes.jp/2023/12/28/phpcon_hokkaido_2024_pre/ このブログでは、当社メンバーの登壇やスポンサーブースの様子についてお伝えします。 【ブース出展】 弊社が普段から活用しているchatbot-uiを使いプロンプトでこちらで決めた割合であたりを出すガチャを用意し、「抽選」と送るとガチャの結果を返してもらう企画... -
private-isuのベンチマーカーをLambdaで実行する仕組みを公開しました
開発こんにちは、PR TIMESでバックエンド開発をしている宮崎(@sucalul)です。 先日、private-isuのベンチマーカーをLambdaで実行する仕組みを公開したので、そちらの紹介をします。 【公開リポジトリ】 https://github.com/PRTIMES/private-isu-bench-lambda 使い方についてはGitHubのREADMEを参照してください。 https://github.com/PRTIMES/private-isu-bench-lambda?tab=readme-ov-file#使い方 【背景】 private-isuのベンチマーカーはREADMEにEC2を起動する方法が書いてありますが、Lambdaで立ち上げる方が比較的... -
開発生産性可視化の意義とPR TIMESの事例 発表資料
勉強会こちらのエントリーは一人一人が意識する開発生産性 - 組織の当たり前基準と顧客価値を上げるために - connpassの発表資料です。 【自己紹介】 本名:金子達哉 株式会社PR TIMES開発本部長CTO 2021/4入社 達人が教えるWebパフォーマンスチューニング〜ISUCONから学ぶ高速化の実践(技術評論社)(通称:ISUCON本)の著者の1人 6章「リバースプロキシの利用」・7章「キャッシュの活用」・8章「押さえておきたい高速化手法」を担当 catatsuyというIDで各種SNSをやっています かたついと呼ばれることが多いです 【数... -
GitHub Actionsで実行されるPHPStanを改善した話
開発新卒一年目の永井です。今回はGitHub Actionsで実行されるPHPStanについて、レガシーなソースコードで改善されずにいたエラーを改善し、キャッシュを使えるようにして実行時間を大幅に削減できたことを書いていきます。 【はじめに】 弊社ではPHPStanをGitHub Actionsで回しています。タイミングはPull Requestにpushした時やPull Requestをメインブランチにマージした時です。これにより、通常は静的解析をしてコードの品質を維持してPull Requestをマージすることができます。しかし、これにはいくつか問題点が... -
PR TIMESにおける現在のQA改善活動
QA【】 こんにちは! PR TIMESの開発本部QAチームの安食です。私は2019年11月にQAチーム立ち上げメンバーとして、入社しました。 PR TIMESの QAチームの最近の活動をご紹介いたします。 【】 PR TIMESでは、QAチームと呼んでいます。 会社のValue Philosophyに、「私たちはmissionの実現に向けて、Most Valuable Teamであるために全力最善で相互に協力し合う。」があります。プロダクトリリースに関する一連の活動(企画、開発、テスト、運用)において、チームメンバーは協力し合うことで、品質活動にも一体となって...