開発– category –
-
ESLint の設定を Flat Config にして XO のメジャーバージョンを上げました
開発
こんにちは、フロントエンドエンジニアの桐澤(@kiririLee)です。 PR TIMESではリファクタリングデーを月に一回開催しています。今回そのリファクタリングデーを活用してXOのバージョンを v0.60.0 から v1.2.2 に上げたためやったことを紹介します。 XO は2016年から開発されており歴史の長いライブラリですが、メジャーバージョンが上がるのは初めての事で ESLint の Flat Config 対応が主な修正として含まれていました。 【PR TIMESフロントエンドのディレクトリ構成】 PR TIMES のフロントエンドはモノレポで... -
OpenSearchのMulti-search APIによるデータ処理のパフォーマンス改善
開発
皆さんこんにちは!PR TIMESの開発部のThaiです。今回はOpenSearchのMulti-Search APIを利用してWebクリッピングのクリップ調査のパフォーマンスを改善したことについて話します。 https://prtimes.jp/webclipping/service クリップ調査とは、設定したキーワードを含む記事を自動で収集する調査です。調査はクリップ作成後に開始し、期間は最長1年まで指定可能。調査結果はグラフや記事一覧で確認・ダウンロードできます。 https://tayori.com/q/prtimes-faq/search/クリップ調査 クリップ調査の収集された結果は... -
WebクリッピングシステムにおけるphpQueryからSymfony DomCrawlerへの移行
開発
WebクリッピングシステムにおけるphpQueryからSymfony DomCrawlerへの移行 -
PR TIMESはフロントエンドカンファレンス北海道2025に協賛します #frontendo
開発
こんにちは!PR TIMESフロントエンドエンジニアの古園(@miyabin4113)です。北海道の好きな食べ物は味噌ラーメンです。 今回、PR TIMESはフロントエンドカンファレンス北海道2025にシルバースポンサーとして協賛します。 【フロントエンドカンファレンス北海道2025について】 フロントエンドカンファレンス北海道2025はWebフロントエンド領域に関心のある参加者を対象とした技術イベントです。 2025年9月6日(土)に北海道札幌市のエア・ウォーターの森にて開催されます。 https://www.frontend-conf.jp CM 会場... -
メディアリストのUIリニューアル後に発生したフロントエンドのバグとその解決
開発
こんにちは。エンジニアの松浦です。 私は現在、フロントエンドエンジニアとしてメディアリストの機能実装やバグ修正を行っています。今回は新UIのメディアリストがリリースされて半年経ち、今までに出てきたフロントエンドのバグやどのようなものを修正してきたかについて書いていこうと思います。 【メディアリストとは】 メディアリストは、プレスリリースをどのメディアに配信するか取りまとめたリストのことです。企業のユーザーはあらかじめプレスリリースを送りたいメディアを選び、それをリストとして管理... -
RecoilからJotaiのatomFamilyに移行したら無限レンダリングが発生した話
開発
こんにちは、フロントエンドエンジニアのやなぎ(@apple_yagi)です。 先日、企業ページを Recoil から脱却したエントリーを公開しました。 https://developers.prtimes.com/2025/07/18/company-page-recoil-migration/ このエントリーでも紹介した通り、Recoil を useMemo、useContext、TanStack Query、Jotai に移行しました。その後、Recoil の atomFamily を Jotai の atomFamily に移行したことによる無限レンダリングの事象を発見し、修正したのでご紹介します。 【発生した事象】 Jotai の atomFamily へ R... -
HTML解体新書の輪読会を開催し、完走しました
開発
こんにちは。PR TIMESでフロントエンドエンジニアをしている夛田(@unachang113)です。 今回はPR TIMES社内でHTML解体新書の輪読会を開催し、無事完走したので輪読会の進め方や効果について話そうと思います。 【輪読会を開催した経緯】 PR TIMESではエンジニアによってHTMLに対する知識量が人によって差があり、意味付けが間違ったマークアップやネストできる要素等がレビューで指摘できない課題がありました。 ネストできる要素はMarkuplintの導入で改善できましたが、意味付け等の知識に関しては個々人に委ねら... -
PostgreSQL 15のNULLS NOT DISTINCTで変わるUNIQUE制約とNULLの扱い
開発
こんにちは、バックエンドエンジニアの中山です。 今回はPostgreSQL 15から利用できる「NULLS NOT DISTINCT」オプションを紹介します。 【背景】 NULLS NOT DISTINCTについて調べ始めたきっかけは、UNIQUE制約がついているカラムに対し、UNIQUE 制約違反のエラーが発生したことでした。具体的には、「INSERT 前に SELECT で存在を確認し、なければ INSERT する」という実装により、意図しないタイミングで重複エラーが発生していました。 というのも、INSERT がコミットされる前に別のトランザクションが同じデー... -
企業ページにおけるRecoilからの段階的移行
開発
こんにちは、フロントエンドエンジニアのやなぎ( @apple_yagi )です。 PR TIMESのフロントエンドでは、これまで状態管理にRecoilを利用してきました。しかし、Recoilは現在アーカイブされており、React19にも対応していません。そのため、現在Recoilからの脱却を進めています。昨年、弊社の桐澤が以下のスライドでRecoil脱却の進め方について紹介していましたが、その後の進捗としてRecoilの依存が深いページの脱却を完了することができたのでご紹介します。 https://speakerdeck.com/kirik/recoilwob... -
自動選択リストをリニューアルしてみえた、開発の難しさと楽しさ
開発
こんにちは、PR TIMESでインターンをしている勝間田(@Sho_26_ts)です。 今回は、「メディアリレーション」プロジェクトの一員として担当した「自動選択リスト」機能のリニューアルについてご紹介します。2025年6月23日にリリースしたこのリニューアルでは、他のメディアリスト作成・編集画面と同じ仕様・デザインに統一しました。加えて、これまでできなかった検索や並び替えも可能となり、より使いやすい画面へと進化しています。 また、これに先立って2024年12月5日にメディアリストの管理画面もリニューアル...
