エンジニア的なネタを毎週書くブログ

東京でWebサービスの開発をしています 【英語版やってみました】http://taichiw-e.hatenablog.com/

SpringBootのアプリで、JMHを使ってみた

メソッドのちょっとした書き方の違いによる速度の計測をしたくて(Micro Benchmarkというらしい。対義語はMacro Benchmark)、JMHで計測をしてみました。JMHのオフィシャルページを見ると、mvn archetype:generate なるものが出てきて「なんじゃこりゃ?」だ…

Mavenで実行しているTestに割り当てるヒープを増やす方法

Maven Surefire Pluginを使う。 https://maven.apache.org/surefire/maven-surefire-plugin/ <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <configuration> <argLine>-Xmx1024m -XX:MaxPermSize=256m</argLine> </configuration> </plugin>ぐぐると、MAVEN_OPTSに書けばいい とか、…

Chrome Tech Talk Night

events.withgoogle.com Google さんで行われた、Chrome Tech Talk Night に参加してきました。弊社の新人研修依頼、10年以上ぶりに森タワーのオフィスに入ったなぁ とか しょうもないことを思いながら。 そもそも私、フロントエンジニアではないので、正直細…

"Fiber" で 100万スレッドが実行可能に!? - Project Valhalla とProject Loom : JavaDayTokyo 2018 参加レポート2 #JavaDayTokyo

Project XXX系の話について、Project ValhallaとProject Loomについて聞きました。 どちらも講演はDavid Buckさん*1。残念ながら、どちらもJava11には入らないので、LTSのリリースサイクルを考えるとまともにサービスで使えるのは早くて2021年… とはいえ、ど…

Java11について : JavaDayTokyo 2018 参加レポート1 #JavaDayTokyo

今年もJavaDayTokyoに参加させていただきました。今年の自分なりのテーマは、以下についての情報収集でした。 半年後にリリースされるLTSバージョンであるJava11の新機能 その他今後追加される機能について 特に、一昨年くらいから聞いているProject Valhall…

一つのドキュメントに、いろいろ一緒に書くのは難しかった話

・ビジネス上の要件・自分のところのAPIはどう振る舞うべきか・どうしてそう決めたか(ちょっともとの要件からねじれてる)・中はどう作るべきか を、全部一箇所に書くのは結局無理でした。 なので・ビジネス上の要件・自分のところのAPIはどう振る舞うべき…

チームビルディングのために性格診断を使ってみたい

チームビルディングのために性格診断を使ってみたい …と思っています。 背景 今、一緒に開発をしているチームのコミュニケーションを、より円滑にしたいと考えています。 各メンバーが、もっと他のチームメンバーの、「良いところ」や「自分との違い(どっち…

続・続・計算量を減らす:Newの回数を減らしたらもっと速く… なるどころか遅くなった!?

前回までのお話 taichiw.hatenablog.com たった一行、乱数の初期化をループの中からクラス生成時に移しただけで5倍も速くなったというお話でした。 じゃあ、クラス変数にしたらNewが減るじゃん!ということでstaticをつけてみました。 private static Rando…

続・計算量を減らす:ループ内の処理を短くすることは効果大

昨日、 taichiw.hatenablog.com なるものを書いたわけなんですが…小細工を考える前にコードそのものの見直しをすべきかも というお話。結論から言うと、一行変えただけで3分弱→30秒、5~6倍、驚きの速さにwwwww 変えたのこれだけ。 github.com従来、打席毎に…

「2番ペゲーロをみんなでやってみる」ために計算量と戦った話 #bpstudy

ありがたいことに、前回に引き続き今回も、Baseball Play Studyで発表させて頂く機会をいただきました。私の発表 Twitter, 私の発表近辺 twitter.comTwitter, 全体のまとめ togetter.com 計算量との戦い 今回、「シミュレータ」をグルグルまわして最適な打順…

「カイゼン・ジャーニー 第1部 一人から始める」 今の自分にハマりすぎてた!

先日、 DevLOVE10年記念イベント「俺たちはどう生きるのか?」 - DevLOVE | Doorkeeper に参加した*1際に、「ブログを書くこと!」条件付きで(笑)頂いた、カイゼン・ジャーニーの感想第一弾です。カイゼン・ジャーニー たった1人からはじめて、「越境」す…

パワーポイントの”Align機能”

日本語でなんていうのかわからないからとりあえず英語で書いた。http://taichiw-e.hatenablog.com/taichiw-e.hatenablog.com以前にマイクロソフトの澤円さんのお話を聞いたときの「ライブプレゼン作成」で教えてもらったテクニック。 知ってるのと知らないの…

Gunma.web #30 「DDD」に参加してきました! #gunmaweb

Gunma.webさんの勉強会に参加してきました。 テーマはDDDでした。 何故参加したか → 「DDD」が良い「切り方」を教えてくれるんじゃないかと思って… 私は、正しく『切』られたコードは読みやすいコードであり、結果、修正しやすいコードである と考えています…

「エンジニアで有り続けたい」って

大した努力もしていないのになんとなく言い続けてるのって、 夢を追い続けているミュージシャン と一緒だわな… 本気で一生エンジニアやろうとしている人や、「でも自分はこっちのほうが適正はあると思う」な仕事(人じゃなくて仕事そのもの)に対して失礼極…

ノートもホワイトボードも持たないで、PCの前でウンウン唸ってる子を一日に二人ほど見たので、勢いで書いてみた。

Baseball Play Studyで発表してきたんだけど一応ささやかながら技術的な勉強もしているのよ という記録 #bpstudy

今年も野球バカの発表を Baseball Play Study 2017 冬 野球振返りスペシャル(BPStudy#124) - connpass でさせていただきました。 資料はこちら。*1 野球にご興味ある方には、是非内容も見てご一笑いただければ幸いなのですが、このブログでは「一応発表の過…

SlideShareの再アップロード機能がなくなってしまったので、Speaker Deckに引っ越す。(比較表もあるよ)

プレゼン資料のアップロード。 もともとSlide Shareを使っていたため、ちょっとイライラする事があったり、「イケてるエンジニアの人のSpeaker Deck率高いなぁ…」と思いつつもSlide Shareを使い続けていたのですが、 何やら技術的な理由*1によって再アップロ…

新しいサービスを引き継ぐにあたって「ドメインナレッジ」は必要か

今年の二月ころ、ある会議の中で、 「ドメインナレッジが不要なプロダクトを作りたい」 と発言した。他の参加者の皆さん(偉い人多め)からは、総じて「ポカーン」とされてしまった。実は、その時の私は、なぜ「ポカーン」とされているのか、よくわからなか…

非同期処理の成否をクライアントが追いかけるのは良くない

何かのサービスを非同期で実行する場合。 運悪く、サービスダウンなで実行されなかった場合に、どのように検知・リカバリを行うか。 サービスダウンによる再送をクライアントにしてもらうのはよろしくないので、 サービス提供側がキューを用意して、再送処理…

雑記:MVC「コントローラ」ってコントローラか。

私がMVCモデルという言葉を知ってからかれこれ10年以上経つんですが、「コントローラ」っていうのが長いことずっとしっくり来ていませんでした。モデルとビューをつなぐ だとか。 ユーザの入力を受けてモデルを呼び出す とか。 Ruby On Railsタイプのフレー…

持論:Application Layerがシンプルなコードは読みやすい

DDDでは全てのビジネスロジックはドメインクラスに、とのことなので当然プログラムの肝はドメインクラスなのですが、コードの読みやすさは8割がたアプリケーションレイヤで決まると思っています。 Springで言えば、Controllerから呼ばれるServiceクラスの、…

『現場で役立つシステム設計の原則』 増田亨さん を読んだ。「データしか持たないデータクラスは作らない!」

こちらの本を読んででのレポートです。現場で役立つシステム設計の原則 〜変更を楽で安全にするオブジェクト指向の実践技法【電子書籍】[ 増田亨 ]価格:3175円 (2017/11/4時点)複雑な業務ロジックは「適切な境界」で分離されていれば理解しやすくなる! …が…

『一生、エンジニアで食っていこう』漆原茂さん 楽天テクノロジーカンファレンス2017 レポート #rakutentech

楽天テクノロジーカンファレンスで聞いた、漆原茂さんの『一生、エンジニアで食っていこう』というセッションのレポートです。 私的に刺さった話 0x30歳ころ 何歳でも技術で仕事したい!…と思った。 そのためには、自分自身の「進化」が大きな課題だった。 …

『未来を創るプレゼン術』:澤円さん 仙台IT文化祭レポート1 #sendaiitfes

今年発足した、仙台IT文化祭というイベントに参加してきました。 この記事は澤円さんの『未来を創るプレゼン術』という発表のレポートです。 プレゼンは相手に行動させるためにするべし 私にはこの言葉が最も響きました。 これまで、いろんな場でLTや発表を…

(中身まだ無いです) spring-cloud-sockets と言うものを教えてもらったんだけど

GitHub - viniciusccarvalho/spring-cloud-sockets: Reactive socket communication for microservicesこれとSpring WebFlux の関係… というかそもそもWebFluxって何 的なのがさっぱりわかってないので後でちゃんと調べる調べる…… きっと。 多分これも関係あ…

Maven vs Java9のModule(Project Jigsaw) : 依存はどっちが勝つの? (追記:あんまりMaven関係なかった)

無事Moduleを使ったビルドがMavenでできたところで、本当にやりたかった検証へ。Mavenで複数プロジェクトが同一プロジェクトに依存していると、「どれか一つ」が使われることになります。 全て同じバージョンなら問題にならないのですが、それぞれ異なるバー…

MavenでJava9のModule(Project Jigsaw)を使ってみた

探し方が悪いのか、わざわざ書くほどのことでもないのか、mavenでJava9のmoduleを使うとどうなるか という記事が英語でも日本語でもWebで見つからなかったので、試してみました&備忘録としてブログに残しておきます。Project Jigsaw: Quick Start Guide こ…

(仕事の話です)剣道とサッカーと交渉ごとって似ていると思うんですよ

私、個人的に中学から大学まで、と少し期間が空いた後、おとなになってから数年間、剣道をやっていました。 (ここ一年半くらいサボり中)多くの方は剣道に馴染みがないと思うのですが、競技としての剣道は非常にロースコアゲームで、「一本」がなかなか取り…

RESTful APIってなんか意味あんの? って言うタイトルのブログを書こうと思ってるんだけど

うまく言いたいことや考えがまとまらず書く書く詐欺になっているので、ひとまず起こっていること・思っていることを書いてみたいと思います。 起こっていること シンプルな、データの永続化を行うだけのWeb APIが、リソースの種類ごとにそれぞれ作られていま…

Date型をTRUNCするとIndexが効かないよ という話

これ自体は昔から聞いたことがあったのですが、イマイチずっと理由がわかってなくて。SQLのパフォーマンス問題を引き起こす日付型単純に、OptimizerはTRUNCすら何か知らないというのが原因なんですね。