HIRO Tracks

ソフトウェアエンジニアが日々学んだ知識を発信します。

【書評】良い単体テストってどういう状態か?【単体テストの考え方/使い方】

これは何? 「単体テストの考え方/使い方」を読んで、「良い単体テストとは、どういう状態か?」についてポイントをまとめた記事です。 単体テストの考え方/使い方作者:Vladimir Khorikovマイナビ出版Amazon 一部引用しつつ、自分の言葉で書いているのでご了…

「システムリプレイスがなんで難しいか」初心者TeamLeaderが語る

これは何? 何かしらの目的を持ってシステムのリプレイスをするとき、気をつけたほうが良いことを、自戒含めて記載します。 プロダクトを「リプレースしながら」一部分だけリリースしていくの、結構難しい。開発側は本当は黙ってリプレースだけに集中したい…

リーダーやり出して半年経っても「人に新しい仕事お願いする」のは怖い【振り返り】

これは何? 2023年7月から開発チームのリーダー業務をしています。(開発メンバー10人ほどのチームです) 開発自体はスクラムの形で進めています。 始めてから約半年経ったので改めて振り返りをしておこうと思います! 初めたての頃に書いた記事はこちら↓ hiro…

【書評】「[改訂新版] 自分のペースでゆったり学ぶ TCP/IP」がインフラ学び直し入門にいい感じだった

これは何? Webエンジニア向けに、インフラ方面の学び直しにGoodだった本を紹介します。 「実務でアプリケーションのコードばかり書いてるけど、インフラの知識が足りない気がする。基礎から学びなおす」と思い購入しました。 短い本なので、1日〜2日で読め…

Spring Sessionがcookieの値からsessionを特定する処理はどこにある?【DefaultCookieSerializer】

これはなに? Spring SecurityおよびSpring Sessionを使って認証の仕組みを作っていた時に、以下のような疑問を持ったので調べてみたことをメモします。 疑問 「初回認証時にサーバが返してくれるセッションIDをCookieに登録し、次回以降のリクエストでのセ…

フロントエンジニアじゃないけど VueFesJapan2023行ったら楽しかった【感想ログ】

これはなに? ついに 現地開催になったVueFesJapan2023に行ってきましたので、その簡単レポートです。 vuefes.jp 山根はフロント専門のエンジニアじゃないのですが、それでも十分楽しめる + 学びになったカンファレンスでした!!! 【目次】 これはなに? …

【SQL】H2DBの「単一値の原則」違反エラーを吐くタイミングが微妙でハマった話【GROUP BY】

これはなに? LocalでH2DBに対しては動いていたSQL文が、SQLServerで動かすとエラーを吐くようになって、事象の理解にやや時間を要した時の話です。 結論、製品版DB(SQLServer)と、インメモリDB(H2DB)の単一値の原則違反エラーに対する挙動の違いが原因でし…

個人開発でHeroku PostgreSQL使おうとしたら結局Firestoreの良さに気づいた話【認証情報が変わる】

こんにちは。山根です。 普段は決済事業会社にてSpringBoot + Kotlinでバックエンドエンジニアをやりつつ、会社の技術ブログ運営に携わっております。 今日は個人的かつ勝手に進めていた個人開発(学習記録系アプリ)が一旦落ち着いてきたので、そのアーキテ…

「人にタスクをお願いする」エンジニアリーダーにチャレンジした時の気づきと学び

これは何? 評価面談done。 年収:40万up 評価・夏以降のチームリーダー的役割を一定評価された今後の期待・引き続きチームをリードする経験を深めつつ、更にビジネスに直結するような技術力の向上/発揮を期待する引き続き頑張ります。— 山根正大 (@hiro_cashl…

ISUCON練習問題private-isuの環境構築でハマったことと、初回ベンチマーク結果

これは何? ISUCONの参考過去問"private-isu"をLocalに環境構築しようとした時にハマったことメモ 夏祭り2023↓のハンズオンでやろうとしたけどハマって時間内に終わらず... hiro-tracks.net private-isuのリポジトリはこちら github.com 試したLocalPCのスペ…

ISUCON夏祭り2023のハンズオン行ってきたので感想!

これは何? ISUCON2023夏祭りのハンズオン行ってきたので感想・備忘録! isucon.connpass.com ISUCON、どこで知ったの? 2022年に自社のOKRで「チームの性能改善力を上げる」な目標を立てた時、「実務以外に何か練習の手段ないか?」と探していた時に、先輩…

【PostgreSQL】サーバ停止不要なバックアップ方式と利用コマンドまとめ【pg_dump,pg_dumpall】

これはなに? OSS-DB Silverを受けて得た知見のうち、オンライン論理バックアップの用途と使うについてまとめます。 「オンライン論理」バックアップって何? PostgreSQLのバックアップは大きく オフラインでの物理バックアップ オンラインでの物理バックア…

OSS-DB Silver ver3.0に受かったので【勉強方法】と【得られた知見】について語る

これは何? OSS-DB Silver ver3.0に受かったのでその振り返り記事です! (パッと読めます) 受験経緯 現場でPostgeSQLを利用する機運が高まってきたため。 PostgreSQLにおける性能改善や運用周りで困ることがないように。 また困ったとしてもすぐ「そういえ…

PostgreSQLにおけるWAL(Write Ahead Logging)って何?

始めに この記事では、 データベースの内部構造や仕組みに詳しくなりたいけど、そもそも「WALってなんやねん」という人 「SQL書けるよ」だけじゃなくて、運用目線でDBに詳しくなりたい人 向けに、WALとはなんぞや?という内容について整理してみます。 参考…

【JPA/Querydsl】OneToManyなテーブルから必要なカラムだけDTOにマッピングする(transform,groupBy)

これは何? hiro-tracks.net こちらの記事の続きです。 本記事では、上記記事の「必要なカラムだけSELECTする」に加えて、OneToManyな2テーブルに対して飛ばしたJONクエリの結果を、自作DTOにマッピングする方法をお伝えします。 クエリチューニングの一環と…

【JPA/Querydsl】必要なカラムだけDTOにマッピングする(Projections.constructor)

これは何? queryDSLで「SELECT * FROM...」するのではなく、必要なカラムだけ取得する方法をお伝えします。 クエリチューニングの一環としてでSELECTする対象を絞り込む時(Key LookUpを減らして実行計画改善する時とか)に便利なTipになってます! これは…

【書評】コミュニケーション力改善したいので「エンジニアがビジネスリーダーを目指すための10の法則」を読んだ

これはなに? この度「エンジニアがビジネスリーダーをめざすための10の法則」という本を読みました。 要約すると、この本は「エンジニアが目線を上げて、マネジメント層と生産性の高い会話をするためには?」という観点で、マインドの変え方やノウハウがま…

【反省】AWS Batch Clientのメモリ解放を忘れて処理が遅い【AWS SDK for Java v2】

これは何? Kotlinで書いたAPI内からAWS Batchを起動するために、sdk-for-javaを使って処理を書いていました。 sdk-for-javaはお手軽にバッチ起動ができて大変便利なのですが、リソースをちゃんと解放できるように書いてあげないと性能劣化の原因になります…

マルチプロジェクトのSpringBootで、Docker + Flywayによる使い捨てDB環境を作る

これは何? マルチプロジェクト(gradle)のSpringBootアプリを触っている 仕事外の技術検証で軽〜くDB使いたい オンメモリDB(H2とか)じゃなくてガッツリOracleとかSQLServerとか使いたい 上記のような時に、いちいちLocalPCにSQLServerをインストールしたくな…

2023年目標宣言【DBと英語とブログ】

これは何? 山根が2023年度の目標を宣言する記事です。 これは何? スキルアップ加速させたいんや 1. DBスペシャリスト資格を取る なぜやるのか:技術面でストロングポイントを持ちたい 今の技術レベル感てどうなの? バックエンド領域 インフラ領域 フロン…

【良い負荷試験とは何か?】「AWS負荷試験入門 」を呼んで学んだことまとめ

はじめに 負荷試験の知識を深める為に、本「Amazon Web Services負荷試験入門 クラウドの性能の引き出し方がわかる」(以下、「Amazon Web Services負荷試験入門」)を呼んでみることにしました。 自分の思考整理と、この記事に辿り着いて下さったみなさんの…

【振り返り】「選択と集中」によりAndroid案件の副業を撤退します

はじめに 副業案件(Android)に入らせてもらっていたのですが、この度撤退することにしました。 案件メンバーの方には大変お世話になりました。 5ヶ月と短い期間ではありますが、良い体験になったので振り返りを行いたいと思います! 目次 はじめに 振り返り…

【ISUCON9】dockerのmysqlにmysqldumpslowがなくてLocalで触るのやめた

これは何? 【性能】ISUCON9予選のLocal環境構築(DB部分:Docker-Compose) - HIRO Tracksの続きです ISUCON9をLocal(DB部分だけDocker)でやろうとしたけど、色々面倒なのでやめることにしました。 今後はAMIからAWSにEC2環境作ってやっていく予定。 目次 …

【性能】ISUCON9予選のLocal環境構築(DB部分:Docker-Compose)

これは何? 性能周りの知見向上のため、ISUCON過去問を触ってみたい!と思い至りました。 本記事はそのための第一段階としてLocalで環境構築してみた時の備忘録です! Localでアプリ立ち上げ + ベンチマークを回す、ことをゴールとしています。 「推測するな…

【副業】freee開業でオンラインで開業してみた

これは何? エンジニアとして副業を始めたので、青色申告を狙って開業届・青色申告申請書を提出した時の話です! 開業届を出す時期について「ミスったな...」と思うところもあったのでそれも含めて備忘録。 これは何? 開業届提出のきっかけ 利用した/してい…

【手放す練習】ズボラエンジニアが4ヶ月間断捨離を続けてスッキリした話【断捨離】

これは何? 片付け下手・生活習慣が堕落したエンジニアが、とある本に出会って「4ヶ月間」断捨離及び掃除を続けられている話。 これは何? この記事で伝えたいこと 解決したい課題 そもそも定期的に掃除をしない 判断が鈍る 解決手法 意識したこと「譲る、売…

【SpringBatch】メタデータテーブルをDBに生成せずに済ませるには(検証ソースあり)

これは何? Spring Batchは、Spring Frameworkファミリーの中でも、バッチ処理に特化したフレームワークです。 spring.pleiades.io 非常に便利な機能が揃っていますが、重厚ゆえ理解が若干難しいのと、高機能すぎる部分があります。※個人の感想です この記事…

【技術書もう要らんわ】エンジニア業、辛い時に泣ける本。【逝ってしまった君へ】

はじめに こんにちは。ITエンジニアに限らず、仕事しているといろいろ大変なことがありますよね。 今回は、山根が仕事頑張りすぎてる時に読んでリフレッシュできた本を紹介します。 「逝ってしまった君へ」というエッセイです。 逝ってしまった君へ /小学館/…

【SpringBoot】JdbcTemplateはSQLインジェクション対策できているのか

これは何? SpringBatchプロジェクトにおいて、JdbcTemplateを使ってDBアクセス処理を書いていた際、「これってちゃんとSQLインジェクション対策できてるの?」という問いが生まれました。 公式を読んでみても「出来てるよ!」という明言が見つからなかった…