マイクロサービスアーキテクチャで要求される各機能に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サポートし…

Clean Architectureを読みました

この本を読みましたので簡単なご紹介です https://www.amazon.co.jp/dp/4048930656 構造化プログラミング、オブジェクト指向プログラミング、関数型プログラミングのパラダイムの説明の説明から入り、SOLID原則を持ち出してOOPらしくコードの必要性とその概…

Let's Swagger

Let's Swagger 社内勉強会で使用した資料をはてな用にアレンジしたものです。 Goals Swaggerって何か聞かれて答えられる程度の知識をみにつける 具体的に何ができるのか、HowとWhatを知る つゆばらい 序盤英語です 翻訳が面倒でした。ごめんなさい 英語見る…

キャリアアップに必要な物量(勉強時間)について真剣に考えてみた

キャリアアップに必要な物量(勉強時間)について真剣に考えてみた 社内ブログの記事を個人ブログ用に修正したものです。 私の経歴 2009/4に医療系のSIerに新卒入社 2014/7に人材派遣業の会社に転職し、派遣されて某大手ECサイトの会社へ。Webエンジニアへのキ…

オブジェクト指向プログラミングを学ぶのに適切な書籍と私がおすすめする読む順番

オブジェクト指向プログラミングを学ぶのに適切な書籍と私がおすすめする読む順番 何故かいたか 同僚Aが緑のデザパタ本読んでたり、同僚Bが他の人が読んでる本が気になるっていってたり、後輩Cが会うたびにおすすめの本を聞いてくるので、それらにちなんで、…

『今あえてDRY原則に向き合い』のスライドを見て考えるところ

『今あえてDRY原則に向き合う』 https://speakerdeck.com/shinpeim/jin-aetedryyuan-ze-nixiang-kihe-u はてブ見てて、そうだよね!と共感する記事を見つけたので、私の考えている事と共にシェアします。 スライドの概要 DRY原則ってタイトルにはついてます…

読書時の便利グッズご紹介

読書時の便利グッズご紹介 今日は短めのエントリーです。 技術書読むのに使ってる便利グッズをご紹介します。 ブックマーク マーキングクリップをブックマーク代わりに使っています 並行して複数読んでいるとその数だけブックマーク揃えるのお金かかるし、買…

新装版リファクタリング感想(第1章だけ)

印象に残った部分のメモを残します。 第1章 リファクタリングー最初の例 メソッドの抽出 page 9より引用 最初に、抜き出そうとする部分でローカルなスコープをもつ変数に着目し、それらが新規に作られるメソッドの一時変数かパラメータにならないか検討しま…

ITエンジニアに読んでほしい!俺的技術書大賞2017

ITエンジニアに読んでほしい!俺的技術書大賞2017 タイトルは完全にパクリです。 http://www.shoeisha.co.jp/campaign/award/2017/ 前置き 今年も結構な数の本を読みました。読書メーターで読んだ本を振り返ると技術書だけでも11冊、その他は3冊でした。再読…

JJUG CCC Fall 2017に行ってきました

JJUG CCC Fall まえがき 自分用のメモではありますが、役に立つ人がいるかもしれないと思いメモったことと簡単な感想をブログに乗せておきます。 間違いに気づいたら後から訂正しますが、速度優先と自分用メモなので正確な情報は登壇者があとからあげている…

2017 Java One 報告会に行ってきた

2017 Java One 報告会 行ってきました。 後半疲れてメモが取れていませんが、 雑なものでも助かる人はいるかもしれないのでメモを残します。 リリースモデルの変更 従来 OpenJDK 仕様のリファレンス実装で、Oracle JDKと技術的な差がある 機能リリース 2年に…

【第2回】ドメイン駆動設計のための オブジェクト指向プログラミングに参加しての個人的メモ

【第2回】ドメイン駆動設計のための オブジェクト指向プログラミングに参加して 超個人メモだけど、良い経験になったのでブログにメモを残します。 見てる人いるかわかりませんが、ユーザ定義型の数が多かったと発表したのは私です。 15-6かな?って言いまし…

gradleで生成される依存ライブラリの並び順をlibrary名でソートする方法

は、以下の記述をbuild.gradleに追加してください。 eclipse { classpath { file { whenMerged { classpath -> def libs = classpath.entries.findAll { it.kind == 'lib' } libs = libs.collect { lib -> def baseDir = project.projectDir.getAbsolutePath…

Docker on Centos7 on Vagrant with Chef

概要 掲題の通りのローカル開発環境を構築してみた。 コンセプト 各コンテナに固定IPを割り付けてホストOS(私の場合はMac)からIPでアクセス可能 ミドルウェアはすべてクラスタリングして冗長構成化 目的 RabbitMQやRiakはライブラリでノード指定時に、conf…

Spring AMQPでオレオレErrorHandlerを使ってみるテスト

@RabbitListeneを使っている時にデフォルトのErrorHandlerではなくて、独自処理を実装したErrorHandlerを使う方法を調べてみたので自分用メモ。 設計も汚いし、とにかく動くところまでしか確認してない。 package hello; import lombok.AllArgsConstructor; …

rasbperry pi3でNAS構築(とついでにbonding)

ご無沙汰してます。 サーバの勉強にもなるかなと思ってraspberry pi3を手に入れて自作(かつ自宅)NASサーバを構築してみました! このraspberry pi3なんですけど、無線LAN付きになったんですよ。 USBドングル買わなくても無線化できるので少し財布に優しい…

特定のクラスを継承したクラス一覧を出力する方法

掲題の通り、EclipseとかNetBeansの力を借りずにコードを書いてリストを出してみました。 guavaのClassPath使えばこんな感じで簡単に出せるようです。 package tester; import com.google.common.reflect.ClassPath; import java.io.IOException; import jav…

RTrim最速っぽいのを簡単に調べてみた

自宅の環境(CPU:Core2 Duo E6750 メモリ4G)ではStringUtils#stripEndが最速らしい。 しかし、会社のPCではguavaが最速でした。 検証したのは、 処理時に(メソッド呼ばれる毎に)で毎回Patternのインスタンス生成からやる Patternの変数をstaticで持たせてイン…

どうしてもNIO2が使えないのでムシャクシャしてやった

仕事でですが、どうしてもJava6の環境で、ファイルの更新管理をするライブラリを作らなきゃいけなかったので、Apache Commons IO使って作ってみた。 github.com 参考にしたのはここです。 ありがとうございました。 qiita.com 実際に使うときはもっと修正し…

WindowsとMacの両方でローカル配信メールを設定する方法

ローカルからアプリケーションがメール投げようとすると何も設定してないとエラーになっちゃいますよね。 私の職場じゃWindowsとMac使っている人が半々なのですが、どちらの環境でもこのメールの問題を解決したので書いてみます。 Windowsの場合 簡単です。 …

CentOS7でLAMP環境構築(といいつつnginx)

友人のサイトのローカル環境を構築するのにLAMP環境をMacに入れたので、参考にしたサイトをメモ代わりに貼っておく。 CentOS 7 でLAMP(Nginx+MariaDB(MySQL)+PHP)インストールからWordPressを動かすまで(Nginx編) | レンタルサーバー・自宅サーバー設定・構…

Dockerエキスパート養成読本が出る!

今通ってる現場で、インフラ再構築ってことで今後はドッカー使うらしい。 ってことで勉強しとかないとついていけないので、電子書籍版出たらすぐ買う。 Dockerエキスパート養成読本[活用の基礎と実践ノウハウ満載!]books.rakuten.co.jp Amazon.co.jp: Do…

IDEのテーマをSublime Text 3っぽく変更

NetBeans Monokai Sublime Eclipse [Eclipse] Mac Mavericks(10.9) に Eclipse Kepler(4.3.2) を入れて、見た目を Sublime Text っぽくしたり、いい感じにする方法 - Qiitaqiita.com テキストエディタにはsublime text3使ってます。 これで、見た目の統一感…

Javaでprivateメソッドをmockに置き換える方法

探していたら、mockitoでは実装してない旨のページを見つけた。 mockito/mockitogithub.com powermockでできるからそっち使ってねって書いてある(ように読める)…○r2” 社内のMさんとOさんに助けを求めたら教えてもらえたのだが、 どうやら、jmockitなるも…

Base64でデコード出来ない文字をデコードしようとするとどうなるか?

調べても出てこなかったので、メモ。 何かわかりやすいエラーが出るのかとおもいきや、エラーとわかりやすい挙動はしなかった…orz 答えは『実装による』っぽい。 実際に平文→base64.decode→sha256でhash→base64.encodeの処理をOpensslとJavaの両方で試したら…