記事

freee 技術の本 freeeにおけるマルチプロダクト開発

システムアーキテクチャ

freee 技術の本 freeeにおけるマルチプロダクト開発を読んだ。 業務系SaaSだと、共通業務(申請・承認)というドメイン領域で切り出せるのか、なるほど。申請・承認といってもコンテキストが違うとワークフローが違ったり、扱うデータも当然違うと思うので、難しそう。権限や通知と比べると抽象化が難しそうな機能分割っぽさがある。基盤としては申請に関する内容は扱わないようにしているらしい。扱わないよう...

設計 システム設計

いかにして問題をとくか

ビジネス

いかにして問題をとくかを読んだ。 だいぶ昔の本ではあるが、数学を題材とした応用の効く問題に対する思考法について書かれている。 最近の本ではないため少々読みづらい。 問題をとくにはまず問題を良く理解すること、問題を様々な角度から捉えて試行錯誤することが大事であることを十分に思い知らされる。 ...

マスタリングAPIアーキテクチャ ―モノリシックからマイクロサービスへとアーキテクチャを進化させるための実践的手法

システムアーキテクチャ

マスタリングAPIアーキテクチャ ―モノリシックからマイクロサービスへとアーキテクチャを進化させるための実践的手法を読んだ。 冒頭の章でC4ダイアグラムやADRの解説が入っているのが良かった。この本で語られるアーキテクチャの話はそれらの手法を使って説明されている。 APIアーキテクチャのパターンやテスト、運用、セキュリティなどについて書かれている。 WebにおいてAPIに触れないということは皆無だ...

API マイクロサービス アーキテクチャ

信頼性のパターンについて

システムアーキテクチャ

概要 信頼性のパターンについてAzure、AWS、GCPの提唱するパターンに基づいてまとめる。 信頼性とは ユーザー(システムやアプリケーション)が期待する機能を提供し続けることができる性質のことである。 信頼性を支える特性 信頼性は次のような特性によって支えられる。 可用性:システムが利用可能であること 耐久性:データが失われないこと 耐障害性:障害が発生してもシステムが機能し続けること 回復...

信頼性 アーキテクチャ 設計 システム設計

研鑽Rubyプログラミング 実践的なコードのための原則とトレードオフ

アプリケーション

研鑽Rubyプログラミング 実践的なコードのための原則とトレードオフを読んだ。 仕事でRubyを使い始めて、入門的な書籍も一通り読み漁って、ある程度知識が身についてきた段階でより実践的なことが知りたくて読んでみた。 Rubyの実践的な知識はもちろん、Rubyの魅力についてもこの本から感じ取ることができたような気がする。 プログラミングという観点では、Rubyに依らない考え方も拾うことができた。 ...

Ruby

分散SQLクエリエンジンTrino徹底ガイド

データベース

分散SQLクエリエンジンTrino徹底ガイドを読んだ。 SQLクエリエンジン ANSI SQLをサポート フェデレーテッドクエリ 同じSQLで異なるシステムからデータベースとスキーマを参照および使用する データベースではない OLTPを処理するために設計されていない OLAP向けなので、あくまで性能目標はOLAP水準なのではなかろうか   分散システムとしてコンピューティングリソースを...

Trino

punditのコードリーディング

アプリケーション

概要 punditのコードリーディングをする。 準備 punditのリポジトリをクローンする git clone git@github.com:varvet/pundit.git コードリーディング 権限を適用するときに使うauthorizeメソッドを見ていく。 authorize varvet/pundit/blob/main/lib/pundit.rb#L75 モジュールのクラス...

pundit Ruby

Ruby コードレシピ集

アプリケーション

Ruby コードレシピ集を読んだ。 Ruby初心者がRubyでできることやよくあるパターンをインプットするのにちょうど良い本。 これからRubyを学ぶのであれば、本書を読んでおいて損がないと思う。 分かりやすく簡潔に書かれているので読みやすい。 ...

Ruby

relineのコードリーディング

アプリケーション

概要 relineのコードリーディングをする。 準備 relineをクローンする git@github.com:ruby/reline.git サンプルコードを作成する $LOAD_PATH.unshift(File.expand_path('lib', __dir__)) require "reline" prompt = 'prompt&...

reline Ruby

irbのコードリーディング

アプリケーション

概要 irbのコードリーディングをする。 準備 irbのソースコードをクローンする git clone git@github.com:ruby/irb.git エントリポイントを細工する 元の状態だとRubyインストールディレクトリにあるirbを実行してしまうので、ローカルのirbを実行するようにする。 #!/usr/bin/env ruby # # irb.rb - intera...

irb Ruby