作記録

記憶代わり

2021-01-01から1年間の記事一覧

モデル

結論 モデルは、目を通して脳が描写した世界ではなく、事実と事実の積み重なった概念から作ることが出来る。 リソースモデル 0 -> 1 になる対象。 0 -> 1 の例は、製造・制作など。 イベントモデル リソースモデルに関連する事実。

現状のシステムの設計イメージ

今作ってるシステムからの学び

忘れないようにメモ。 1. 先に +, -, *, / などの計算とif文の判断をドメインモデルに閉じ込める。それが出来たらDB設計をしてapplication層を作り始める。 2. 後々キーが分かりづらくなるから自然キーではなくサロゲートキーを使った方が良さそう 3.エラー…

ドメイン駆動設計はやめた方がよいんじゃないか...

結論 ドメイン駆動設計を意識しているせいで余計な事ばかりしているケースが多い... 説明 最近の僕の感想は、 「ドメインに興味を持てないならドメイン駆動設計はやめた方がいいと思う」 です。 と言うのは、よいドメインモデルを見つけ出して、そのドメイン…

Spring Frameworkの@Transactionalについて

結論 Spring Frameworkでよく見受けられる下記のような設計をするのであれば@Transactionalは、application層ではなくinfrastructure層で使うべきだと思う。 presentation層(@Controller) application層(@Service) infrastructure層(@Repository) 説明…

CSSの書き方

結論 .example { /* position, margin などの位置関係 */ position: fixed; bottom: 0; /* 要素の大きさ関係 */ height: 100px; width: 100%; padding: 1% /* flex系 */ display: inline-flex; justify-content: center; align-items: center; /* その他 */ …

ドメインオブジェクトだけを先に書く

結論 application層のServiceやRepository、infrastructure層のDBアクセスの実装は一旦無視する。 メモリに永続的に保存出来ると仮定する。 Junitのテスト上でドメインオブジェクトだけで機能を実装するようにする(永続化を無視しているので現実には出来な…

ドメインを独立させる

結論 WEBシステムが提供出来る価値を大きく分けると下記の通り。 記録 参照 計算 判断 表示 このうち、計算・判断・表示は、ドメイン = 領域 の関心事に近い事である。 それをドメインモデルで表現する。 記録と参照はシステム自体の関心事に近い事である。

footerを固定させずページ最下部に表示させる

参考 https://codepen.io/cbracco/pen/zekgx ちょっと改変 html { height: 100%; box-sizing: border-box; } *, *:before, *:after { box-sizing: inherit; } header { padding: 0; } body { position: relative; margin: 0; padding-bottom: 6rem; min-heig…

コトを記録するように振り切る

jtnsaku.hatenablog.com 上記のオブジェクトをまとめるオブジェクトについて書きました。 これは、コトの記録もモノの記録も同じ世界線にある前提です。 しかし、コトを記録することに振り切った設計にした方が良い気がしてきました。 なぜなら、この世界は…

HttpServletRequestで取得出来る情報について

HttpServletRequestで取得出来る情報例 HTTP Mehod: GET URL: http://localhost:8080/test?category=book&year=2000 getMethod(): get getQueryString(): category=book&year=2000 getRequestURI(): /test getRequestURL(): http://localhost/test getLocalA…

ビジネス

前置き 現状の僕は、僕の周りの人と比較してお金に対する興味が薄いと思います。 例えば、友達が「年収●●円だ!」と聞いても「そうなんだ」としか思いません。 そんな事よりも、その会社が楽だとか、良い人が多いとか、こういう仕事をしているとかそういう話…

Material designのbreakpoint systemについて

参考 material.io まとめ 自分の言葉でまとめると下記のようになる。 画面サイズが0~599dp(extra small breakpoint ex: スマホ) bodyは画面サイズに合わせて広がる。 marginは16dpで固定。 カラム数は4。 画面サイズが600~904dp(small breakpoint ex: タブレ…

MyBatis Spring-Boot-Starter(MyBatis Integration with Spring Boot)について

1. 本記事で利用した技術のVersion openjdk 11.0.9 mybatis-spring-boot-starter 2.2.0 PostgreSQL 13.1 2. MyBatis Spring Boot Starter GitHub github.com 3. 公式 MyBatis document MyBatis https://mybatis.org/mybatis-3/ja/index.html MyBatis-Spring …

テスト駆動開発メモ

テスト駆動開発の目的 動作する綺麗なコードを書く事。 テスト駆動開発のサイクル 1. システムが達成したい機能の目的をイメージする。 例えば、システムで多国籍通貨をレポートさせたい という目的をイメージする。 2. その目的を達成する為の振る舞いを考…

PATHについて

PATHとは PATHとはOSの環境変数の1つである。 OSの環境変数とは OSを利用して実行されている全てのユーザーがアクセス出来る変数である。 例として下記のものが挙げられる。 PATH OS USERNAME PATHが利用される例 ①Node.js がインストールされているシステ…