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

Javaの文字列結合はどうしたものか #java

以前はStringBuilderかStringBufferがお約束だったけども、String#joinがJava8から追加されてどうしたらいいものか。 StringJoinerなんてのもある。 というかString#joinは内部的にはStringJoinerを使っているらしい。 色々記事を漁ってみたものの、パフォー…

SpringBootでH2の管理コンソールを使う #springboot

spring:h2:console:enabled をtrueにするだけ。 spring: datasource: driver-class-name: org.h2.Driver url: jdbc:h2:mem:testdb;MODE=MYSQL username: sa password: h2: console: enabled: true SpringBoot起動後、下記にアクセスすると利用できる。 http:…

SpockでJavaの無名クラスを使ったらCircleCIがコケた #circleci #java #spock

CircleCIがテストの途中にタイムアウトでこけた。 command mvn test took more than 10 minutes since last output ログを見ても途中で止まっており、結果としてもタイムアウトなので検討つかない。 もちろんローカル環境では発生しない。 Revertなりなんな…

ジョイ・インクを読んだ #JoyInc #ポエム

「ジョイ・インク 役職も部署もない全員主役のマネジメント」を読んだ。 ある意味ぶっ飛んだ会社の話。 突拍子もないいくつもの仕組みが、「なぜ、そうするのか」次々に裏付けされていく。 どういう文化にしたいのか、どう向かっていくのか。 そして終盤、筆…

JavaのStreamで独自ソート #java

sortedにComparator Streamで独自ソートするにはsortedにComparatorを渡してやればOK。 List<Person> personsSortedByName = getPersons().stream() .sorted(new Comparator<Person>() { @Override public int compare(Person person1, Person person2) { return person1.get</person></person>…

SpockでオーバーロードされたメソッドをMockする #spock #groovy

JavaでオーバーロードされたメソッドをMockしようとしても、うまくMockできないことがある。 どちらのメソッドを呼べばいいかわからないからだと思う。(たぶん) 下記のようなメソッドをMockしたい場合の対応。 public String doSomething(String arg1) pub…

ORマッパーへの違和感が少し晴れた気がする

前からあった違和感 (リレーショナル)データベースのモデリングとドメインのモデリングは違うっていうのを前から思っていて、それからDBとドメインのオブジェクトをそのまま結びつけるようなORマッパーにはずっと違和感を覚えていたのだ。 だからMyBatisみ…

SpringBootのWebAPIでResponseのJSONをPretty Printにする #springboot

SpringBootでWeb APIを作ってる時に、ResponseのJSONをPretty Printにしたくなった時の対応。 やりたいこと こういうのを {"hoge":[123,456],"huga":"Yeah!","piyo":{"code":"AA1234","name":"Bob"}} こういう感じにしたい { "hoge" : [ 123, 456 ], "huga" …

Developers Summit 2017に行ってきた(2日目) #devsumi

デブサミ2日目も行ってきた。 参加したセッションのメモと感じたことなど。 codezine.jp 1日目はこちら。 su-kun1899.hatenablog.com No-Ops で大量データ処理を簡単に実現する - Google Cloud Platform で実現する次世代データ処理基盤 No-Ops で大量データ…

Developers Summit 2017に行ってきた(1日目) #devsumi

今年もデブサミに行ってきた。 一日目に参加したセッションのメモと感じたことなど。 codezine.jp 確実に良くするUX/UI設計 感じたこと・考えたこと コアコンセプトを決めて一貫性のあるポリシーでプロダクトを磨き上げていくことは大切だなと思った。 検証…

Visual Studio Codeがいい感じ

VSC

普段のちょっとしたメモ書きに使うエディタをVisual Studio Codeにしてみたのだが、これがどうして中々いい感じである。 code.visualstudio.com 普段ソースコードはほとんどIntelliJ IDEAで完結してしまうので、エディタで実装はほとんど行わない。 なので、…

「わかる!ドメイン駆動設計 」を読みました

DDD、ドメイン駆動設計という単語は耳にしていたものの、ご多分に漏れず例の分厚い本に臆してました。 「わかる!ドメイン駆動設計 」ならボリュームも少なそうだし、読みやすいかなって思って読んでみました。 techbooster.booth.pm つまみ食いしていた知識…

mysqldumpでROW_FORMATが出力されなくなった #mysql

現象 MySQLを5.5から5.6にしたら、mysqldumpした際のDDL( CREATE TABLE とか)に、ROW_FORMATが出力されなくなった。 importでこけたので調査してみたらCompactで作成されており、追いかけてみるとdumpした時点のDDLにROW_FORMATの出力がなかった。 エラーメ…

Collectors.toMapで、同一キーを処理する #java

streamでMapに詰める Javaのstreamを使ってMapにつめかえる場合、Collectors.toMapを使う。 Map<Long, String> fooMap = fooList.stream() .collect(Collectors.toMap( Foo::getId, Foo::getName ); しかし上記の場合だと、キーが重複していた場合に IllegalStateException</long,>…

GitHubで何か自動化するならdeploy keysが便利だ

GitHubで特定リポジトリに対して何かを自動化する時、専用のアカウント用意しないとダメかなー、なんて考えていたらDeploy Keyと言うものがあった。 Managing deploy keys | GitHub Developer Guide deployという名前だけど、deploy以外にも使える。 ReadOnl…

CircleCIでメモリ上限値越えエラー #circleci

現象 CircleCIのビルドが TIMED OUT で失敗して、見に行ってみたら下記のようなメッセージが表示されていた。 Your build has exceeded the memory limit of 4G on 1 container. The results of this build are likely invalid. We have taken a snapshot of…

IntelliJ IDEA でJavaScriptをデバッグ

前提 Chrome IntelliJ IDEA ULTIMATE 2016.3 拡張機能を入れる Chrome Extensionを導入する。 chrome.google.com ローカルデバッグ プロジェクト内にある HTML + js のような形であれば、HTMLファイルを右クリック→デバッグ実行でOK。 ビルトインサーバーが…

社内勉強会でライトニングトークしてきた

社内勉強会でライトニングトークしてきた。 フリーテーマだったので何話そうか迷っていたけれど、最近いい感じになってきたチームのコードレビューについて話してみた。 コードレビューを題材にしたものの、チーム開発が単なる個人の集合じゃなくて、コラボ…