Dapper

Entity Frameworkを使わずにDapperだけでなんとかするために色々と工夫をしている。
突然なんの話をしているかといえば、C#。

かなりたくさんの人が触る想定のコードのベース部分を作っているので、using忘れるとバグるとか、接続文字列を環境変数から毎回取得しないといけないとか、そういうことはやりたくない。
決まったクラスの決まったメソッドを呼べば良くて、内容だけ関数を渡すような実装にしたい。

public static List<Identity> Insert(Func<SqlConnection, SqlTransaction, List<dynamic>> queryFunc)
{
    using var connection = new SqlConnection
    {
        ConnectionString = connectionString
    };
    connection.Open();
    var transaction = connection.BeginTransaction();
    try
    {
        var results = queryFunc(connection, transaction);
        var resultsIds = results.Select(x => new Identity(x.id)).ToList();
        transaction.Commit();
        return resultsIds;
    }
    catch (Exception)
    {
        transaction.Rollback();
        throw;
    }
}

で、なんか結局こんな感じになった。
いや、EntityFramework使わせてくれればこんなことしなくて良いんだけど…。

Done

曲作らないといけないのだけど、全く進まず。
進まず、というと頑張っているのに進んでいないような雰囲気だけど、頑張っていない。
頑張って欲しい。

Myopic Eyes

なんかとても近視眼的な内容のポエムが続いたのでぐったりしてしまっていた。
今日からまた再開する。
多分すると思う するんじゃないかな
三日坊主は、ちょっと覚悟している。

なんか仕事で必要そうなのでSpring Bootをちょっと触った。
思ったより良くて、あ〜便利ですね、便利ですねぇ〜という感じ。
Security 一発でJWT扱える感じとか、テストプロジェクト作る時に勝手にDIコンテナがテスト対象を突っ込んでくれるとか、良い。
問題はJavaな事と、あれがリフレクションによって行われている事かな、と思う。
Kotlinで書けたら便利だろうな、と思うし、ていうかそれならやっぱいっそScalaでやっぱり書かせてくれ〜〜という気持ちにどうしてもなってしまう。
まぁ勿論書けなくはないんだけど、旨味もあんまりなさそう。

Javaもかなりよくなっているけど、結局Stream API使った時に検査例外の対処をどうするんだとか、case classが11にはまだないとか、末尾再帰最適化がないとか、パタンマッチがないとか、つらみが色々ある。
こっそり↓とか使えばいいんだろうか…?
https://www.vavr.io/

Protocol

挨拶や敬語なんかに代表される礼儀等と呼ばれるものは、その集団だけに通用するプロトコルで、そのプロトコルを用いる事と自己像や人格は切り離して考えないといけない。
例えば、言葉が通じないジャングルの奥地にある村に迷い込んだ時、その村では『目があったら「わしゃー!」と叫ばないと殺される』というルールがあるらしい、という事前情報があったとする。
自己像や人格とは無関係に、誰もがその村の人と目があったら「わしゃー!」と叫ぶと思う。
「元気の良い挨拶が好まれる」とか「礼儀正しいふるまいが評価される」というのは、その未開の村にあるルールとだいたい同じで、意味はないが守らないと死ぬので皆守っている。

しかし、元々の意味は完全に失われているので、自分が意味もなく挨拶をしている事に対して認知的不協和が生じる。
すると、それを解消するために「挨拶をするのは良いことである」「挨拶をしている自分は好人物に違いない」「挨拶をしない人間は駄目なやつに違いない」という認識が形成される。
その認識は本来あったであろう「余所者を識別する」という挨拶の本質とも相性が良く、何も考えなければその環境のプロトコルを意味もなく良いものと思い込んでしまう。

「挨拶が出来ない人間は駄目だ」「礼儀の悪い人間は駄目だ」という文言には、上記の認知を盲信して言っている場合と、その環境に敷かれたプロトコルを見抜けない事が駄目だ、と言っている場合の2種類があると僕は思っている。
後者についてはそこそこ理に適っているので、挨拶することが評価される場所では挨拶をすべきだ。
逆に、誰もそんな事をしていないのであれば、自分の環境のプロトコルがそこでも通用すると勘違いしてはいけない。
そういう人は前者に多そうだ。

Sabo

一日中作業をしていた。
HALのWEB系の学科で何をやっているのか聞いた。