Entity Framework 6 からリトライストラテジーを使って再試行の振る舞いを設定できるようになりました。 こちらの記事を読むと DbConfiguration を使って再試行ストラテジーを仕込む方法が紹介されています。DbConfiguration も EF 6 から使えるようになった…
DRY ってなんだったっけ DRY (Don't Repeat Yourself) 原則は「達人プログラマー:熟達に向けたあなたの旅」にて初めて登場したプログラミング原則のようですね。この本では以下のように記載されています。 すべての知識はシステム内において、単一、かつ明…
Timer Trigger Function とは Blob に記録する実行状態 Timer Trigger Function はどうやって定期実行をやっているのか TimerTrigger Attribute で指定出来る事 Schedule に CRON 式か TimeSpan を指定し Function の起動間隔を定義する RunOnStartup=true …
人生で初めてのイベント登壇を行いました。最初は社内のイベントだし、想定人数も少なめだったので軽い気持ちで臨んでいました。外部発信力を強めていきたかったので、その経験になればなという感じです。 しかし、イベントをオープンにしてからあれよあれよ…
Span 構造体 Span の何が嬉しいの Span の制約 Span と ArraySegment Span を使って配列を安全にスタック上に配置する Memory
Span<T> と Memory<T> の違いを言語化しようと思って勉強してたら ref 構造体とは何ぞ???となってしまったので基本から学びなおします。 値型と参照型 値型 GetHashCode と Boxing 構造体のメモリ配置 参照型 クラスのメモリ配置 変数の値渡しと参照渡し ref in</t></t>…
自分用に GraphQL を学んだ際に参考にした記事たちとその内容をまとめて残しておきます。 GraphQLスキーマ設計の勘所 ページベースのページングの問題点 GraphQL実践ノウハウv2 GraphQL 成熟度モデルの紹介と、プロダクトに当てはめた事例 / GraphQL maturit…
.NET Core ツールとは 一言でまとめると Console App を Nuget Package 化したものです。詳細は以下に記載があります。 learn.microsoft.com マニフェストファイルを作る パッケージのバージョン管理を行うためのファイルを作成します。下記のコマンドを実行…
下記を使います。 www.nuget.org Repository はこちら。 github.com この SDK を使えば Azure Monitor に対して ReadOnly なクエリをよしなに実行して結果を得られるみたいですね。これまでは Azure Portal 上からメトリクス見て~と判断していたものを、プ…
Elasticsearch の Mapping に定義出来る下記の項目について調べたことをまとめます。Elasticsearch の version は 6.8 です。 index doc_values fielddata enabled www.elastic.co 各項目の用途のまとめです。 index doc_values fielddata enabled 用途 検索…
5 章 レプリケーション リーダーとフォロワー ノード障害への対応 フェイルオーバーの問題 レプリケーションログの実装 ステートメントベースのレプリケーション WAL の転送 論理ログレプリケーション トリガーベースレプリケーション レプリケーションラグ…
KQL を書くことが多くなってきたので自分用のメモを残しておきます。構文とか便利メソッドのまとめ集です。基本的には公式ドキュメントにあるものを色々試した結果を載せていきます。 クエリの対象は Azure Function の実行ログとしています。 一分単位で Er…
1 章 意見とは何か 意見とは「正解のない問題」に対して自分なりの考えを持つこと。「正解のある問題」には意見は持てない。正解か誤答しかない。 正解のない問題とは、「開発生産性を高めるにはどうすれば良いのか」といったようなもの。こういった類の問い…
1 章 全ての要素を冗長化する クラウドサービスの利用者であり提供者であるので、色んな角度で物事を見られる。 普段意識していないだけで実態は物理的な機器だし。 そもそも Azure にはリージョンを指定出来るものと出来ないもんがありそう。 指定出来る ->…
動機 「考慮不足であった」「認識出来ていなかった」といった類のミスを未然に防ぎたい 誰も認知できていない解決が必要な課題を定義し、プロダクトをより良くしたい それらのために、ロジカルシンキングとクリティカルシンキングを意識的に使い分けるように…
動機 自分自身が気づいていない領域に気づけるようになり、知識の幅を広げたい 何かを得るための一歩目は、得ていないもの・得るべきものの存在に気づきこと、みたいな 当たり前に思っていることに気づき、それを疑えるようになりたい プロダクト開発におい…
動機 ソフトウェア開発プロセス内で要件定義のレビューの通り具合が悪いので改善したい チーム全体のテクニカルライティング力を向上させるために、横展開出来るスキルを身に着けたい 2 章 考えをカタチにする 3 章 ピラミッドを作る 論理的思考の基本 帰納…
Database に接続する時に SqlConnection を使っていたんだけど、 毎回インスタンス作っていいの? Pool とか再利用されてるの? みたいなが疑問が出てきたのでまとめる。 learn.microsoft.com をベースに色々試していく。 The pooler maintains ownership of…
動機 1 章 監視のアンチパターン 2 章 監視のデザインパターン 3 章 アラート、オンコール、インシデント管理 7 章 アプリケーション監視 動機 オブザーバビリティと監視の違いが良くわからないので理解したい 関わっているプロダクトの運用を監視の文脈でよ…
1 章 お金の計画の基本 お金の計画を立てるとは自分が欲しいものを知ること。まぁでも計画自体にあまり価値はないんだろうな。お金の価値って時間ともに変わっていくし、計画を立てた当時では買えたであろうはずのものが買えなくなってしまったってことはあ…
Rule の作成 Rule の作成 この記事を読みながら learn.microsoft.com CreateRuleAsync というメソッドを使えば、ある topic の subscription に適応するルールを作成できます。 このルールを適応すれば、例えば以下のようなことが出来ます。 ApplicationProp…
1 章 解像度を上げる 4 つの視点 解像度とは...「物事の理解度や、物事を表現する時の繊細さ、思考の明確さ」を表すもの。解像度が高いほど、これらのことも高いことを表す。 解像度の高い人は、対象を以下の 4 つの観点から見ている 深さ 対象の物事や事象…
1 章 世界一流のエンジニアは何が違うのだろう 「早く出来るように頑張る」ということが最終的な生産性をむしろ下げていた コピペをしたほうが「成果」は出る。 「理解」して「実践可能」にしていればそんなことすらする必要はない。 自分の場合はなるべく一…
動機 「良いコードとは認知不可の低いコードである」という漠然とした持論は持っていたが、「プログラミング中に発生する認知不可とは」が曖昧なので突き詰めたい 理解し難い物事に対するストレスが半端ないから、極力そんなコードを後世に残したくない プロ…
備忘用のメモです。 結論、インスタンスが破棄される時です。DI Container で生成されたインスタンスのライフサイクルは DI Container で管理されるので、破棄のタイミングで Dispose を呼び出してくれるみたいです。 雑にサンプルコード。DI Container に登…
動機 前書き 1 章 オブザーバビリティとは 2 章 オブザーバビリティとモニタリングにおけるデバッグの違い 3 章 オブザーバビリティを用いないスケーリングからの教訓 4 章 オブザーバビリティとDevOps、SRE、クラウドネイティブとの関連性 5 章 構造化イベ…
Stream を使いまわしたい時に Stream の Potision を初期化する方法です。
.NET の Disponse パターンって何で必要なんだっけってのとどうやって実装するんだっけってのをまとめときます。 前提 Dispose パターンとは? Dispose パターンの実装方法 StreamWriter, StreamReader の leaveOpen まとめ
.NET の Configure について調べたくなったのでまとめます。 GetValue Section Children Option Pattern と Section
GraphQL の入門記事その 1 です。なぜ誕生したのかや、採用するメリットについて書きました。