大量データを export する時のあれこれ

例えば、一定期間に登録・更新したデータを export したい、って要件はまずまずあると思います。 場合によっては期間で絞り込んでも数万件とか対象になることもあるわけです。 そんなデータをメモリにどかんとのせたらどうなるか?OOM 発生が容易に想像でき…

CI を H2 -> MySQL にした時に遅いと思ったので試行錯誤してみた記録

今まで CI での RDBMS がらみのテストには H2 使ってたのですが、本番にもうちょっと近づけたいと思って、MySQL にしてみました。 その辺の調査と対応を備忘録的に残します。 前提条件 migration tool に Flyway 使った SpringBoot アプリ 長いこと開発して…

PEACOCK MEETS UP #01 に参加してみた #PeacockMeetsUp

そろそろオフラインの勉強会に参加してもいいかなーという気持ちになってきていたので、これに参加してみました。 最初は、「勉強会の空気がよくわからないからおとなしく雰囲気を感じるくらいにしよう」と思ってたのですが、久しぶりに人前で話したい、とい…

祝辞をパソコンで印刷する

PTA 会長に回ってくるお仕事に「祝辞」があります。 文章を考えないといけないのですが、それよりも、紙で残すことが気になってました(数年前の祝辞を見せてもらったのですが、どれもきれいな手書き(毛筆)で...。 字が下手な私。どうしたもんかな、イマドキ…

Quarkus + Doma 2 + Lombok を使う

Doma 2が好きなので Quarkus でも使いたいと思って、これ を参考にサンプル作ってたのですが、Lombok と組み合わせると build が通らなくてハマってました。 どうも、Lombok が生成するメソッドが見つからないと怒られる。 で、ここ で聞いてみたわけです。…

ソフトウェア品質を高める開発者テスト

ソフトウェア品質を高める開発者テスト アジャイル時代の実践的・効率的なテストのやり方作者:高橋 寿一発売日: 2021/03/17メディア: 単行本(ソフトカバー) 「知識ゼロから学ぶソフトウェアテスト」の著者である高橋さんの本です。 「そうそう」「わかるわ…

CircleCI実践入門

CircleCI実践入門──CI/CDがもたらす開発速度と品質の両立 (WEB+DB PRESS plus)作者:浦井 誠人,大竹 智也,金 洋国発売日: 2020/09/14メディア: 単行本(ソフトカバー) CircleCI 自体は前から使っていたのですが、知識を update せにゃいかん気になってきたの…

Think CIVILITY 「礼儀正しさ」こそ最強の生存戦略である

Think CIVILITY(シンク シビリティ) 「礼儀正しさ」こそ最強の生存戦略である作者:クリスティーン・ポラス発売日: 2019/06/28メディア: 単行本 生存していきたいので読みました。 心理的安全性にもつながってくると思います。気になったフレーズをまとめてみ…

Micronaut + Doma2 連携(超簡易版)

やっぱり RDBMS と連携したかったのでやってみました。 参考にしたのは Access a database with MyBatis Micronaut + Kotlin + DomaでTransactionを楽に扱う*1 です。 build.gradle LocalTransactionManager 関連 DomaConfigFactory DomaConfig Dao @DaoConf…

Micronaut 2.0.0 に version up する

前回 までの奴は micronaut 1.3.6 でした。 先日 2.0.0 がリリースされたので、それに追従してみましょう。 Session Authentication https://micronaut-projects.github.io/micronaut-security/latest/guide/#session 依存 jar が変わります。 annotationPro…

Micronaut ことはじめ - テストを書いて歩こう (5)

前回 までで一般的な Web アプリケーションを作るのに必要な Controller 部分のサンプルが溜まってきたと思います。あとは UseCase とか Repository が残っていますが、こいつらは Micronaut 依存が少ないので興味がある方は引き続きやっていただければと思…

Micronaut ことはじめ - 共通処理を組み込もう (4)

前回 はエラーハンドリングを組み込んでみました。今回は CSRF 対策を共通処理っぽく入れてみたいと思います。 コードはこちら CSRF View をレンダリングする時にデータを埋め込む ViewModelProcessor POST の時に csrf チェック OncePerRequestHttpServerFi…

Micronaut ことはじめ - Error Handling で異常ケースも良い感じに (3)

前回は認証機能を組み込んでみました。今回はエラーハンドリングを組み込んでみましょう。 コードはこちら 認証でエラー発生時 Global Error Handling サーバサイドの validation Form Controller Local Error Handling Thymeleaf のタグ まとめ 認証でエラ…

Micronaut ことはじめ - Session Authentication を添えて(2)

前回 は Thymeleaf を使ってログイン画面をレスポンスしました。次は認証機能を組み込んでみましょう。 コードはこちら Session Authentication build.gradle application.yml ログイン画面 認証処理 AuthenticationProviderUserPassword SystemConfiguratio…

Micronaut ことはじめ - Thymeleaf と仲良し(1)

事の発端は www.amazon.co.jp でした。 SpringBoot で作ったアプリを Heroku で公開しようとした時にメモリを食いすぎて起動できなかったので、「Java でそういうの無理かな」と思ってた時に出会ったのがきっかけです。 実際のメモリ消費量がどのくらいなの…

Doma2 で JSON 型を使う

魔がさして、RDBMS の JSON 型を導入しようとしてみました*1。 前提条件 Doma 2 2.34.1-SNAPSHOT jackson 2.11.0 検証した RDBMS H2 PostgreSQL データ構造 create table customers ( customer_id varchar(255) not null constraint customers_pkey primary …

Mock を極力使わないようにしていた私が Mockito を使わないとムズムズするカラダになった理由

2020.05.28 追記: やっぱり mock 使わない方が良さそうに思えてきましたので、この記事から考えが変わってます はじめに 以前、私の著書では 時間が限られた中、本番に使用しない Mock オブジェクトを作成するよりも、依存する実クラスを使用してテストケー…

【読了】ドメイン駆動設計 モデリング/実装ガイド

https://booth.pm/ja/items/1835632 「エリック・エヴァンスのドメイン駆動設計」や「実践ドメイン駆動設計」でわかった気になったけど実際にどうすれば良いかいまいちイメージがつかなかった人に是非読んでもらいたいです。 QA 形式で実際に実践する時に躓…

JaSST'19 Niigata に参加してきた

JaSST'19 Niigata が長岡で開催されたので参加してきました。 お堅い空気のイベント久しぶりでした。 S1) 基調講演 レビューのキキメ ~あなたのレビューは何のため? レビューは静的なテストの1つであるという所はなるほどなぁと思いました。最近レビュー…

Doma 2 入門

前回 の SpringBoot2.1 + Kotlin のリポジトリを Doma 2 対応しました。 いちいち Insert を書かなくて済んだり、場合によっては SQL をかけたり(SQL ファイルで定義したり、アノテーションで SQL 定義したり)、項目を絞った Update が SQL 文書かずにできる…

JAWS-UG 新潟県 (新潟/長岡/上越 合同) + NDS第60回 に参加してきた #jawsug #jawsug_niigataken #nds60

参加 してきました。 なんと、今回は1日使ったイベントでした。 午前: ハンズオン github.com AWS Systems Manager 触れたので良かったです。 EC2 に入りたい時に踏み台サーバが不要になるので良い感じ。 午後: メインセッション 「EAT SLEEP DEPLOY REPEAT …

Kotlin 入門

色気づいてサーバサイド Kotlin に興味を持ち始めたので勉強してみました。 今回のコード 構成 SpringBoot: 2.1.4.RELEASE Kotlin: 1.3.30 あと使用してるのはこの辺見てください 内容 JSON 返す API サーバとして作ってます。 Repositry とりあえず SQL 実…

【読了】失敗から学ぶRDBの正しい歩き方

失敗から学ぶRDBの正しい歩き方 (Software Design plus)作者: 曽根壮大出版社/メーカー: 技術評論社発売日: 2019/03/06メディア: 単行本(ソフトカバー)この商品を含むブログを見る アプリ開発の経験年数=RDBに触ってきた年数でもあるので、知識の棚卸しに…

Selenide をローカルの file から open してみる

Selenide 良いですね。 さて、わかる人にだけ伝われば良いやシリーズです。 Selenide 使って最初にアクセスするページが http が https とは限りません。HTML のドキュメントそのもの(文字列)ということだってあるわけです。Selenide のサンプル見ると、 ope…

噂の肉巻きバウムクーヘンに挑戦してみた

BBQのインパクトを強めるべく、たけだバーベキューさんが紹介していた「肉巻きバウムクーヘン」に挑戦してみました。 用意するもの バウムクーヘン 原信で購入。 薄切りバラ肉 カトウ食材で購入。解凍しておきます。 アルミプレート ダイソーで購入 手順 1. …

長岡IT開発者勉強会(NDS)の第55回勉強会に参加してきた #nds55

NDS の 第55回勉強会 に参加してきました。 地元の開発者さんに会う機会が久しぶりだったのでテンションが無駄に上がってた気がします。 申し込み時は発表するネタが思いつかなかったけど、それから何か話したい熱が盛り上がり、何の気なしにそんな事をTwitt…

JAWS-UG 上越妙高支部 第3回勉強会(サーバーレス勉強会)に参加してきた

JAWS-UG 上越妙高支部 第3回勉強会(サーバーレス勉強会) いつもは長岡市近辺の勉強会に顔を出しているのですが、唐突に行ってみたい衝動にかられ、上越まで車を走らせました。 天気も荒れてなくて良かった...。 あ、この子スキーの装備だけじゃなくてかん…

Amazon EchoからSlackに通知を出してみた(Cognito + API Gateway版)

前回、前々回 とAlexaからSlackに通知できる仕組みを試してみましたが、Alexaから呼ばれるLambdaに接続先やメッセージを環境変数で設定する必要があり、ユーザ毎にできるようにしたくなってきました*1 今の仕組みでも、Alexaユーザーとシステムユーザーを関…

Amazon EchoからSlackに通知を出してみた(Web API版)

前回はAlexa、会社に連絡をしてと話しかけることでSlackに通知するアプリを作成しました。 ですが、このアプリ経由だと「誰からのメッセージなのか」がわからないので、環境変数で名前を設定する必要がある為、ユーザ毎にLambdaファンクションを登録する必要…

Amazon EchoからSlackに通知を出してみた(Incoming Webhooks版)

年末に待望のAmazon Echoが届きました。招待リクエストを送ってから1ヶ月以上待たされ、情熱も失いかけましたが、なんとか気力を振り絞ってアプリ開発をしてみました。 今回の目的 Alexa、会社に連絡をして と話しかけることで、SlackのIncoming Webhooksを…