永井陽也– Author –
23卒のバックエンドエンジニアです。最近はフロントエンドやインフラにも興味が出てきました。
-
【Tips】PostgreSQLで安全にNOT NULL制約を追加する
開発
永井陽也こんにちは、バックエンドエンジニアの永井です。今回は本番運用されているPostgreSQLのテーブルのカラムに対して、安全にNOT NULL制約を追加する流れを書いていきます。 【背景】 以前、バックエンドの実装していたときに「このカラムはNOT NULL」と思い込んでコードを書いてしまい、インシデントを起こしてしまったことがありました。また、そのカラム以外にも意味的には必須なのに、NULL許容のままになっているカラムがいくつか見つかりました。テーブルのスキーマ定義をちゃんと確認することも大切ですが、NOT... -
【テーブル設計】非正規化だったテーブルを正規化した話
開発
永井陽也メディアリレーションチームの開発リーダーをしている永井です。12月5日にメディアリストの管理画面をリニューアルしました。リニューアルに伴い、メディアに紐付くカテゴリの改善があったのですが、テーブル構成が非正規化でありいくつか問題がありました。今回は、非正規化だったテーブル構成を正規化して改善した話を書いていきます。 【はじめに】 PR TIMESには各種メディアが登録されていて、プレスリリース配信をする際に配信先として選択できるメディアのリスト(以降メディアリストと呼びます)を作ること... -
【責務の分離】複数の関心が入ったルーティングファイルの改善
開発
永井陽也メディアリストのリニューアルプロジェクトで開発のリーダーをやっている永井です。メディアリストとはPR TIMESの企業管理画面にある機能で、プレスリリースの配信先リストを管理するところです。主なリニューアル内容についてはプレスリリースも出ているのでぜひご覧ください! https://prtimes.jp/main/html/rd/p/000001477.000000112.html 【前提】 今回のブログはPR TIMES特有の内容も含まれるので最初に前提として書いておきます。 PR TIMESのバックエンド環境について 使っている言語はPHPです。また、フレ... -
Gmailの送信者ガイドラインへの対応: ワンクリック解除機能の導入
QA
永井陽也皆さんこんにちは、バックエンドエンジニアをしている永井です。Gmailの「メール送信者のガイドライン」が更新され、ユーザーがワンクリックで解除できる機能を必要とする旨が示されました。これに対応するために一部メールでワンクリック解除機能を導入しましたので、今回はその実装方法とリリース前後で苦労した話について書いていきます。 【ワンクリック解除機能の実装について】 ワンクリック解除機能を実現するにあたって、メール送信時に新たに付与したList-UnsubscribeヘッダーとList-IDヘッダーについて... -
GitHub Actionsで実行されるPHPStanを改善した話
開発
永井陽也新卒一年目の永井です。今回はGitHub Actionsで実行されるPHPStanについて、レガシーなソースコードで改善されずにいたエラーを改善し、キャッシュを使えるようにして実行時間を大幅に削減できたことを書いていきます。 【はじめに】 弊社ではPHPStanをGitHub Actionsで回しています。タイミングはPull Requestにpushした時やPull Requestをメインブランチにマージした時です。これにより、通常は静的解析をしてコードの品質を維持してPull Requestをマージすることができます。しかし、これにはいくつか問題点が... -
PR TIMESはPHPカンファレンス2023に協賛・登壇します!
勉強会
永井陽也こんにちは、 最近PHPに触れ始めた永井です。 PR TIMES は PHPカンファレンス2023 にゴールドスポンサーとして協賛・スポンサーブースの出展をします。 そして、社内から2名のエンジニアが登壇します! 【PHPカンファレンスとは】 2000年より年に一度開催されている日本最大のPHPのイベントです。 WEBサーバにインストールされているシェア8割を超える人気言語のイベントとして、初心者から上級者まで幅広い層のWEB系エンジニアが参加します。 【開催概要】 日時:2023年10月08日(日) 会場:大田区産業プラザPiO.... -
proc_open()の標準入出力を使ってコンテナ上でコマンドを実行する
開発
永井陽也新卒1年目、バックエンドを担当している永井です。最近色々学ぶことができたのでここに共有したいと思います。また、このブログで少しでも誰かの役に立てたら嬉しいです。 (本ブログに出てくるコードは正しく動かないです。説明用に伝えたいことしか書いていないのでご了承ください。) 【背景】 SSRF対策の一環でコンテナ上でコマンドを実行するようにしていました。そこで、コンテナ経由で実行したコマンドの標準入出力を扱ったので、その手法を紹介します。 https://developers.prtimes.com/2023/06/13/preven... -
日本CTO協会の勉強会でPR TIMESの新卒メンバー全員がLTをしました!
勉強会
永井陽也【若手エンジニア交流会 supported by 日本CTO協会とは】 新卒やインターン、もしくはソフトウェアエンジニアとしてキャリアチェンジしたもののまだ経験が浅い方、その他若手と自認する方が参加する集まりです。今回の勉強会は第三回目の開催となっています。 今回の勉強会について詳細は以下のリンクを参考にしてください。 https://ctoa-wakate-lt-3.peatix.com/view (ちなみに、第二回目はPR TIMESのオフィスにて開催しています!) 【勉強会までの発表練習】 LT枠は8人なのですが、なんとPR TIMESからは新卒1... -
PostgreSQLのデータを削減できた話
開発
永井陽也はじめまして、PR TIMESの開発本部でインターンをさせて頂いている永井と申します。現在はパフォーマンス改善のタスクをしています。 【はじめに】 自分は今回のタスクをやるまでSQLをあまり書いたことがありませんでした(ORマッパーしか使っていませんでした)。しかし、今回のタスクをやることで直接SQLを書くことが多くなりSQLはもちろんPostgreSQLの構造はどうなっていて、何がメモリを消費しているかなどについての理解も深まりました。本当に良い経験をさせて頂きました。 【なぜ削減することになったのか...
1
