Arch Linuxを使ってみた

普段遣いのPCをArchLinuxにしてみたので、イントール時のメモや感想 OSインストール時に参考にした記事 以下の記事を見比べながら、インストールを進めました。 インストールガイド - ArchWiki 私的Arch Linuxインストール講座 古いWindows機をArch Linux機…

LLVM Tutorialをやってみた

自作プログラミング言語というものに手を出してみたくて、LLVM Tutorialをやってみました。 LLVM Tutorialでは、Kaleidoscopeという非常に簡単なプログラミング言語を実装を通してLLVMフロントエンドを学べます。 LLVM Tutorialでは、以下の言語機能を実装し…

LLVM API(C++)でBrankfuck->LLVM IRコンパイラを作ってみた

前回の記事でLLVMの入門として、Brankfuck->LLVM IRコンパイラを作ったことについて書きました。 前回は生のLLVM IRを扱っていましたが、今回はLLVM APIを利用してBrankfuck->LLVM IRコンパイラを作ってみました。 開発環境 $ llvm-config --version 10.0.0 …

C++でBrainFuck->LLVM IRコンパイラを作ってみた

なんとなく自作プログラミング言語について勉強してみたいなーと思っていたところ、LLVM Tutorialを見つけたのでやってみることにしました。 ただ、私には圧倒的知識不足(言語処理系の知識、LLVMの知識、C言語・C++の知識がほぼない)という問題があり、始…

ドメインモデル内でリポジトリのメソッドを呼び出すことについて

軽量DDDやクリーンアーキテクチャでコードを書く際、リポジトリ(インターフェースアダプター)の呼び出しはアプリケーションサービス(ユースケース)で行うことが一般的という認識だったが、ドメインモデル(エンティティ)内で呼び出した方がいいケースも…

「単体テストの考え方・使い方」を読んだ

単体テストの考え方・使い方を読んだので、印象に残った箇所のメモ テストコードも含めたコードは、最小限にするべきである 「第1章 なぜ、単体(unit)テストを行うのか」に以下のような記述があります。 開発者の中には、プロダクションコードとテストコー…

マイクロサービスアーキテクチャを読んだ

マイクロサービスアーキテクチャ(第2版)を読んだので、印象に残った箇所を書いていきます。 マイクロサービスは難しい まず、本書を読んで率直な感想は、「マイクロサービスは難しい」です。 マイクロサービスアーキテクチャを採用することには、メリット…

ソフトウェアアーキテクチャの基礎を読んだ

「ソフトウェアアーキテクチャの基礎」を読んだので、印象に残った点などをまとめていきます。 ソフトウェアアーキテクチャとは 本書では冒頭で、「ソフトウェアアーキテクチャとはなにか」について定義しており、ソフトウェアアーキテクチャとは、以下の4つ…

実践ドメイン駆動設計を読んだ

業務でいわゆる軽量DDDを採用しているシステムを扱っており、そのアーキテクチャの理解を深めるために「実践ドメイン駆動設計」を読んでみました。 戦略的DDDと戦術的DDD 本書を読む前から、DDDには戦略的DDDと言われるものと、戦術的(軽量)DDDと言われるも…

クリーンアーキテクチャを読んだ

クリーンアーキテクチャを(2ヶ月前くらいに)読んだので、内容の復習も兼ねて自分なりにまとめてみます。 振る舞いの価値と構造の価値 まず、ソフトウェアの持つ価値には振る舞いの価値と構造の価値の2種類があります。 振る舞いの価値とは、いわゆる機能…