こまぶろ

技術のこととか仕事のこととか。

AWS Certified Solutions Architect - Associate (SAA-C02) を自宅受験(ピアソンVue)して合格した

掲題の通り、AWS Certified Solutions Architect - Associate (SAA-C02) に合格しました。ピアソンVueでの自宅受験が可能になっていたので、自宅で受験しました。 今記事では、これから受験しようかなと思っている人向けに、自分がどんな勉強をしてどうだっ…

MySQL 8.0.20 以前でサブクエリの結果をINで受けるDELETE文を書いたらテーブルスキャンになった話:MySQL 8.0.21 で有効になった最適化の検証

この記事はなに? MySQL 8.0.20 以前でサブクエリの結果をINで受けるDELETE文(後述)を書いたところ、意図に反して削除対象のテーブルが全行スキャンされてしまいました。この挙動が、MySQL 8.0.21 で有効になった最適化によって解消するという情報を得た*1…

ソフトウェアの複雑さに立ち向かう1つの哲学 :『A Philosophy of Software Design』 を読んだ

最近のお気に入りポッドキャストであるe34.fmで激賞されていた『A Philosophy of Software Design』を読みました。初版は2018年に出ていて、今回は2021年に出た第2版を読みました。

文化からツールまでを扱ったタイトルに違わぬ大著『Googleのソフトウェアエンジニアリング』を読んだ

昨年11月末に発売された『Googleのソフトウェアエンジニアリング』を読みました。 Googleのソフトウェアエンジニアリング ―持続可能なプログラミングを支える技術、文化、プロセスオライリージャパンAmazon 細かい内容についての感想はTwitterの方に放流して…

Technical leadership and glue work / Being Glue を読んで

Tanya Reilly による「Technical leadership and glue work」という講演(および、その文字起こしによるブログ「Being Glue」)があります。(以下、講演に特に言及する場合を除き、「記事」として言及します)。 www.youtube.com noidea.dog Manager ではな…

iki-iki のご紹介:いきいき Advent Calendar 2021

本記事は「いきいき Advent Calendar 2021」の18日目の記事です。 t.co 昨年の半ばごろから、 iki-iki という活動(?)に参加しています。この記事ではこのiki-ikiを紹介します。 scrapbox.io iki-iki ってなに iki-iki とは、以下のようなものです。 ここ…

『Release It!』の次に読みたい(読むとは言ってない)英語の技術書

最近、英語の勉強を改めてしていて、その一環として少しずつ読んでいた『Release It!』の2版を一周しました。 とりあえず1周した。消化できていないことも多いが、トピックをたくさん仕入れられたし、良かった。 https://t.co/uvLYttcXba— こま (@koma_koma_…

アーキテクチャデシジョンレコード(ADR)を組織構造の変更にも適用する

ソフトウェアアーキテクチャに関するプラクティスとして、アーキテクチャデシジョンレコード(Architecture Decision Records, ADR)というものがあります。この記事は、それを組織構造に適用してみるとどうなるだろうと考えてみるものです。100%妄想ですの…

「ちいとぽ」こと『Team Topologies』の翻訳(12月1日発売)を読んだ

邦訳が待望されていた『Team Topologies』(邦題は『チームトポロジー 価値あるソフトウェアをすばやく届ける適応型組織設計』。以下、「ちいとぽ」)ですが、発売日(12月1日)を前にして翻訳レビュワーを務められた角谷さんからご恵投いただいた(ありがと…

Janet Gregory さんの Agile Testing for the Whole Team 研修 に参加した

3/1~3/3の3日間で、アギレルゴコンサルティング主催のオンライン研修「Agile Testing for the Whole Team」に参加してきた。

Keynote で作成したスライドを Speaker Deck にアップロードすると Transcript が文字化けする問題への対処法

※以下の問題が発生しない場合もある。おそらく使用するフォントによると思われる。 Speakerdeckの既知の問題 登壇するエンジニア御用達のスライド共有サービス Speaker Deck だが、いくつか既知の問題がある。 たとえば、以下のようなものだ。 kakakakakku.h…

ソフトウェア開発者としての4年目を新しい会社で始めた

今年の4月から新しい会社で開発者として働いています。 2017年4月に新卒で前職に入社したのがソフトウェア開発者としてのキャリアのスタートでもあったので、この4月で4年目に突入していたこととなります。早いものです。 大学院(修士)卒で就職したので、2…

ソフトウェア業界におけるパターン・ランゲージの受容についての覚書:「付録C」を待ちながら

※本稿はあくまで覚書です。大事なことなので本文にも書きました。筆者はアレグザンダーの著作を限られた範囲でしか読んでいないことを予め表明しておきます。また、XP やスクラムについても書籍で得られる知識しか持ち合わせていません。専門家によるアレグ…

Smalltalkを学ぶ会@Skypeを開催しました

2020/05/04に、リモートにてSmalltalkを学ぶ会を開催しました。当日のまとめはこちらです。 オブジェクト指向やテスト駆動開発、デザインパターンなどに関心があり、それらの歴史の中でSmalltalkが果たした役割を考えるためにSmalltalkを学びたいと思ってい…

『データ指向アプリケーションデザイン』を読む(3):2章「データモデルとクエリ言語」

『データ指向アプリケーションデザイン』の2章「データモデルとクエリ言語」についての読書メモ。 データ指向アプリケーションデザイン ―信頼性、拡張性、保守性の高い分散システム設計の原理作者: Martin Kleppmann,斉藤太郎,玉川竜司出版社/メーカー: オラ…

『データ指向アプリケーションデザイン』を読む(2):1章「信頼性、スケーラビリティ、メンテナンス性に優れたアプリケーション」

『データ指向アプリケーションデザイン』の1章「信頼性、スケーラビリティ、メンテナンス性に優れたアプリケーション」についての読書メモ。 データ指向アプリケーションデザイン ―信頼性、拡張性、保守性の高い分散システム設計の原理作者: Martin Kleppman…

『データ指向アプリケーションデザイン』を読む(1):タイトルについて

『データ指向アプリケーションデザイン』を読み始めた。本文だけで605ページという大著なので、少しずつ読み進めていきたい。 データ指向アプリケーションデザイン ―信頼性、拡張性、保守性の高い分散システム設計の原理作者: Martin Kleppmann,斉藤太郎,玉…

書けない言い訳を封じよう:『できる研究者の論文生産術』

ブログを書くようになって15ヶ月が経った。ブログを書き始めたきっかけをくれた師匠ともいうべき存在であるkakakakakkuさんは、三大欲求の一角を「ブログ欲」が突き崩しているとのことだが、僕にとっては今でもブログを書くことは苦痛を伴うものであり続けて…

ブログを始めて15ヶ月が経った

2018年4月22日にこのブログで最初の記事を公開してから、明日でちょうど15ヶ月になる。その間に公開した記事は72本だ。当初、ブログを書く目的として、以下の2つを挙げていた。 長い文章を書く機会としたい 勉強するきっかけにしたい 長い文章を書くというこ…

リチャード・ニクソン『指導者とは』を読んだ

リチャード・ニクソンの『指導者とは』の読書メモ。自らもアメリカ合衆国の大統領という「指導者」でありながら、近い時代の偉大な指導者たちのエピソードと自分自身の指導者論をまとめたもの。20世紀の世界史の主人公たちの伝記としても手軽で面白い。 指導…

10年続ける覚悟を持つことと、続かなくても「無駄だった」と断じないこと

会社の先輩から言われたことだ。 自分は「〇〇すべき」という世間的な勧奨に割と従順で、ブログを毎週書いたり(今は止めてしまったが)コードを毎日書いたりしている。それは自分のために行なっていることだし、「すべき」というのにも反発していないからこ…

和智右桂さんのブログ記事の自分用まとめ

DevLOVE X でもご登壇いただいた和智右桂さんのブログの過去記事から、読みたい/読んだものをテーマごとにピックアップ。 価値の源流に向かう旅 from Yukei Wachi www.slideshare.net 挑戦するエンジニアたち ヒストリー[12-3]|ITエンジニア専門の転職情報…

安西剛さんの「1on1コーチング体験」を受けてきた:自分の感情を掘り下げる

先日、安西剛(@tsuyok)さんによる「1on1コーチング体験」を受けてきた。安西さんによる参加者募集の記事を以下に示す。 www.tsuyok.work 安西さんとは、5月に開催されたイベント「レガシーをぶっつぶせ。現場でDDD!」の際に初めてお会いした。安西さんは…

JavaにおけるOptionalによるnull安全のための覚書

Java8から導入されたOptionalを利用することで、よりnull安全なコードを書くことができる。ただし、使い方を間違えるとかえってバグを生むことにも繋がる。適切に利用するための覚書を書く。 nullを返す可能性のあるメソッドは、Optional型を返すメソッドに…

Web API の仕様をOpenAPI Specで書いてみて

以前、OpenAPI Generatorの紹介記事を書いた。 ky-yk-d.hatenablog.com 上の記事を書いてから、実際のプロジェクトでOpenAPI SpecでAPIの仕様を書くとともに、その定義ファイルからOpenAPI GeneratorでAngularのクライアントコードを自動生成するということ…

6月22, 23日に、豪華スピーカー陣によるカンファレンス「DevLOVE X」が開催されます

DevLOVE10周年イベント「DevLOVE X」 きたる6月22日(土)・23日(日)の2日間の日程で、株式会社ナビタイムジャパンさまにて、ソフトウェア開発者向けイベント「DevLOVE X」が開催されます。 devlove.wixsite.com こちらは、ソフトウェア開発者コミュニティ…

リレーショナルモデルと『Clean Architecture』のエンティティ

(エリック・エヴァンスの)ドメイン駆動設計を入り口にして、オブジェクトモデルとリレーショナルモデルについて考えているなかで、「ドメインモデルって必ずしもオブジェクトじゃなくていいんじゃないの」という思いを強めている。 ky-yk-d.hatenablog.com…

ScalaとJavaにおける変位指定と型パラメータの境界

Scalaのジェネリクスの勉強で、簡単なリストを実装してみよう!というものが出てきた。 詳細は省くが、リストのadd()メソッドは以下のように宣言される。 /* Scala */ abstract class SimpleList[+A] { def add[B >: A](element: B): SimpleList[B] } ここで…

環境構築なしでTDDを楽しむ:cyber-dojoのご紹介

新しい言語をちょっと触ってみたいな、でもIDEとか整えるのはハードルが高いな、というときは、「cyber-dojo」で試してみることが多い。 「cyber-dojo」のトップページ 様々な言語でTDDを試せる「cyber-dojo」 cyber-dojoは、Webブラウザで利用できるコード…

リレーショナルモデルにおける制約とCQRS・SQLQL

前回の記事で、リレーショナルデータベースの役割として、以下の3つを挙げ、ドメイン駆動設計においては最後のものにあまり重きが置かれていないことを指摘した。 集合演算によるリレーションの導出(検索) ディスクへの書き込みによる永続化(蓄積) 各種…