Magnolia Tech

いつもコードのことばかり考えている人のために。

米久保 剛 著『アーキテクトの教科書 価値を生むソフトウェアのアーキテクチャ構築』という本が出版されます

6/14開催の設計ナイト2024で「コンポーネント設計」に関する素晴らしい発表をいただいた 米久保 剛さんの『アーキテクトの教科書 価値を生むソフトウェアのアーキテクチャ構築』という本が出版されます

これは最高の本になるに違いない!すぐに購入だ!と思ったら、すでに購入していたし、なんなら会場にもう一人そんな人が居た、というオチ...

それにしても昨今の設計本のレベルの高さは凄まじいですね、読んでも読んでも読み終わりませんよ

そして、米久保さんは設計ナイトに続いて、大吉祥寺.pmでも登壇されます、お楽しみに!

fortee.jp

オンラインミーティング用に、AT2020USB-XPを購入しました

それまで使っていたオンラインミーティング用のマイクが壊れてしまったので、発売されたばかりのUSBマイク『AT2020USB-XP』を購入しました

ノイズキャンセル、オートゲインコントロールと、クリアな音を実現するための機能が追加されているのと、前の機種から引き継いでいるミュートボタンがオンラインミーティングや、ポッドキャスト収録にぴったりです。

スタンドと、ポップフィルターが最初から付属していてすぐに使える点もポイント高いです。

www.audio-technica.co.jp

ノイズキャンセルの有効、無効を切り替えながら自分の声を録音して試してみましたが、確かにノイズキャンセルが効いてクリアな音になります。最近はミーティングソフトウェア側でもサポートしていたりしますが、ソフトウェアに依らず、ハードウェア側で効くのは気にせず使えていいですね。

また、本体にヘッドホン端子が付いていますが、この端子を使えばダイレクトモニタリングができます。


マニュアルには記載がありませんが、WindowsのTeamsだと、ソフトウェア側のミュートボタンと、マイクのミュートボタンが連動してくれる点も便利です。ソフトウェア側のミュートボタンを押せばインジケータは赤くなり、マイクのミュートボタンを押せばソフトウェア側のミュートも解除されます。

他のソフトウェアとの組み合わせ(Zoomとか、macOSのTeamsなど)では動作しませんが、ファームウェアの記述を読むとWindows11とソフトウェア側のミュートボタンの連動に不具合が有り、機能しなくした、という記載が有るので、本当はもっと色々な組み合わせで有効にしようとしていたようです。

この辺りはもっとサポートするソフトウェアが増えるといいですね。あと、サポートされているソフトゥエアがちゃんと書かれていればもっと良かったですね。


USBオーディオインタフェースとマイクをセットで買うか、ちょいと悩みましたが、演奏の録音までやるわけでもないので、ヘッドホン端子も付いて、会話用のマイクであれば全部一つで賄えるUSBマイクで十分でした。

マイクスタンドに取り付けるか、ちょいと悩みましたが、そうするとヘッドホン端子が遠くなってしまうし、そのケーブルの取り回しが大変な感じになってしまうので、卓上において使うことにしました。

オンラインミーティング用に、AT2020USB-XP、おすすめです。

ターミナルの色とフォントをカスタマイズする

色のカスタマイズ

ターミナルソフトウェアには色のカスタマイズ設定が用意されている。macOSのTerminalでは以下の設定画面が用意されている。

Backgroundは背景色、Textは文字色、Cursorはカーソル色、というのは文字通りの意味。

その他は、以下のとおり

  • Bold Textは、歴史的経緯で太字がサポートされていない端末では太字の代わりに色を変えて表示していたため、別の色が指定できる
  • Selectionは、マウスで選択した際の背景色を変え、わかりやすく表示するための色が指定できる(文字の色は変えない)
  • ANSI Colorsは、ANSIエスケープシーケンスにて指定した際の実際の色が指定できる
    • 黒、赤、緑、黄色、青、マゼンダ、シアン、白の計8色が用意されている
    • 8色それぞれに明るい色(bright)を指定した時に表示される色が指定できる
    • 色の種類の指定自体はアプリケーション側になるため、ターゲットを決めて確かめるとよい
    • アプリケーション側で独自の色指定を行っている場合は当然影響しない
    • 256色の指定も可能だが、色の種類ではなく、直接カラーコードを指定する カラーコードのカスタマイズができるターミナルソフトウェアも有るが、そこまで拘る理由もないので、ここでは割愛
    • 1670万色(24bit color)をサポートしたターミナルソフトウェアも有るが、エスケープシーケンスでRGB値を直接指定するため、ターミナルソフトウェア側の設定とは関係ない
  • カスタマイズの事例は、以下のサイトが参考になる github.com
  • iTerm2など、追加の色のカスタマイズ設定ができるターミナルソフトウェアも多い
  • 例えば、TerminfoをVT100にした場合、本来はモノクロのみサポートの端末のはずだが、OS独自の拡張により色が使えるようになっている

フォントのカスタマイズ

  • 基本的に、mono space fontを選ぶ

  • 日本語用の漢字フォントを含むものもある(見やすさを考慮して、漢字かな、いわゆる全角文字との比率が1:2ではなく、2:3のものもある)

  • powerlineのサポートの有無 専用のフォントを使うことでテキストベースアプリケーションのステータスバーの表示をかっこよくカスタマイズするPowerlineというツールがある github.com

    • source code proはpowerlineのグリフをサポートしている github.com
  • NERDFONTのサポートの有無 更に、NERDFONTと呼ばれるグリフセットをサポートしているフォントもある www.nerdfonts.com

  • 合字(リガチャ)

    • 合字をサポートしたフォントもある...例えばMicrosoftがリリースしているcascadia-code github.com

ここまで書いておいて、以前同じようなエントリを書いていたことを思い出した。

blog.magnolia.tech

で、あまり日本語の占める割合が高くないので、ずっとSource Code Proを使っている

『他者と働く--「わかりあえなさ」から始める組織論』を読んだ

「対話」によって、関係性の溝に橋をかけ、相手への理解を深め、新しい関係を築くための手法を、ナラティブというキーワードを軸に解説する本です。

自分は意見が合わない人が居ると、「この人がこのように発言する、意思決定することの裏にはどんな価値観があるのか?」ということを考えてしまうのですが、そのやり方が上手く形式知化、言語化されていました。

相手との新しい関係性を作る行為を「橋をかける」という表現で分かりやすく解説されています。


とはいえ、この本で解説されているように、そんな分かりやすく人の心が動くのか?というと、それは当然そんな簡単なことではないし、そんな簡単に分かり合える、なんてことも無いよなー、最後は結局「力こそパワー」みたいな展開になることも有るよなーとは思いましたが、まずは「価値観が違うんだ」という認識を持つことができればまぁいいんじゃないかなぁって思いましたマル。

『ドメイン駆動設計入門 』という本が出るそうです

ソフトウェアデザイン誌の過去のドメイン駆動設計特集記事がまとまった単行本が出るそうです。

これは読む用、保存用、教育用の3冊以上買いですね。

過去に感想エントリを書いていました。

blog.magnolia.tech

『読み手につたわる文章 - テクニカルライティング』を読んで、レビューテクニックを身につけよう!

booth.pm

mochikoさんが書かれた『読み手につたわる文章 - テクニカルライティング』という本を読みました。

この本はビジネスの現場で必要な「相手に伝えたいことを正しく伝える」ためのテクニックが詰まった本です。

大事なことがコンパクトに詰まっていて、何度も読み返したり、他の人に紹介するのに適しています。この辺はどうしても商業出版だと一定のページ数が無いと出版が難しいので、同人誌として出版するのに向いている構成ですね。

いくつか「そうだよねー」と思ったトピックを拾っておくと...

  • 読者層を決めてから書こう

    自分も何らかの文書を書く時は、「誰が読むのか?」というのを常に一番考えて書いています。特に、特定の読み手が想定できる報告書などの文書は、まずはどこまで相手の理解度を前提条件として想定できるか?ということを考えます。不特定多数の人向けの文書では難しいですが、特定の人向け、特に直接コミュニケーションがとてる相手であれば素直に聞いたり、確認のための質問を投げたり、色々な方法で相手のメンタルモデルが探れます。場合によっては、質問を投げることで相手も”察して”、結果としてメンタルモデルが形成されることもあります。文書の中に全ての要素を書くと冗長になってしまう、盛り込み過ぎになってしまう時に、「結論から書く」方式も有効ですが、それ以上に「メンタルモデル」を形成するためのコミュニケーションを取る、というのも有効なテクニックだったりしますね。

  • いつまでに何をしてほしいのかを書こう

    この人の文書は分かりづらいな、と思う時、自分がチェックするのは、「事実と推測が混ざっていないか?」「いつまでに何をやってほしいのか明確か?」という二つです。 特に後者に関して、ビジネス文書、特に報告書は「誰かの行動を変容するため」に書かれるはずなのに、そこがボヤけてしまうと何の意味もなくなってしまいます(でも案外、結論をボヤかす、何も言ってない文書を書く人って多いですよね...)

あと至るところでCahtGPTや、ATOKなど、道具に頼るところは頼ろう!というスタンスも、実用文を書くためのプラクティスとしてとてもいい姿勢だな、と思いました。そうですよねー、時間は限られていますし、何か名文コンテストをやっているわけでもないですからね。

そして、この本の最大の大好きポイントは、レビューに関する記載が充実しているところです。特に、特に、レビューする側の心得としての「4.1 レビュアー(レビューする側)のコツ」は年齢が高い、役職が上の人ほど絶対に読んで!今すぐ読んで!読まずにレビューしないで!と言いたくなる大事なことが書かれています。

ほんと目的を間違えたレビューだけはこの世から無くなって欲しいですよね...「このレビューの行き着く先は、精神的な鍛錬?」みたいなレビューは存在してはいけないのです。

と言うわけで、ビジネス文書作成に関わるみんなが読むべき1冊なので、みんなすぐに買いましょう!読みましょう!文書を書きましょう!レビューを(適切に)やっていきましょう!

『ドメイン駆動設計をはじめよう ―ソフトウェアの実装と事業戦略を結びつける実践技法』が出版されます

2021年にO'Reilly Media, Inc.から出版された「Learning Domain-Driven Design」の待望の日本語訳『ドメイン駆動設計をはじめよう ―ソフトウェアの実装と事業戦略を結びつける実践技法』がついに出版されます。

www.oreilly.com

訳者は、増田 亨さん!!


2020年代に、ドメイン駆動設計を学ぶための最初の入り口としてどの本を読めば良いかは、かなり悩ましい...というのはよく言われるのですが(元祖のエバンス本はさすがにだいぶ古くなってきたし、回りくどい表現も多いし...)、そんな時におすすめできる1冊です。

2021年に原著が出版された時に買ってざっと読んでいたのですが、パート1で戦略的DDD(主にビジネス面からの分析)、パート2で戦術的DDD(主に実装面のプラクティス)、パート3でそれを使った実践の方法という流れで、それぞれのトピックに集中できるようになっています。

特に後半は現代的なプラクティスや、アーキテクチャとの関係も明示されていて、1冊で基本的な知識をざっと習得する、という目的には丁度良い構成です。

個人的にはパート1と、パート2の結びつきが大事というか、パート1でユビキタス言語と、境界づけられたコンテキストが揃ったらもう実装に行く?というのは有りますが、この辺は実装例などと比較しながら読み進めた方が良さそうです。DDD百科事典ではなく、あくまで入り口に立つための本だし、そのために必要なところと、そうじゃないところをメリハリつけられているな、という印象でした。

読書会で、それぞれの経験とか、考え方を述べ合うと、その辺りが補完されることでしょう。


と言うわけで、今年の夏の課題図書確定の1冊なので、読んで、読書感想文をみんなで書きましょう!