記事

Goでfan-inとfan-outを実装する

アプリケーション

概要 並行処理のパターンであるfan-in、fan-outをGoで実装する。 fan-in/fan-outとは fan-inは、複数の入力を1つにまとめる処理で、fan-outは、1つの入力を複数に分ける処理である。 fan-inはデータを集約させ、fan-outはデータを分散させる。 Goではchannelとgoroutineを使って実現することができる。 実装 ソースコードはgithubにも置...

fan-in fan-out

Template MethodパターンとStarategyパターンについて

アプリケーション

概要 GoFの振る舞いに関するパターンであるTemplate MethodパターンとStrategyパターンについてまとめる。 Template Methodパターンとは 大枠の処理を上位のクラスで決めておき、具体的な処理の流れを下位のクラスに任せる設計パターン。 package main type Game interface { Init() Start() End(...

Strategy Template Method

Go言語による分散サービス

アプリケーション

Go言語による分散サービスを読んだ。 Goでの分散サービスの実践について書かれた本。 マイクロサービス文脈でのモダンな技術、構成の背景や実践についても学べると思う。 ...

Golang

スライディングウィンドウの実装

アルゴリズムとデータ構造

スライディングウィンドウとは 配列のサブアレイを”ウィンドウ(サブセット)”をずらすしていくように探索するアルゴリズム。 ウィンドウサイズは固定または動的。 実例としては、レートリミッターで使われたりする。 実装 ソースコードは以下。 sliding_window 与えられた配列から合計がN以上になるサブアレイを探索する関数。 package main import "fmt&quot...

スライディングウィンドウ

multipassでk3sを動かす

インフラストラクチャ

概要 docker-composeで構成されている個人開発のアプリケーションをKubernetes(k3s)へ移行するという試みの際に、multipassを使ってみたのでそれについてメモを残す。 結局移行はしなかったが... k3sはCNCFに認証されたKubernetesディストリビューション。IoTやエッジコンピューティング用途向け。メモリを節約したい、Kubernetesほどのスケールは不要...

multipass k3s

モノレポについて

アプリケーション

概要 モノレポについてまとめる。 モノレポとは モノレポとは複数プロジェクトのコードを単一のレポジトリで管理したもの。対して複数のレポジトリで管理するものをポリレポ、またはマルチレポと呼ぶ。 マイクロサービスの管理方針の1つではあるものの、マイクロサービスを前提としたものではない。 モノリスとは同義ではない。 モノレポの観点 モノレポの運用における観点を整理してみた。 コードの自治 複数チームで運...

モノレポ

実用Go言語

アプリケーション

実用Go言語を読み終わったので読書メモを残す。 何年かGoを触っているが知らなかったり忘れていたことに気づけて大変勉強になった。 変数名 Errorインターフェースを満たすError型の変数名の接尾辞はError ex. NotImplementedError errors.Newで宣言されるエラーの変数名の接頭辞はErr ex. ErrNotImplemented := errors.Ne...

Golang

2分探索木の探索パターンについて

アルゴリズムとデータ構造

概要 二分探索木とは どのノードにおいても、左の子ノード<親ノード<右の子ノードとなるような木。 ex. 5 / \ 3 8 / \ / \ 1 4 6 9 探索パターン 深さ優先探索(DFS: Depth first search) それぞれのノード探索順はwww.momoyama-usagi.com - うさぎでもわかる2分探索木 後編 2分探索木における4つの...

二分探索木 DFS BFS

尺取り法について

アルゴリズムとデータ構造

概要 尺取り法についてまとめる。 英語だと、Two Pointer ApproachまたはTwo Pointer Techniqueと呼ばれる。 尺取り法とは データセット(数列や文字列など)の右端と左端のインデックスを保持して、条件によって左右のインデックスを移動させることで、条件を満たすデータを探索するアルゴリズム。 特定の条件を満たすデータを区間の中から探索したいような時に役立つ。 例題 配...

尺取り法 Two-Pointer Approach

認定スクラムマスター(LSM)になった

ソフトウェア工学

scruminc.japanのRegistered Scrum Masterの研修・試験を受けて認定スクラムマスターになったので感想とメモ。 ちなみに認定期間が1年らしいので、認定を継続するには年に1回小テストを受けて更新する必要があるらしい。 研修を受けた理由 普段、チームでスクラム開発を行っているが、開発者(というかチームリーダー)としてスクラムについて理解を深めて、チームのプロセス改善とプロ...

スクラム