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

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

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

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

雑記: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すら何か知らないというのが原因なんですね。

JavaDayTokyo 2017 Report 2 : Reactive Stream

Reactiveなんちゃらというのがどうもわかりません。という私が、Pivotalの槙さんのお話を聞いて、随分わかったかも!という気持ちになったセッション。 改めてブログにまとめなおしてみるとやっぱりわかってないところが多々あるのですが、ひとまず忘れない…

JavaDayTokyo 2017 Report 1 : Java9 関連

今年もJavaDayTokyoに出席させていただきました。この記事ではJava9関連についてまとめます。Oracle的な目玉はJigsawとjshellでした。が、Jigsawは去年のJavaDayTokyoで集中的に話を聞いたけどあまり使いどころがないなぁ… と感じ、 jshellはあると便利だけ…

読んだ:『伊藤直也氏が語る、マネジメントで本当に大事なのは「問題にフォーカスする」である理由 』

先日、こちらの記事を読みました。 codeiq.jpここ二年間の自分と重なる部分が多く、自分に足りなかったところを振り返るきっかけとなりました。 自分とかぶっているところ 私自身は二年と少し前、異動になり、ある開発チームのリーダーになりました。それか…

開発チームに必要なポジションを書き出してみた

今の自分の所属組織の開発フローとか組織わけをベースに、こういう人(役割)がチームに必要だなー というのを書き出してみました。 「攻め」 新しい技術を積極的に開発に取り入れることが可能。 →アンテナが高いことが求められる 圧倒的なコーディング力。…

チームのKPTをちょっとだけ深堀すること

ふりかえりの手法としてKPTはメジャーな方法の一つだと思います。 私がチームでふりかえりする際に、ファシリテータとして少しだけ気を使っている事があります。 KやPは少しだけ掘り下げる メンバーに意見を挙げてもらうときに、「うすい」意見が出ることが…

【裏話】チームとプロダクトをぶっ壊した話 の 裏側 #DevLOVE

DevLOVEに初めて参加させていただき、初参加にも関わらず登壇させていただきました。 チームとプロダクトをぶっ壊した話 from Taichi Watanabe www.slideshare.net 今回こちらを発表させて頂くにあたっても、色々と「越境」したことや思ったことがありました…

XP祭りに参加してきました 2016 #xpjug

ろくにブログを書けていないので、つい数件前のエントリが去年のXP祭りについてです。こんにちは。今年も無事(?)参加させていただきました! 基調講演:牛尾剛さん これを聴いただけでも来てよかった! という内容でした。資料 https://docs.com/ushio-ts…

レガシーコードを JDK 8 でビルドしようとしたら "The system is out of resources" が出た話

今までJDK7でビルドされていたJavaプログラムをJDK8でビルドしようとしたところ、コンパイル時にこんなエラーが出ました。 The system is out of resources. Consult the following stack trace for details. java.lang.StackOverflowError at com.sun.tools…

Java Day Tokyo 2016 参加レポート2 マイクロサービスについて #javadaytokyo

今回のもう一つの参加目的、 「マイクロサービスの実践例と、支援するようなJavaのアーキテクチャについて」です。 モジュールによるマイクロサービス? はじめに、「1-A Java SE 9 Overview」より。 Project jigsaw によるModulanizeの目的の一つは、「開発…

Java Day Tokyo 2016 参加レポート1 今後のJavaの動向、特にJava9について #javadaytokyo

3年ぶりにJavaDayTokyoに参加しました。今回の自分のテーマは2つ・今後のJavaの動向、特にJava9について・マイクロサービスの実践例と、支援するようなJavaのアーキテクチャについて前者については、Java8導入直前にSan FranciscoでのJavaOneに参加させても…

Baseball Play Study で話させていただきました! #bpstudy

昨年に続いて今年もLTさせていただきました。 「エース」と「ローテーション」 from Taichi Watanabe 去年話せてもらった頃はLTそのものに対する慣れが相当あったのですが、どうもここ最近は人前で話すことからご無沙汰気味… 技術的な話は、先日jshellの記事…

IntelliJ IDEAハンズオンに参加しました #ideahandson #jbugj

サムライズムさん開催の、IntelliJ IDEAハンズオンに参加してきました。 今月はあと一回、3月24日にも開催されるようです。開催予定イベント一覧 - 株式会社サムライズム | Doorkeeper まとめも兼ねて、特に「へー!」と思ったものをご紹介させていただきま…

jshellを使ってみた

ちょっとしたプログラミングに、jshellを使ってみました。 jshellとは、Java9から導入される、簡易実行環境。REPLっていうらしい。Rubyでいうirbに相当します。 jshell JDK 9 quick peek 使ってみた感想。 良いところ ・ワンラインサクッと書いて動かせるの…

XP祭りに参加してきました 2 LTした/LT聞いた #xpjug

俺も!LT 昨年に続いて今年も発表させていただきました。 エンドツーエンドテストを自動化したらチームがすごく良くなった@XPまつり2015LT from Taichi Watanabe 自分の中では痛恨の失敗作…言いたいことを一つにまとめられていないのがずっと不安だったので…

XP祭り2015 に参加してきました 1 (講演・ワークショップ) #xpjug

今年もXP祭りに参加させていただきました! http://xpjug.com/xp2015/ 7月まで仕事もプライベートもバタバタだったのもあって、久しぶりにまともな勉強会に参加した感じ。 たくさん刺激を頂きました。 基調講演 XP lives, XP dies, XP lives again !! from M…

今日は、チーム9人全員で「プライベートメソッドのユニットテストは書くべきなのか? ディスカッションができた」記念日

今日はとても素敵な一日になりました。 私を含めたチームメンバー9人が、一つの技術的な話題に対して30分話し合う会を開けた日。 何より嬉しかったのは、この会そのものが、メンバー間でのやり取りからほぼ自然に出てきたことなんです。 回想:本当に「スモ…

チーム異動があって、「ふりかえり」が自分の中では一番大事だと気づいた話

2月の半ばに組織改編があり、新しいチームにリーダーとして異動しました。新しい環境で試行錯誤する中で、自分がチームビルディングにおいて大切に思っているものが見えてきたので、それを書き残しておきたいと思います。数回に分けて書く予定ですが、そう宣…

テストを整備するよりもアーキテクチャを変更するほうが効果が高そうと思った話

2月の半ばに、これまで3年弱携わらせてもらったプロダクト/チームを離れて、新しいプロダクトを担当することになりました。 プロダクト面での一番大きな違いは、これまでは主にデータ更新/参照系のAPI(HTTPでコールして、JSONとかXMLとか返す)ばかりを担…