-
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で実行することにより、セットアップのスピードを向上させます。また、日本語の前処理である正規化は主に正規表現を用いますが、中には文字コードを指定する必要が... -
type エンジニア転職フェアにて特別講演を行いました
勉強会https://type.jp/s/fair/e/ 2023/1/14に行われたtype エンジニア転職フェアにて特別講演を行いました。資料はこちらです。 https://speakerdeck.com/catatsuy/output-method 以前エンジニアtypeにてインタビューを受けたことがあり、それが今回の登壇オファーに繋がりました。このようにアウトプットすることで取材に繋がり、それがまた別の取材や登壇に繋がることもあるという実例として捉えてもらえればと思います。 https://type.jp/et/feature/19168/ タイトルは「キャリアを充実させる『カギ』に! PR TIMES ... -
デジタル創作同好会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/ この時はまだ新機能リリースが少なく、本当に戦える組織になり、基盤ができてきたのかが社外からは分からなかったと思います。今年はその疑問を払拭できた年になったのではないかと思っています。 年始から企業ページのプレスキット機能/サムネイル画像の高画質化/個人ユーザー・フ... -
アクセシビリティ勉強会を実施しました。
勉強会こんにちは!PR TIMES 開発本部フロントエンドエンジニアの岩元 (@yoiwamoto) です。 先日、フロントエンドのアドバイスしていただいている sensui さん (@1000ch) に、アクセシビリティの基礎について話していただく勉強会を実施しました。 【きっかけ】 PR TIMES のフロントエンドチームでは、週に2度のフロントエンド定例で、日頃の実装でのつまづきや知見の共有から、フロントエンド全体の設計やリアーキテクチャの方向性など、広く議論を行なっています。 フロントエンド定例についてはぜひ以下の記事をご覧...