ドメイン駆動設計入門

普段、電子書籍は買わないけど、この 2月に出たばかりの本が半額ということで電子書籍版を購入。 内容は副題にボトムアップでわかるとあるように、かなり実装よりの内容。開発者には判りやすくドメイン駆動設計への取っ掛かりとしては良い内容。ただ本論ともいえる分析や設計についての思想や技法は終盤に軽く触れてる程度で、詳しく知りたい人は「エリック・エヴァンスの度名駆動設計」を読んでねというスタンス。ただ、「エリック・エヴァンスの度名駆動設計」は本屋でパラ見した程度なんだけど、この本からいきなりあの本に進むのはちとハードルが高いような気も。もう1冊ぐらい間に噛ましたいところだけど、何か良い本はあるんだろうか?

ドメイン駆動設計入門 ボトムアップでわかる! ドメイン駆動設計の基本

ドメイン駆動設計入門 ボトムアップでわかる! ドメイン駆動設計の基本

  • 作者:成瀬 允宣
  • 出版社/メーカー: 翔泳社
  • 発売日: 2020/02/13
  • メディア: 単行本(ソフトカバー)

ブクログ

ここ何年か買ったり読んだりした本は、Scrapbox で管理していたんだが、登録の手間と蔵書のようなデータの管理には Scrapbox は向かないのではという思いから、とりあえず漫画についてはブクログに切り替えることにしてみた。

ここ最近の本については、iPhone用のアプリでISBNを読み込ませれば一発で登録できるので大変楽。ただデータをAmazonからとってくるので、Amazonに取り扱っていないような古い本は登録がなかったり、あったとしても書影がなかったりしょぼかったりするのが残念。Amazonにない本については自分で登録もできるようだけど、著作権の問題だろうけど書影を自分で登録することはできないみたい。非公開なら登録できるとかそういう仕組があれば良いのだが。

この手のサービスは登録したらそれで終わりみたいな感じで、ためたデータをどうこうする部分が弱いなと思う。まぁ、どういう機能が欲しいかと言われてもすぐには思いつかないのではあるが。

登録したデータはエクスポートできるので、しばらく様子見をして、どうしても使い勝手が良くないようであれば自分で作るというのも一つの手だなぁ。

ASP.NET Core で Kestrel のエンドポイントを指定する

ASP.NET Core で作成したWEBアプリケーションは、デフォルトだとローカルホストからしか接続できないようになっている。
顧客へのデモなどで外部から直接 Kestrel で実行されているアプリケーションにアクセスしたい場合など設定を変更する必要があるのでメモ。

Kestrel のエンドポイントを設定するにはいろいろ方法があるが、一番手っ取り早いのは構成ファイル(appsetting.json)に記述する方法で、"Kestrel"というキーの配下にエンドポイントの設定を記述するだけで良い。

{
  "Kestrel": {
    "Endpoints": {
      "Http": {
        "Url": "http://xxx.xxx.xxx.xxx:80"
      },
      "Https": {
        "Url": "https://xxx.xxx.xxx.xxx:443",
        "Certificate": {
          "Path": ".\xxx.pfx",
          "Password": "xxxxxxx"
        }
      }
    }
  }
}

docs.microsoft.com

任意の整数値の最上位の桁を残して以降を切り捨てるには

仕事で、任意の正の整数値の最上位の桁だけ残して、残りの値を切り捨てた値を求める関数を書かなければならなくなった。 例えば、値が 12,345 なら 10,000 を返して、25 なら 20 を返すような関数だ。

整数値の切り捨てに数学関数の Math.Floor() が使えないかと思ったが、簡単にはできなさそうだったんで、次のようなコードを書いた。

private int TruncateBelowMostHighOrderDigit(int n)
            => n >= 10 ? n - (n % (int)Math.Pow(10, n.ToString().Length - 1)) : n;

関数名これで良いの?とか、もうちょっと効率的な書き方ができるんでは? という気がしないでもない。

Python 実践入門

あんちょことして使うのに良い感じのPythonの入門書が欲しいと思っていろいろ探してはいたけどなかなか良いのが見つからない。
最近のブームで入門書の類は沢山出ているけれど、まったくの初心者向けの内容が多くて、自分で読むにはちと物足りない。オライリーの「入門 Python3」でも良いんだけど今買うにはちょっと内容が古いような気がして、なんか良い本出ないかなぁと思っていたところに出たのがこの本。

実践入門と題してるだけあって、まったくの初心者にはややハードルが高い感じはするものの、文法だけでなく開発環境やテストまで実際にPythonで開発する上で要求されるであろう知識を満遍なくコンパクトにまとめてあって、通して読むのにも良いけれど、コーディング中にふと躓いたときとか調べるのにちょうど良い感じだ。日常的にPythonを使う訳ではないので、「この処理、内包表記でいけそうだけど、どう書くんだっけ?」みたいなことが多々あるので便利に使えそう。

Python実践入門 ── 言語の力を引き出し、開発効率を高める (WEB+DB PRESS plusシリーズ)

Python実践入門 ── 言語の力を引き出し、開発効率を高める (WEB+DB PRESS plusシリーズ)

グラフィックスプログラミング入門

ゲーム開発用のフレームワークやライブラリを使用せずJavaScriptのみでシンプルなシューティングゲームを作成することで、Canvas APIを利用したグラフィックの描画方法から、三角関数やベクトル、行列などグラフィックを扱ううえで必要となる数学の基礎とホーミングやエフェクトといったゲームでの応用までぎっちり詰め込んだ本。これだけの内容を350ページほどにまとめているのだが、解説を端折ってる感じはなく読みやすい。流石に最後のゲームとは離れたピクセル単位での画像処理について書かれた章は突然だしボリューム的にも物足りない感じだけど、まぁボーナス・トラックみたいなものと思えばお得ともいえる。

普段、ゲーム(と呼べるほどのものではないが)を開発するときはC#でDXライブラリを利用しているのだが、書かれている内容のほとんどはDXライブラリにも応用の利く内容なのもありがたい。

文系プログラマーのためのPythonで学び直す高校数学

コンピューターでの数値の取り扱い(2進数とか浮動小数点数の説明)から始まり、方程式、ベクトル、行列、統計、微積分と高校数学で習う様々なトピックについてカタログ的に列挙して解説していくというスタイルの本。各題材についてそれぞれPythonによるサンプルコードがついてくる。扱っている範囲が広いこともあって解説はかなり簡潔だがボンクラな文系プログラマにも判るような平易さで書かれている。

1から体系的に学び直すという感じの本ではないが、コードを書いてて数学的な疑問が出てきたときにパラパラめくって確認するにはちょうど良い感じ。