開発– category –
-
SendGridとAWSを使って、メールを送信するアプリケーションを作成しました
こんにちは、普段PR TIMES STORY(以下STORY)の開発リーダーをしている岩下(@iwashi623)です。 今回はSQS とLambdaを使って、AWS Fargate上で動作しているLaravelからメールを送信する基盤を作成したことについて書いていきます。 【なぜ作るのか】 2/21にPR TIMES Webクリッピングの正式版がリリースされました。 https://prtimes.jp/main/html/rd/p/000001256.000000112.html 正式版をリリースするにあたって、ユーザーにメールを送信したいという要件が生じました。PR TIMES WebクリッピングはFargate上にデプ... -
Webpack から Vite に段階的に移行しました
こんにちは。PR TIMES フロントエンドエンジニアの岩元 (@yoiwamoto) です。 PR TIMES ではいくつかのページが React で実装されており、Webpack でビルドを行っていました。 今回は、一部のページを除いてこの Webpack を Vite へ置き換えたので、その経緯や結果を共有します。 【まとめ】 ビルド時間が長いことが課題で移行を行い、結果として開発体験・デプロイ時間等が大幅に改善されました。 開発環境のみの移行 → フィーチャートグルでの本番試験 → リリース → Webpack の廃止と、移行は段階的に進めました... -
PR TIMES フロントエンドにおけるプレビュー環境の自動生成
こんにちは。PR TIMES のフロントエンドエンジニアをしています岩元 (@yoiwamoto) です。 今回は、先日改善を行ったフロントエンドのプレビュー環境の自動生成の構成について紹介します。 【PR TIMES のフロントエンド構成】 本稿での「フロントエンド」は、React 実装にリプレイスして現在進行形で機能追加・改修が行われているページのことを指しており、これらのページはどれも SPA 構成をとっています。 https://developers.prtimes.jp/2021/11/10/replace-react/ そのため、ここでいう「環境」の実態はバンド... -
E2EテストのAPIリクエストを全てモックした話
こんにちは。開発本部でインターンをしている桐澤(@kiririLee)です。今回、「PR TIMES Webクリッピングβ版」 というプロジェクトのフロントエンドで実装されていたE2Eテストに対して、APIリクエストを全てモックするように修正を行ったためその取り組みを紹介したいと思います。 【Webクリッピングβ版 について】 Webクリッピングβ版とは、WEB上の記事を調査してくれる機能です。キーワードを指定するだけで調査結果を報告をしてくれるため自社の記事掲載状況や社会動向の分析に役立てられます。 【フロントエン... -
日本語機械学習開発環境の作成
PR TIMES開発本部インターンの土屋です。私は現在データ分析インターンとしてプレスリリースデータをはじめとする社内のデータ解析を行なっています。 今回は、機械学習関連の開発環境を構築したいと思います。後述しますが、日本語の機械学習の開発環境には複数のソフトウェアをセットアップする必要があります。これらの設定をDockerやShell Scriptで実行することにより、セットアップのスピードを向上させます。また、日本語の前処理である正規化は主に正規表現を用いますが、中には文字コードを指定する必要が... -
デジタル創作同好会traPさんと社内ISUCONイベントを開催しました
こんにちは、22新卒で、PR TIMES開発本部でバックエンド開発をしている宮崎です。 先日、デジタル創作同好会traPさんと、社内ISUCONイベントを開催しました。今回は、その準備で作成したLambda関数の紹介をします。 「ISUCON」は、LINE株式会社の商標または登録商標です。 【当日の様子】 会社にtraPの方々をお招きし、オフラインで行いました。traPからは20名以上参加いただきました。今回使用した問題はこちらです。 https://github.com/catatsuy/private-isu 最終的に30万点を超えたチームが2つあり、398,912点... -
GitHub Actions上でPHPUnitを並列に動作させて、CI実行時間を1/4にしました
こんにちは、普段PR TIMES STORY(以下STORY)の開発リーダーをしている岩下(@iwashi623)です。 今回は年末のコードフリーズ期間中に、CI実行時間の改善に取り組んだ件について話していこうと思います。 【背景】 STORYではバックエンドのPull Request作成をトリガーにして、CircleCi上でTestを実行していました。Testの実行時間は11〜13分ほどでした。 常々、このTestの実行時間が長すぎて開発体験の質が落ちているような気がしていました。 Testの実行時間が長すぎると何が問題になるのでしょうか? 以下がSTORY... -
PR TIMES開発本部2022年振り返り
PR TIMESでCTOをやっている金子 (@catatsuy) です。 昨年は私がCTOとして入社してから半年ほどで、まず戦える組織にすること、その基盤を作ることが中心でした。 https://developers.prtimes.jp/2021/12/28/cto_activities_2021/ この時はまだ新機能リリースが少なく、本当に戦える組織になり、基盤ができてきたのかが社外からは分からなかったと思います。今年はその疑問を払拭できた年になったのではないかと思っています。 年始から企業ページのプレスキット機能/サムネイル画像の高画質化/個人ユーザー・フ... -
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... -
CI/CDツールからS3へ静的ファイルをエクスポートするための設定
こんにちは、普段PR TIMES STORY(以下STORY)の開発リーダーをしている岩下(@iwashi623)です。 皆さん、CI/CDツールを使用していますか? 筆者が開発を担当しているSTORYでは、GitHub ActionsやCodePipeline(CodeBuild、CodeDeploy)を使用して各環境にアプリケーションのコードをデプロイしています。今回はCI/CDツールからS3にファイルをエクスポートしたいという要件に対して実装した変更について述べていこうかと思います。 【背景】 本題の設定内容に入る前に、STORYの現状と今回の改修を入れるようにした...