色んな事を書く

シンプルさを極めたエンジニアになりたい

2023-01-01から1年間の記事一覧

SQL Server の Connection Pool について

Database に接続する時に SqlConnection を使っていたんだけど、 毎回インスタンス作っていいの? Pool とか再利用されてるの? みたいなが疑問が出てきたのでまとめる。 learn.microsoft.com をベースに色々試していく。 The pooler maintains ownership of…

【読書メモ】入門監視

動機 1 章 監視のアンチパターン 2 章 監視のデザインパターン 3 章 アラート、オンコール、インシデント管理 7 章 アプリケーション監視 動機 オブザーバビリティと監視の違いが良くわからないので理解したい 関わっているプロダクトの運用を監視の文脈でよ…

【読書メモ】アメリカの高校生が学んでいるお金の教科書

1 章 お金の計画の基本 お金の計画を立てるとは自分が欲しいものを知ること。まぁでも計画自体にあまり価値はないんだろうな。お金の価値って時間ともに変わっていくし、計画を立てた当時では買えたであろうはずのものが買えなくなってしまったってことはあ…

ServiceBusAdministrationClient について

Rule の作成 Rule の作成 この記事を読みながら learn.microsoft.com CreateRuleAsync というメソッドを使えば、ある topic の subscription に適応するルールを作成できます。 このルールを適応すれば、例えば以下のようなことが出来ます。 ApplicationProp…

【読書メモ】解像度を上げる

1 章 解像度を上げる 4 つの視点 解像度とは...「物事の理解度や、物事を表現する時の繊細さ、思考の明確さ」を表すもの。解像度が高いほど、これらのことも高いことを表す。 解像度の高い人は、対象を以下の 4 つの観点から見ている 深さ 対象の物事や事象…

【読書メモ】世界一流エンジニアの思考法

1 章 世界一流のエンジニアは何が違うのだろう 「早く出来るように頑張る」ということが最終的な生産性をむしろ下げていた コピペをしたほうが「成果」は出る。 「理解」して「実践可能」にしていればそんなことすらする必要はない。 自分の場合はなるべく一…

【読書メモ】プログラマー脳

動機 「良いコードとは認知不可の低いコードである」という漠然とした持論は持っていたが、「プログラミング中に発生する認知不可とは」が曖昧なので突き詰めたい 理解し難い物事に対するストレスが半端ないから、極力そんなコードを後世に残したくない プロ…

IDisposable を実装したクラスを DI Container で使うとき Dispose はいつ呼ばれるのか

備忘用のメモです。 結論、インスタンスが破棄される時です。DI Container で生成されたインスタンスのライフサイクルは DI Container で管理されるので、破棄のタイミングで Dispose を呼び出してくれるみたいです。 雑にサンプルコード。DI Container に登…

【読書メモ】オブザーバビリティエンジニアリング

動機 前書き 1 章 オブザーバビリティとは 2 章 オブザーバビリティとモニタリングにおけるデバッグの違い 3 章 オブザーバビリティを用いないスケーリングからの教訓 4 章 オブザーバビリティとDevOps、SRE、クラウドネイティブとの関連性 5 章 構造化イベ…

Stream の位置を初期化する方法

Stream を使いまわしたい時に Stream の Potision を初期化する方法です。

.NET の Dispose パターンについて

.NET の Disponse パターンって何で必要なんだっけってのとどうやって実装するんだっけってのをまとめときます。 前提 Dispose パターンとは? Dispose パターンの実装方法 StreamWriter, StreamReader の leaveOpen まとめ

Azure Function での Configure について調べる

.NET の Configure について調べたくなったのでまとめます。 GetValue Section Children Option Pattern と Section

GraphQL 入門 1

GraphQL の入門記事その 1 です。なぜ誕生したのかや、採用するメリットについて書きました。

Query Parameter を扱いやすくしたい

Uri class を使えばクエリパラメータの取得は出来るのですが、文字列だとどうしても扱いにくく良い方法はないものかと思っていました。 調べてみたら HttpUtility.ParseQueryString というメソッドがあって、これを使えばクエリパラメータ文字列を NameValue…

【読書メモ】Good Code Bad Code

4 章 エラー システムで発生するエラーを回復可能なものと不能なものに分類して、それぞれがどういうものなのかを説明した章。 実装する際に、回復可能なエラー (回復することが期待されているエラーも含む) をどう扱うかコードベースで話してる。 まず回復…

Azure Function の timeout と Cancellation Token

Azure Function で Cencel Request が発生するとき Azure Function の parameter には Cancellation Token を bind させることが出来ます。 これを渡すことで Host OS はアプリケーションコードに対して終了通知を送ることが出来ます。 受け取ったアプリケー…

CSV Helper で CSV の行を Deserialize したい

読み込んだ CSV のある Header の値を C# のクラスプロパティにマッピングさせて Deserialize したい場合がある。 そんなときの方法をメモ。 例として CSV で本の「タイトル」「著者」をまとめていたとして、これを C# の Book class に Deserialize する。 …

React で file upload する方法

input tag に Change Event Handler を指定する。 export default function UploadFile() { const [formState, setFormState] = useState<File>(); const onFileInputChange = async (event: React.ChangeEvent<HTMLInputElement>) => { const { files } = event.currentTarget; if (</htmlinputelement></file>…