FORCIA CUBEフォルシアの情報を多面的に発信するブログ

エンジニアが選ぶ、2022年イチオシ技術記事 in FORCIA CUBE

2023.03.24

テクノロジー PostgreSQL エンジニア

こんにちは。新卒4年目のエンジニアの谷井です。

自社プロダクトの開発をしながら、有志の技術広報チームでリーダーをしています。

先日このFORCIA CUBEにて、2022年入社社員が選ぶ「『フォルシアを知る』にあたって参考になったブログ」を紹介させていただきましたが、本日はエンジニアに、「2022年 なるほど!!と思ったFORCIA技術記事」についてアンケートをとってみました!

今回は特に推された8つの記事について、アンケートで寄せられたコメントとともに、記事を要約して紹介していきたいと思います。

高速検索のプロたるフォルシアエンジニアたちが、特にどんな技術に興味関心を持っているか、お伝えできればと思います。

なるほど!!と思ったFORCIA CUBE 技術記事たち 8選

  1. AWS Amplify + Next.js + TypeScript で作るCognitoユーザープールのアカウント管理アプリケーション
  2. GitLab CIで社内複数プロジェクトをrenovateする
  3. 私が営業からエンジニアに転向した訳、できた訳
  4. 正規表現専門家がエンジニアになって正規表現がわからなくなった話
  5. PostgreSQLのシステムカタログをのぞいてみよう
  6. PostgreSQLの移動集約モードについて
  7. GitLab CIでブランチをオートマージ(自動追従)させる
  8. FORCIA Meetup #4 PostgreSQL vs Elasticsearch -ファセットカウント編-



【1】AWS Amplify + Next.js + TypeScript で作るCognitoユーザープールのアカウント管理アプリケーション

イチオシ技術記事_01.png

記事概要

  • Amazon Cognitoユーザープールのユーザーを管理するアプリケーションを、AmplifyでNext.jsをホスティングして実装した。
  • Cognito user pools APIを利用して、AWSのコンソール上ではなく、実装したアプリ画面上で管理対象のユーザープールへのユーザーの作成・更新・削除が可能に。

エンジニア社員コメント抜粋

  • 目標アプリや構成図、ソースコードなどをふんだんに交えて丁寧に解説されており、この記事を真似てすぐにアカウント管理アプリケーションが作れそうです。
  • AWSのユーザプールを使うことによって、アカウントの管理(認証権限の管理やユーザーグループ概念など)が簡単になること、ラップしてあげることでより使いやすい形で提供できることが示されていてとても勉強になりました。

フォルシアが誇る技術統括部長の武田さんによる、アカウント管理アプリケーションの作成記事です。実行コマンドや実際の画面とともに、関連技術についても丁寧に解説されているとてもわかりやすい記事です。個人的にはさらっと書かれているAmplifyの威力も衝撃的でした。


【2】GitLab CIで社内複数プロジェクトをrenovateする

イチオシ技術記事_02.png

記事概要

  • ライブラリの更新を自動化するためのツールrenovateを、Gitlab CIを活用する形で導入した。
  • renovate対象のプロジェクトを柔軟に取得するための機能をTypeScriptで実装し、社内の他プロジェクトでも低コストで導入できる仕組みを作成。

エンジニア社員コメント抜粋

  • groupにprojectを入れて管理するという発想が「なるほど!」と思いました。
  • renovateという概念を初めて知ることができました。社内での実際の活用事例からもその便利さを体感できました。

新卒5年目の籏野さんの記事です。社内では「ちょっとした不便を技術導入によって解消し定着させること」が「ハタナイズ」という慣用句になっているほど改善を重ねている籏野さんですが、renovateもただ「使ってみる」だけでなく、「それをまわりの人にも使いやすくする」という気配りがこの記事からも感じられますね!


【3】私が営業からエンジニアに転向した訳、できた訳

イチオシ技術記事_03.png

記事概要

  • フォルシアに総合職として入社し2年目にエンジニアへと転向した新卒社員の竹下さんが、その経緯や心境について詳しく語った記事。
  • 営業を経験してエンジニアとなったことで、プロダクトに対する両者の視点の違いに自覚的になることができた。

エンジニア社員コメント抜粋

  • 「営業からみたエンジニア」を意識しながら仕事に取り組もうと思えました。
  • 一般的なIT企業と異なり、営業・技術に垣根を設けないフォルシアの特徴を、当事者として具体的な事例としてわかりやすく表現されていると感じました。
  • 営業視点、エンジニア視点、両面から物事を分析されていてとても参考になりました。

新卒2年目となる竹下さんがキャリアについて語った記事です。フォルシアでは営業からエンジニアへの転向は初めての例ではありましたが、それを実現できた竹下さんの行動力や、周囲のサポートについて丁寧に書かれており、社内の職種やキャリアについてイメージを膨らませてもらいやすい記事だと感じます!


【4】正規表現専門家がエンジニアになって正規表現がわからなくなった話

イチオシ技術記事_04.png

記事概要

  • 大学の数学科で正規表現を研究対象としていたエンジニアが、プログラミング言語における正規表現について考察した。
  • 数学的な「正規表現」の定義に始まり、プログラミング言語における正規表現との目的の違いに触れ、具体例としてPostgreSQLの正規表現の記法や用例について解説する。

エンジニア社員コメント抜粋

  • なんとなくの理解で止まっている正規表現に対して、数学的な立場から詳しく説明していただいてよかったです。
  • 正規表現大好きなので大好きな記事です。

新卒1年目の宮本さんによる記事です。あらためて問われると難しい正規表現について、厳密な定義や具体例も交えたわかりやすい解説はもちろん、ついつい引き込まれる軽妙な語り口も必見です。自分は正規表現でいつも迷って結局調べてしまうので、ありがたくこの記事をブックマークしました。


【5】PostgreSQLのシステムカタログをのぞいてみよう

イチオシ技術記事_05.png

記事概要

  • RDBMSのメタデータや内部的な情報が格納される「システムカタログ」について、特にPostgreSQL固有のスキーマについて紹介する。
  • 例として、pg_class からはテーブルやインデックスのoidをはじめとするメタ情報を、 pg_available_extension_versions からは導入済み拡張機能に関する情報を、pg_stats からはチューニングにも活用可能な統計情報を得ることができる。

エンジニア社員コメント抜粋

  • 奥深いシステムカタログについてわかりやすくまとめられており、勉強する上での指針となりました。
  • 「プランナが見積もりに使っているテーブルを見れば、explainで吐かれた実行計画の根拠となる値が確認できる」という説明には特に納得感がありました。
  • PostgreSQL のシステムカタログに含まれる情報の紹介だけでなく、実際の開発で使えた機能を自らの経験を通して紹介していたり、ためになる補足情報も随所に散りばめられているため、+αで勉強になる素晴らしい記事だと感じました。

エンジニアの横串組織である「Postgresタスクフォース」のリーダーでもある吉田さんによる記事です。公式ドキュメントから読み解いていくにはなかなかハードルが高いシステムカタログについて、実際のクエリや活用事例も盛り込んだとても読みやすい解説記事です。実アプリのDBのpg_catalogを覗いてみたくなりますよ。


【6】PostgreSQLの移動集約モードについて

イチオシ技術記事_06.png

記事概要

  • PostgreSQL内部で使用される移動集約モード(アルゴリズムによる高速化)について紹介。
  • 値を足し合わせていくような具体的なクエリについて、移動集約モードの有無に相当する2種類の解法とその計算量を示し、実際に移動集約モードが適用されるクエリとされないクエリの実行速度を比較する。

エンジニア社員コメント

  • 移動集約モードはPostgresの内部処理のため普段意識していませんでしたが、そのような内部処理が行われていることに記事を読んで気が付き、なるほど!! と思いました。
  • PostgreSQL 内部で使われている高速化手法が興味深いのはもちろんですが、移動集約モードが使われる・使われない条件も分かりやすく解説されていると思います。

こちらも宮本さんによる記事です。Postgresでの内部処理の知識は、持っているとクエリの設計時やチューニングなどで役に立つ場面が唐突に訪れる一方で、わかりやすく必要に迫られることは少なく勉強の契機が得づらいものです。フォルシアでは社内のエンジニアが読みやすく書いてくれた記事によって、こういった引き出しを増やすことができて、私自身もとても助かっています。



【7】GitLab CIでブランチをオートマージ(自動追従)させる

イチオシ技術記事_07.png

記事概要

  • GitLab CIを用いて「あるブランチに入る変更を、自動で別のブランチに取り込む」仕組みを実現した。
  • 各プロジェクトからはincludeする形で簡単な記述だけでCIを実行できるようにテンプレート化を行った。

エンジニア社員コメント抜粋

  • template化を活用した事例で、活用の幅が広いことに素晴らしさを感じました。
  • webコネクト検索領域にも一部オートマージが導入されていてとても助かっています。中の仕組みまでは追えていなかったのでとても勉強になりました。

畏れ多くも私の記事です。チーム内では仕組み化されて何気なく使われているものでも、実はチームメンバーもその中身を詳しく知らなかったり、ましてやチーム外のメンバーは存在すら知らないこともありますよね。技術ブログには、「あえて社外公開する記事としてまとめることで、社内にも広く知ってもらうことができる」というメリットもあることを改めて感じました。


【8】FORCIA Meetup #4 PostgreSQL vs Elasticsearch -ファセットカウント編-

イチオシ技術記事_08.png

記事概要

  • 2022/2/15に行われたイベント FORCIA Meetup #4 にてLTで発表された内容の書き起こし記事。
  • PostgreSQLとElasticsearchについて、フォルシアが提供するアプリでもよく実装されているファセットカウント(該当の絞り込み条件を選ぶと検索結果が何件残るかを先回りして表示する機能)を通じて両者の速度比較を行った。

エンジニア社員コメント抜粋

  • やはりフォルシアの技術のコアはPostgreSQLによる大規模データの高速検索。記事を読んでいると、あれ、Elasticsearchを薦めている?、と思いきや最後にきちんとSpookの「凄さ」をさらっと、定量的に示していて印象に残る記事でした。
  • Spook"チューニング"パワーについて、定量的なデータを用いることで客観性の高い検証ができていると感じました。
  • ファセットカウント編として、ちょっと使ってみたという類の記事ではなく、一歩踏み込んだ内容での比較だったので内容に深みがあって面白かったです。

籏野さんのLTを書き起こした記事です。ファセットカウントの実現において「一般的な書き方ではElasticsearchの方が速いが、PostgreSQLを使いフォルシアの高速検索のノウハウを活かした実装はさらに速い」という検証結果でした。驚きの実行速度はぜひ元記事をご覧ください!(そしてなぜそこまで速いのか、フォルシアのDBへのこだわりを語る記事も鋭意執筆中ですのでお楽しみに!)


フォルシアの情報を多面的に発信するブログ、FORCIA CUBE

さて、今回はエンジニア社員へのアンケート結果をもとに、2022年に公開した技術記事を紹介させていただきました。

フォルシアでは2021年度まではアドベントカレンダー企画を、2022年度からは月2本以上の技術記事を継続発信する月刊化企画を行っており、他にもたくさんの技術ブログがあります。

2023年もすでに7本の技術記事が公開されていますし、今年はエンジニア組織で持ち回りで執筆するユニットリレー企画も準備を進めています。ぜひご期待ください!

この記事を書いた人

谷井 嶺太

2019年新卒入社エンジニア。
webコネクト開発の傍ら、最近はWINGSPANという鳥のボードゲームにハマっています。

フォルシアではフォルシアに興味をお持ちいただけた方に、社員との面談のご案内をしています。
採用応募の方、まずはカジュアルにお話をしてみたいという方は、お気軽に下記よりご連絡ください。


採用お問い合わせフォーム 募集要項

※ 弊社社員に対する営業行為などはお断りしております。ご希望に沿えない場合がございますので予めご了承ください。