X(Twitter) Zenn GitHub RSS 共有

メモ置き場

作成日時:2024-12-02
更新日時:2024-12-02

メモ置き場。見出しもばらばら。
いつかまとめる。


・作業をするなら目的を定めろ
→何がしたいのか
 負荷試験をするならどういったデータを作ってどう登録し、どういう指標を取るのか。

・コーディング規約 / コードレビュー / 設計書
→設計書が無いと属人化を招く。実装者にしか分からんから。
 設計書が無くてもコードを見ればいいが規約やレビューがなされていなければ可読性が低い。

情報連携
チームへの外部打合せ内容の展開は絶対。

概念への名づけは脳内インデックスの付与行為

書き手を想像してメンタルモデルを切り替えろ。
Linux向けならLinux向けにビルドするが如く。

タスクの依存関係

ファインマンテクニック

説明する人がいないならば、脳内の自分に対して説明する。
ある意味、アクティブラーニングの最下層「人に教える」を行っていると言える。

CQRS
イベントソーシングとTime Series Databases

ストラングラーパターン
システム移行戦略「レガシーミミックパターン」&「ストラングラーフィグパターン」とは? - Qiita

クラウドのコントローラー

サービスを管理する奴。

インフラ

基本的に機能はどこのサーバーに置いてもいい。

SSL終端をLBにやらせたりサーバーにやらせたり。
WAFに金がかかるならWEBサーバーに入れれば?ModSecurityとか

YAMLにタブを使うな

仮想化

ホスト型⇒ハイパーバイザ⇒Docker⇒wasm⇒wasm cloud。

WASMを実行するためのランタイム、wasmCloudがCNCFのサンドボックスに | Think IT(シンクイット)

ProxyによるIPの隠蔽

Design Doc

フォーマット案

とりあえず自分が書くのならば、下記の感じ。
減らしても、増やしてもよい。

システム化の対象

クラスもテーブルもヒト・モノ・コトを表せ

みずほ

クレジットカード

npm脆弱性確認

npm audit
npm audit fix

RAID10とRAID01

ストライピングは片方が壊れたら終了。
01はRAID0構成部が1台でも死んだら終了。
10はRAID1構成部が2台とも死んだら終了。

「RAID01」と「RAID10」の違い|「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典

ベクトル化

同じ操作を一度に複数の要素に適用するCPUの機能。SIMD。
PythonのNumPyとか。

JavaならばJVMが勝手にやってくれたり、JNIやVector APIなどがある。
Vector APIはまだ正式化されていない。
Java 22新機能まとめ #OpenJDK - Qiita

高負荷回避

DB

別のDBなどに保存して、後で反映。

AP

制限設けて429を返すとか。

vscodeでサーバ起動できる

FURPS+

複数台サーバー
スティッキーセッションかredisまたはdb。

MQのbrokerを分散させたのがApache Kafkaという認識。

フロントで画像圧縮
エッジでも。

静的サイトにおけるCSRF

サーバー側でcookieに書き込むか、JSでtoken取得用API叩く。

外部アクセスは遅くなる

多少おそくなってもやりたいことがあるならば、それをすべき。
クラウドならコストかかりそうだけど。

確認する

パフォーマンス

「小は美なり」

マルチテナント

1システム1会社から、1システムで複数会社をまとめる。
クラウドの資産は減らせる。
セキュリティ関連の被害を局所化できる。
DBへのレコード追加により、無停止で会社を追加できる。
懸念点は多い。

DBのセキュリティに関しては、RLSでDBユーザごとに参照する行を制限するのもいいが
パフォーマンスは低下するし、設定ミスをしたらまずい。

CDNにおける圧縮ファイルの供給

(AWS CloudFront) 圧縮ファイルの供給
CDNでWEB高速化 コンテンツ圧縮(gzip)の設定と注意点

転送量の削減により、料金の節約と表示スピードの改善が出来る。
CloudFrontはデフォルトで設定がOFFらしいので設定すべき。

protocol buffers

gRPCで使われたりする。
スキーマ(構造)言語。

EXCEL

VLOOKUP

取得する値が空白の場合、“0”が返却されるので、それが嫌ならば

=VLOOKUP()&""

で空白に変換できる。

フィーチャーフラグとアクセス制御

権限やデプロイ先に応じて処理の有効無効を切り替えるのは、フィーチャーフラグではない。
ただの機能制御。

フィーチャートグル

複数のソースコードのブランチ(機能ブランチ)を維持するのとは別の方法を提供しようとする手法

トランクベース開発などで、ブランチの複雑性の解消やビックバンリリースの回避をしたりするときに使う。
開発が終わっていないものをリリースできたりする。()

BFF

ある意味Facadeパターンだよね。

キャッシュスタンピード/ドッグパイル

キャッシュが切れた時、オリジンへ大量のアクセスが発生すること。

対策

ZOZOTOWNリニューアルで実施したCache Stampede対策 - ZOZO TECH BLOG

カスケード障害

システムの一部で発生した障害が連鎖的に波及し、システム全体に影響を及ぼす現象を指す。
2021年のみずほ銀行みたいなやつ。

サーキットブレーカー

障害発生時にタイムアウトまで待たせず、即遮断する。

RASIS - Wikipedia

タイムアウト

タイムアウトしても処理は続く。
クライアントに返しただけで、バックは継続。

ログ出力

当然ながら大量に書き込むとパフォーマンスは低下する。
しかもそれが並列プロセスから書き込みされるならば、1時間単位で処理が遅くなったりする。
書き込み待ちとかで。

検索結果が多すぎて応答が遅い場合

下記の方法がある。

  1. 一般的なページング。ページリンクを押したら、オフセット使用して取得する。
  2. 検索結果を既定の件数で打ち切り、それ以降の情報が欲しければ、検索条件を指定するように促す。
    1. 規定件数 + 1でLIMITして、件数 = 規定件数 + 1ならば、超えているという判定。
  3. 検索条件を必須にする。

VBA小ネタ

自作関数を呼んだセルを取得する

Set callerRange = Application.Caller
rowNum = callerRange.Row
colNum = callerRange.Column

自作関数で#N/Aを返す

CVErr(xlErrNA)

MQTT-QoS

QoS 0. 最大1回
QoS 1. 最低1回
QoS 2. 1回

EDNS0

UDPが512バイトまでではなく、4096まで可能になった。
CDNにおける最適なCDNエッジを返却。