開発– category –
-
PR TIMESフロントエンドのCI パイプラインを改善して、CI 処理時間とBillable Time を50%を削減した話
開発
ここんにちはPR TIMES開発本部のインターンの Chanoknan です。 PR TIMESについてフロントエンドのCI パイプラインを改善についてお話しします。 PR TIMESでは、Reactで書かれたすべてのフロントエンドのコードのコードはMonorepo として管理しています。 そのMonorepoのCI パイプラインは、システム全体のLint、Type Check、Test、Buildを行うようにCIパイプラインが設定されており、これにはかなりの時間がかかり、GitHub ActionsのBillable Timeにも影響を与えます。これを緩和するため、CI処理時間を減らすた... -
複数あるOpenSearchを統合してコスト削減した話
開発
こんにちは。2024年4月に新卒で入社したバックエンドエンジニアの岩瀬(@gantaso4704)です。 今回は、複数あるOpenSearchを統合してコスト削減をした話について書いていこうと思います。 【背景】 現在、Webクリッピングでは記事データをOpenSearchに保存し、検索機能で利用しています。 Webクリッピングとは、さまざまなサイトから記事をクロールし、ユーザーが設定したキーワードが含まれる記事をクリップすることで、メディア露出の調査や分析を行えるWebアプリケーションです。 Webクリッピングでは、二種類の ... -
インターンを通じて得た大切なこと PR TIMESでの一年間
開発
こんにちは。開発部でエンジニアインターンをしている伊藤優汰です。 今回は一年間インターンに参加したので本記事で振り返って行きたいと思います。 【参加に至った経緯】 私がインターンに参加するきっかけとなったのは、昨年の夏に開催されたPR TIMESハッカソンでした。 https://prtimes.jp/main/html/rd/p/000001300.000000112.html こちらのフィードバック面談でインターンを募集していると伺い、自分もインターンを探していたこともあってその場で参加したい旨を伝えました。 インターンではバックエンドを... -
バックエンドエンジニアから見たフロントエンド開発の魅力と学び
開発
こんにちは。開発本部で主にバックエンドの開発をしている ueeda です。 PR TIMES Web クリッピングにおいて、新機能「クリッププレビュー」を実装しました。この実装を通じて、初めてフロントエンド開発に取り組んだため、そこで得た学びを紹介したいと思います。 フロントエンド開発に挑戦したきっかけは、プライベートで React などを触っているうちに、プロダクト開発でもフロントエンドに関わることに興味を持ったためです。 PR TIMES Webクリッピング(以降Webクリッピング)とは様々なサイトから記事をクロ... -
プレスリリースのエディターでTiptapを使って新機能開発をした話
開発
こんにちは。フロントエンドエンジニアの桐澤(@kiririLee)です。PR TIMESはプレスリリースを配信する企業様がプレスリリースを作成・編集するためのエディターを提供しています。昨年の12月にUIリニューアルプロジェクトの一環でUIの更新と新機能が追加されたエディターがリリースされました。現在(2024年9月時点)PR TIMES上には、UIリニューアル前のエディターとUIリニューアル後のエディターが存在し、それぞれ現エディターと新エディターと呼ばれますが、この記事は新エディターに関しての記事です。 現エ... -
BigQuery Data Transfersをエンジニア全員に対して実行可能にした話
開発
こんにちは。2024年4月に新卒で入社したバックエンドエンジニアの筒井(@tsuttsun_wind)です。今回は、BigQuery Data Transfers(以下Data Transfers)をエンジニア全員が実行できるようにした背景や設定方法について紹介します。 【背景】 PR TIMESでは、Contents Delivery Network(CDN)にFastlyを採用しており、FastlyのアクセスログをAmazon S3に保存しています。 保存されたログは24時間に1回の間隔でS3からBigQueryに転送が行われますが、障害など問題が発生した場合には最新のアクセスログが必要になります。 ... -
BigQueryでCIDRを処理した話
開発
こんにちは、PR TIMESでインターンをしている笹山です。 この記事ではBigQueryでCIDRを処理する方法について解説します。 【背景】 インターンシップ中にアクセスログの分析を担当することになり、その過程でIPアドレスに関連するデータ処理を実施することになりました。 しかし、生のアクセスログをBigQueryで分析する際に問題に直面しました。BigQueryはIPアドレスはサポートしていますが、CIDR表記はサポートしていません。 公式ドキュメントによると: This function does not support CIDR notation, such as... -
Autify実行結果をリリース前に確認するフローをGitHub Actionsなどで省力化しました
開発
こんにちは!エンジニアリングマネージャー代行の小張です。 Autify実行結果の確認をGitHub Actionsなどを使って省力化したので、その背景やGitHub Actionsの設定をご紹介します。 【背景】 PR TIMESではリリース前のQAとしてAutify NoCode(以下Autify)を使ったE2Eテストを行っています。 Autifyの活用事例については以下をご覧ください。 https://developers.prtimes.com/2022/05/12/test-automation-refactoring/ リリース前QAとして8つのテストプラン(合計で4066個のステップ)を実行しており、1つのプラン... -
LibreChatをセルフホスティングして社内利用できるようにしました
開発
こんにちは、開発部でバックエンドエンジニアをしている田中 湧大(@Romira915)です。 今回は社内向けのAIチャットボットツールとしてOSSのLibreChatをセルフホストして公開したのでその紹介をします。 【LibreChatを新たにセルフホストした理由】 弊社では以前からOSSのchatbot-uiをCloud Runにセルフホストしていました。 https://developers.prtimes.com/2023/04/05/use-chatbot-ui/ しかしchatbot-uiはいくつかの課題がありました。 運用していたバージョン(ver1系)ではGPT-4oやGPT-4o miniなどの最新のモ... -
入力項目の多いフォームをReactにリプレイスする際に工夫したこと
開発
こんにちは、フロントエンドエンジニアのやなぎ( @apple_yagi )です。 先日、PR TIMES上で企業アカウントを作成する際に情報を入力する企業登録申請フォームをReact + Viteにリプレイスしました。 https://prtimes.jp/main/registcorp/form 本エントリーではリプレイスするにあたり、使用したライブラリや、工夫した点などをご紹介します。 【企業登録申請フォームをリプレイスする難しさ】 企業登録申請フォームは入力項目が30項目あり、データ量が多いフォームとなっています。このようなフォームを...
