2019-01-01から1年間の記事一覧

レガシーをぶっつぶせ。現場でDDD!2nd 「インプット<アウトプット!」の参加レポート

レガシーをぶっつぶせ。現場でDDD!2nd 「インプット<アウトプット!」の一部と二部に参加してきました。 過去に多くの勉強会に参加してきましたが、その中でも特に学びを得られた強い実感がありました。間違いなく上位に入る満足度です。 学んだことを反芻…

Qiitaでも記事を書き始めました

ちゃんと検証した技術記事は今後Qiitaに投稿するようにしようと思います。 このブログはアイディアや、検証結果・内容に自身がない技術ネタなどを低頻度で更新していきます。 ちなみに、最近Qiitaに投稿したのはこの2つの記事です。 Spring MVCのRestControl…

ログ収集基盤の(再)設計

はじめに 個人的に考えていることのメモです。真似してやけどしても責任持てません。 データサイエンティストに聞いてわかったデータ分析基盤アーキテクチャの勘所ってのを以前書きましたが、その続きのようなポストです。 おことわり 現在関わっている案件…

cluster-autoscalerでnodegroupを0にスケールする方法

ASGにk8s.io/cluster-autoscaler/node-template/label/{key}={value}のタグをつけるだけでした。 たったこれだけです。公式にも書いてあります たどり着くのに数時間かかってしまったので他の日本人の助けになれば、と思って残します。。

Nuxt.jsのSPAにvuexでサイドメニューを実装する

はじめに サイドメニューを実装する機会があり、手っ取り早い方法がvuexだったためvuexを使って実装してみました。 そのやり方を残しておきます。 どんなアプリか 実際の動きをみてもらったほうが早いです。 こんな感じでメニューをクリックしたら対応するペ…

TypeScriptを学んでいる

TypeScriptを学び始めている中で感じていること 実践TypeScriptをざっくり読んで、ざっくりとTypeScriptについて理解したので現時点の感想を残しておく。 はじめに 自分用メモの位置づけの記事です。 現時点で好印象を抱いています。 感じた違和感 今まで身…

brewで古いバージョンをインストールする

微妙に分かりづらかったので、メモを残しておきます。 Formulaのディレクトリに移動 $ cd /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/Formula/ 古いコミットをフェッチ $ git fetch --unshallow インストールしたいバージョンを確認する $ gi…

Kotlinの好きなところ

tl;dr kotlinを勉強していて特に気に入った言語仕様と例をひたすら紹介します 紹介するコードは実際に書いてgithubにあげています。 2019/08/04に改訂しました。 気に入った言語仕様 演算子オーバーロード ifとwhen(switch)が式 null安全 イミュータブルにし…

AWS EKS上のアプリからSESでメールが飛ばせない不具合にどう対処したか

現象 Spring Boot x AWS EKS x Istio x AWS SESって組み合わせでアプリを動かしていますが、SESにメールを送ろうとしても以下のような感じのExceptionが出てメールが送れないという現象に遭遇しました。 Request processing failed; nested exception is org…

データサイエンティストに聞いてわかったデータ分析基盤アーキテクチャの勘所

データサイエンティストに聞いてわかったデータ分析基盤アーキテクチャの勘所 ログ収集&可視化のためのアーキテクチャについて、同僚のデータサイエンティストからお知恵を拝借しました。 お聞きした内容がかなり有益だったため、メモを残しておきます。 ロ…

障害調査のコツ(ログの調査方法など)

新卒とかに何度も説明しているので、再共有時用のメモです とにかくまずはアプリケーションが出力しているログを見ることです。 大抵の場合は、答えか大きなヒントがそこに書いてあります。 特にフレームワークの出力しているエラーメッセージとスタックトレ…

DAO(Repository)の単体テストについて

DbSetUpとAssertj-DBの組み合わせがとても良さそうです。 さらに組み込みDBのH2と組み合わせてSpringのTest系の機能を組み合わせるとほぼ理想通りのDAOのテストがかけるようになりました。 具体的には以下が実現出来ています。 h2でテスト実行するからMySQL…

分散トレーシングをテーマにして勉強会に登壇してきた

だいぶ前ですが、とある企業様との合同勉強会で、分散トレーシングの説明とデモを行ってきました。 そのサンプルコードのURLを共有します。 https://github.com/kogayushi/ist-distributed-tracing-demo スライドの元となるmarkdownファイルもこのリポジトリ…

私はなぜ今からKotlinを学ぶのか

それなりにJavaのことはわかってきた気がするので、よりよいコードを書けるようになるべくKotlinを学びはじめました Kotlinに着目したきっかけは特に思い出せません。 better Javaと言われているからJavaより書きやすいんだろうな、くらいの印象からスタート…

言語やFWなどの選定基準

みなさんは言語やFWなどの選定基準について考えたことがあるでしょうか? 私は使いたいと思ったFWなどを採用するかどうかを考える場合に、以下を基準にしています。 プロダクションで利用されている事例が多い バグが改修される速度が早い あるいは未対応で…

Spring Security 5.xでログイン失敗時にmessages.propertiesで上書きしているにもかかわらず常に"Bad credentials"が表示されてしまう

messages.propertiesで、メッセージを上書きしているにも関わらず、デフォルトのBad credentialsというメッセージが表示されてしまう不具合に遭遇しました。 どうも、AbstractUserDetailsAuthenticationProviderにinjectionされているMessageSourceが不正な…

昔作ったOOPなサンプルコードが出てきたからブログに残しておく

大昔に作ったOOPなコードの紹介記事を世に出していなかったので、恥ずかしいけど記録として公開しておきます。 今書けばもっと洗練できると思います(けど管理職になってから多忙で、その時間がないです…)。 オブジェクト指向プログラミングのサンプルコー…

マイクロサービスアーキテクチャで要求される各機能にSpringのどのフレームワークが対応するかの一覧

Health Check Spring Boot Actuator Helth check用エンドポイントあり(拡張を推奨します) Fault Tolerance Spring Cloud Hystrix x Spring Cloud RIbbonの組み合わせ(だと思う) Open API Spring Fox アノテーションからspec出力できます swagger-uiも自動…

Spring Cloud Configを調べて検証コードを書いてみた

Spring Cloud Configを調べて検証コードを書いてみました。サンプルプロジェクトはこちら。 https://github.com/kogayushi/spring-cloud-config-sample README.MDに関しては未来の自分のためのメモのため、ブログを見に来た方には意味がわからないかもしれま…

ディスパッチテーブルというデザインパターン

ディスパッチテーブルというデザインパターンを紹介します。 https://qiita.com/hirokidaichi/items/c9a76191216f3cc6c4b2#%E3%83%87%E3%82%A3%E3%82%B9%E3%83%91%E3%83%83%E3%83%81%E3%83%86%E3%83%BC%E3%83%96%E3%83%AB これを覚えれば、if文やswitch文を…

Tomcat containerにwarをデプロイするDockerfile

tomcat上で動いているアプリをk8s上で稼働させるためにdocker nizeしました。面倒くさいかと思っていましたが、意外と簡単だったので共有します。 以下のようなDockerfileを書けばよいです。 FROM tomcat:9.0.16-jre8-alpine RUN rm -rf /usr/local/tomcat/w…

推測するな計測せよ

https://ja.wikipedia.org/wiki/UNIX%E5%93%B2%E5%AD%A6 UNIX哲学として知られている(直接にはUNIX哲学ではない、らしいです)格言です。 当社の某サービスには2000件程度(現時点では。どんどん増える見込み)のデータを取得している画面があるのですが、2…

Spring Boot 1.5x -> 2.1.xへのマイグレーションで得られた知見

学習目的でちまちま検証してみました。 公式にマイグレーション手順のページはありますが、実際にやってみたところ多少独自の知見が得られたので超簡単ですが共有しておきます。 実際にやってみてハマったところ JUnit4対応 Spring 5からはJUnit5サポートし…