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

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

36歳時点で「マネージャー」というものに対して思うこと

今日の記事は日記というか後で自分が読み返すための、雑記要素強めです。チラシの裏。 はじめに、背景 今年の6月で36歳になりました。歳男です。 今年の4月に、弊社内で「マネージャー」と呼ばれている役職になりました。それ以前は「リーダー」または「アシ…

増田亨さん ドメイン駆動設計の正しい歩き方 を聞いてきました #bpstudy

BPStudy#141〜DDD(Domain Driven Design)実践の現場 - connpass に行ってきました! ドメイン駆動設計の正しい歩き方 from 増田 亨 特に心に残ったことまとめ DDDは、「ソフトウェアの変更を楽で安全にする」ことに振り切っている。 逆に言えば、変化がない…

VOYAGEさんの「技術力評価会」がすぐにでも取り入れたいくらい面白かった! #EM集会

今日はこちらに参加しました! エンジニアのマネージメントで悩んでいる人が集まる会 #3 - connpass 今までそれなりにいろんな勉強会/ミートアップに参加してきたのですが、 「マネジメント」「マネージャー」を冠した会は初めてでした。 主催者の方や、一…

増田亨さん「マイクロサービス 4つの分割アプローチ」を聞きに行けなかったんだけど教えてもらったのでまとめてみる #jjug_ccc

背景 私の増田さん追っかけは2017年11月に遡るのですが、 https://taichiw.hatenablog.com/entry/2017/11/05/175105 当時、APIの設計や、そこからつながるマイクロサービスの設計については、まだ試行錯誤されている段階… というお話を聞いていました。あり…

ISO25000を読んでみる - ISO25010 The quality model 前半

「『品質がいい』ってなんだよ!?」を定義したISO25000 の中に含まれる、ISO25010を読んでいます。 こちらのポータルサイトを中心に読み進めているのですが、 iso25000.com 抽象的な説明が中心(&英語)で理解しづらいところがあるため、「こういう意味か…

リアルタイムにそこそこ重い処理を実行するためには、前処理が重要… なのかな? #jsug

JSUG勉強会 2019その3 LINEにおけるSpringの活用 に参加してきました。 ここがとっても気になったのです。 Personalized content recommender systemであるSmart Channelは、ユーザーの属性や趣味趣向を推定し、各個人に最適なコンテンツを推薦するServiceで…

IntelliJ IDEAのSequenceDiagramプラグインが便利

この、SequenceDiagramプラグインで、 vanco.github.ioこんな感じのシーケンス図が描けます。 素敵なのが、 好きなメソッドから始められる 深さが選べる 点です。コードレビュー時などに、深さ2でServiceクラスから始めると、私の好きな感じのコードになって…

【極論ですけど】JavaでforEachを使ったら負けだと思う

正直使い所がわからないんですよね、forEach. ログとかprintfとかする以外は… コレクションを更新するな 未だに時々見るのがこういうコード。 List<X> list = new ArrayList<>(); 適当なコレクション.forEach() .map(t -> list.add(t.getXXXX())); これとっても</x>…

"Rename Hackathon"をしてみました

チーム内で、お祭り的なイベントとして、"Rename Hackathon"というイベントをチーム内でしてみました。 ルール 参加者は30分間ひたすらプルリクエストを送り続ける 「リネーム」のみ許可。名前を変更する対象は、クラス、メソッド、変数名、パッケージ名 な…

「解決策から考える病」に名前をつけたい

…って、タイトルで名前つけちゃってますが。どうしても人間、「なんとなく思いついたソリューション」に飛びついちゃうんですよね。寝坊しまくってるから目覚まし時計を買わなきゃ…! ってなりがち。 その前に、そもそもなぜ寝坊しているか? について考えな…

JavaのHashMapは無限ループを引き起こす

知らんかった。理由がぼんやりはイメージ湧くけどしっくり来てないので後でちゃんと調べ…たい。(だいたいやらないパターン…)d.hatena.ne.jp www.atmarkit.co.jp wadahiro.hatenablog.com 回避方法はいろいろあるみたいだけど、ConcurrentHashMapをつかって…

価値観ババ抜き大体験会!に参加してきました #devlove

悩めるオジサンの私が、自分を見つけるためにぴったりそうな価値観ババ抜き体験会に参加してきました。 https://devlove.doorkeeper.jp/events/85438価値観ババ抜きって何?? というのを書こうと思ったのですが 冗長になる&講師じゃない自分が変に説明して…

あらゆる「システム」の挙動は入力と出力だけで説明できる

どんな粒度、どんな用途の「システム」も、挙動は入力と出力だけで説明できます。 プログラムのサブルーチン(function, method, ...) 「引数」と「返り値」で挙動が説明できます。 public String greet (String name){ return "Hello " + name + "!"; } Mic…

バグチケットに各APIのリクエストとレスポンスが貼ってあったらバグの調査は早く終わるのか?

モヤモヤと考えたことを書き出しています。結論ありません。実践もまだしてません。 背景 私は今、こんな感じでInternalなWeb APIが相互作用するサービス*1に関わっています。 また、こんな感じで組織が別れています*2。 さて、このサービスについて不具合が…

『複雑なドメインに泥臭く立ち向かう』JJUG CCC 2018 Fall #jjug_ccc

JJUG CCC 2018 Fallに参加し、@su_kun_1899 さんの 『複雑なドメインに泥臭く立ち向かう』というセッションに参加してまいりました。speakerdeck.comtwitter.com 法律という完全に外部要因で決まって変えることもできないものが要件に深く絡む世界で、 どの…

3歳の息子が私のサービスを使った日

このエントリは、子育てエンジニア Advent Calendar 2018の14日目のエントリです。 このブログではプライベートなことをあまり書いたことがないのですが、乗っからせていただきます。 About 私 & 息子 (と奥さん) 私には、現在3歳半の息子がおります。一日…

ParallelStreamで外部接続しちゃいかんの? → 独自スレッドプールでParallelStreamを使ってみた

ParallelStreamでI/O待ち状態を作るとプール内のスレッドを食いつぶす? ParallelStreamはアプリ全体で共通で持っているスレッドプールを使う上、CPUのコア数分しかスレッドが無いのでI/O待ちが発生するようなものには使ってはいけない、という話を聞きまし…

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」が良い「切り方」を教えてくれるんじゃないかと思って… 私は、正しく『切』られたコードは読みやすいコードであり、結果、修正しやすいコードである と考えています…