開発– category –
-
PHPStanのレベルを変更することなく引数の型検査ルールを追加した話
開発
皆さんこんにちは、開発本部でインターンをしている石田です。 今回はバックエンド側で導入しているPHPStanというツールにレベルを変更することなくルールを追加した話とその方法についてお話します。 【PHPStanとは】 PHPStanはPHPのコードに対して実行時エラーや問題となるような部分をコードを実行せずに検査できるツールです。設定をすることでエディタ上で警告を行ったり、CIで解析を行って警告を出すことができるようになり、人間がプログラム上の問題を見落としてしまうことを防げます。 レベル設定につい... -
PR TIMES のトップページ のアクセシビリティ改善をしました。
開発
こんにちは PR TIMES開発本部のインターンの Chanoknan です。 PR TIMES のトップページのアクセシビリティ改善に取り組みました。具体的にどのような改善を行ったのかについてお話しします。 【アクセシビリティとは?】 アクセシビリティとは、ウェブサイトやアプリケーションをすべての人が利用できるようにすることを指します。ここで「すべての人」とは、視覚や聴覚に障害のある人、高齢者、身体的な制約のある人、さらには一時的な障害(例:腕を骨折している、騒がしい場所にいる)を持つ人々も含まれます... -
Gmailの送信者ガイドラインへの対応: ワンクリック解除機能の導入
開発
皆さんこんにちは、バックエンドエンジニアをしている永井です。Gmailの「メール送信者のガイドライン」が更新され、ユーザーがワンクリックで解除できる機能を必要とする旨が示されました。これに対応するために一部メールでワンクリック解除機能を導入しましたので、今回はその実装方法とリリース前後で苦労した話について書いていきます。 【ワンクリック解除機能の実装について】 ワンクリック解除機能を実現するにあたって、メール送信時に新たに付与したList-UnsubscribeヘッダーとList-IDヘッダーについて... -
OpenSearchの検索速度を向上させる話
開発
皆さんこんにちは!PR TIMESの開発部のThaiです。今回はどうやってOpenSearch検索速度を改善したかについて話します。 【はじめに】 現在、Webクリッピングでは記事データをOpenSearchに保存して検索機能で使っています。 Webクリッピングとは、さまざまなサイトから記事をクロールし、ユーザーが設定したキーワードが含まれる記事をクリップすることで、メディア露出の調査や分析を行うことができるWebアプリケーションです。 Webクリッピングではユーザーが複数のキーワードを同時に検索できるようになっており... -
プレスリリースを受信したいメディア関係者向けのマイページをリプレイスしました
開発
こんにちは、開発チーム・バックエンドエンジニアのSongです。 最近、プレスリリースを受信したいメディア関係者(メディアユーザー)向けのマイページを PHP + Smarty + jQuery から PHP + React にリプレイスしました。 メディアユーザーのマイページ - メイン機能 このプロジェクトではリーダーとして挑戦しました。今回は、プロジェクトをどのように進行したか、そして初めてリーダーとして挑戦してうまくできたことや悔しかったことについてシェアしたいと思います。 ちなみに、PR TIMESのメディアユーザーに... -
PR TIMESのトップページをNext.jsにリプレイスしました
開発
こんにちは、フロントエンドエンジニアのやなぎ( @apple_yagi )です。 プレスリリース掲載ページ、キーワード検索ページに続き、PR TIMESのトップページを PHP + Smarty + jQuery から Next.js(Pages Router)にリプレイスしました。 https://developers.prtimes.com/2023/12/13/replace-press-release-page-with-nextjs/ 本エントリーではトップページをリプレイスするにあたり、使用したライブラリや、キャッシュの設定などについてご紹介します。 【SP用ページで使用するカルーセルライブラリの選... -
Radix UIを利用してエディターのコンポーネントを実装した話
開発
こんにちは。2023年の7月に中途で開発本部に入社しました。フロントエンドエンジニアの夛田(@unachang113)です 昨年12月にリリースされたPR TIMESの新エディターの開発でRadix UIを使用したので、本エントリーではどのように活用したかを紹介します。 【Radix UIとは】 Radix UIはReact製のUIライブラリです。現在はThemesとPrimitivesの2つを提供されています。Themesの場合、styleが予め設定されていて、自分たちが実装したいUIとフィットしない場合が多いため、PR TIMESではheadlessUIのPrimitivesの方を採用し... -
LeagueCSVで日本語ヘッダーのCSVファイルを読み込む
開発
こんにちは、バックエンドエンジニアでPHPerの江間(meihei)です。 今回は、 CSV ファイルのリーダーとして LeagueCSV を使用したので、その実際に導入した時の実装方法についてご紹介します。 この記事は meihei GW アドベントカレンダー2日目の記事です。 meihei GW アドベントカレンダーとは? meiheiがゴールデンウィークの5月1日〜5日までの間に毎日記事を投稿する企画です。勝手にやっています。 1日目 https://developers.prtimes.com/2024/05/01/had-a-good-time-at-phpcon-odawara-2024/ 【LeagueCSVと... -
PR TIMESにおけるPlaywrightを用いたVisual Regression Test
開発
こんにちは、フロントエンドエンジニアのやなぎ( @apple_yagi )です。 昨年、Integration TestツールをCypressからPlaywrightに移行しました。その際、Visual Regression Test(以下、VRT)を始め、1年ほど経ったので弊社で行っているPlaywrightを用いたVRTの運用方法についてご紹介します。 https://developers.prtimes.com/2023/04/10/migrate-from-cypress-to-playwright 【前提】 PR TIMESは、React + Vite製のアプリケーション(主に企業様の管理画面)とNext.js製のアプリケーション(SEOが重要... -
Fluentdプラグインの暴走でストレージが枯渇しかけた話
開発
こんにちは、インフラチームテックリードの櫻井です。 今回はFluentdプラグインの暴走によってサーバーのストレージが枯渇しかけた話について紹介したいと思います。 【アラート通知は突然に】 とある土曜日の夕方ごろ、1件のアラート通知がスマホに届きました。 “Filesystem % 90.19% > 90%” どうやら本番環境のバッチサーバーのストレージ使用率が90%を超えてしまったようです。 直近のストレージ使用量の推移を見てみると、朝の10時ごろからものすごいペースで増え続けており、あと30分ほどでストレージが枯...
