ターニングポイントさん!?

カテゴリー: 技術 Page 10 of 17

【C#】EnumのNameをAttributeに設定したいマン

◆結論

nameofはコンパイル時に評価されるでよ。かたやToStringとか文字列リテラルはdynamicだでよ。

◆経緯

こういうEnumがあったとして。

    public enum Animal
    {
        Duck,
        Cock,
        Dick
    }

    public enum Action
    {
        Kick,
        Hack,
        Lick,
        Suck,
        Pick,
        Pack,
        Fuck
    }

こういったコードを書くと

[Authorize(Policy = $"{Animal.Dick}:{Action.Kick}")]

OSSを知らない子供たち

「モノの豊かさは本当の豊かさじゃないのだよ嬢ちゃん」というのは良く言われる話で、それを理解した上で所有しすぎているのが俺です。

所有するとスペースがなくなるし、管理にお金がかかるし、価値の高いものだと神経を使うことになるし。なかなか気苦労が多いものだ。

所有できるものはモノだけじゃ無くて、人間関係も繋ぎ過ぎると結構大変だし、スマホゲーも並行し過ぎてわけわかんなくなったり。

例えば共産圏では人民に所有する権利はなく、すべてが公共物として扱われる。(認識齟齬)

嫌です。俺の大事なミソ付きパンツを隣の家のオヤジが履いたりするわけでしょ?(認識齟齬)

MySQLでDATETIMEの秒がずれる

◆結論

ミリ秒付けてクエリを飛ばすと、丸められます。四捨五入される。

◆経緯

DapperFastCRUDを使ってレコードをInsertしていたんだけど、DateTimeが1秒増えたり増えなかったりしていた。

「Dapper、あるいはFastCRUDがパラメータのmillisecondをまるめとるんじゃなかろうか」と思ったんだけど、違った。ミリ秒までそのままぶん投げてた。

クエリを受けたMySQLが悪さをしていて、バージョン5.6からミリ秒のあつかいが切り捨てじゃなく丸めになったらしい。

◆結論(にかいめ)

MySQLマジで消えろ。MariaDB試したいけど、やっぱ元が同じだし駄目なんだろか。

バグチケットの書き方

ほんともー呆れた。から記事にしてみよう。

バグチケットっていうのは、あるシステムにバグが見つかったときに、担当者に向けて「これこれこういうバグがあったよ」という報告をするものだ。バグ報告。

例えば、花火大会で発生した事故を想像してみてくれ。

筒に発射火薬を入れ、花火玉をつめ、落とし火を入れた。

そうしたところ、花火が横に射出され、観客席に飛び込んでから爆ぜた。

バグは「筒が横に倒れていた」ことだ。じゃあ、これについてバグチケを起こしてみる。

システム障害なニュースを読むとき

軽減税率で「えきねっと」が障害を起こしましたな。えきねっとは紛うことなきクソ使いづらげシステムなんだけど、例えば、システム開発を知らない君らよ。使いづらいWebサービスを見た時とか、システム障害が発生したときに何を感じるだろうか。

「技術力が無いんだな」と思うかもしれないな。あるいは個人情報の流出があったときに「ITは危ない」とか。それはそれで正しいんだけど、そこまで単純ではない。その辺を紐解くための参考情報を提示させていただく。

一般の人が使うシステムと、会社で働く人が使うシステムがあるな。どちらもそりゃシステム障害が発生する。困るね。使いづらいシステムも困る。どうしてイレギュラーは発生するんだろう?

◆開発者に技術力が無い

これが一番わかりやすいのかもしれない。

axiosのgetメソッドでdateをISO8601形式にoffset付きで変換

◆結論

qs : [New] stringily: Add serializeDate option to customize Date serialization.

◆やりかた

  • dayjsyarn add(あるいはnpm install)
  • qsyarn add
  • ふつうTypeSciptを使ってるはずなので、「yarn add @types/qs」もする。
  • ここを眺めて、ある程度理解する。
  • 下の感じにする。

※ほぼJavaScriptと変わらんが、TypeScriptの書き方だよ。

baseAxios.interceptors.request.use((config) => {
  config.paramsSerializer = (params) => qs.stringify(params, {
    serializeDate: (date: Date) => dayjs(date).format('YYYY-MM-DDTHH:mm:ssZ') });
  return config;
})

Postmanからcurlコマンドを出力する

API適当に叩くときに、全脊椎動物がPostman的な兵器を使って戦ってると思うんだけど、たとえばCUIしかないVMとかで同じ内容叩きたい時にcurl使うしかないっすよね。

それについて。

※おまけもあるよ💖

◆結論

POSTMAN Learning Center : Generate code snippets

いいコードを書けない人も居るかもしれない

ちょっと心おれるわ。誰しも修練次第でいいコードを書けるようになると思っていた。ちょっと考え甘かったかもしれん。

いずれもっとちゃんと書くけど、つまり、「コードのヤバさ」を感じられない人がいる。

「とっちらかってるなー」とか、「いまオレ読めねぇコード書いてんなー」とか、「これ負荷やばいなー」とか、思うじゃないですか普通。そこんところの感覚が無いというかなんというか。

【C#】nullでいいんだけど「未割当のローカル変数 ‘hoge’ が使用されました。」とか突っ込まれるやーつ

意外と = null してる人が多くて。

◆怒られるやーつ

HogeClass hoge;
var hogehoge = hoge;

未割当のローカル変数 ‘hoge’ が使用されました。

うん。

◆解決するけどダサいやーつ

HogeClass hoge = null;
var hogehoge = hoge;

変数名が揃わなくてやな感じ。それに = nullってなんかダメじゃん。あの…あれだからダメじゃん。

【C#】HttpClientFactoryでRequestとResponseのロギング

◆結論

◆和訳

DelegatingHandler 継承したアレを AddHttpClient してるとこで AddHttpMessageHandler しろや。※解説は後述。

Page 10 of 17

Powered by WordPress & Theme by Anders Norén