システム開発で思うところ

Javaで主にシステム開発をしながら思うところをツラツラを綴る

オレオレ

環境変数で設定したい情報のメモ

環境変数で設定したい情報 開発とプロダクトで異なる値になるものは環境変数(もしくは それに準ずる仕組み)で設定したいところです。 まずは、何を対象にするのか整理。 JSF javax.faces.PROJECT_STAGE javax.faces.FACELETS_SKIP_COMMENTS javax.faces.FA…

プログラムから文字列指定を無くす

メッセージをEnumにすることでタイプセーフにする仕組みを以前作りました。 vermeer.hatenablog.jp これと同じように、色々な要素から「文字列で直接指定している」というところを、ちょっとずつ無くしていきたいと思っていて そのためのネタを整理です。 で…

JSFで2重Submit対策

一般的な2重Submitは、hiddenで保持したトークン と サーバのセッションで保持しているトークンを比較する、というやり方だと思います。 さいきょうの二重サブミット対策 - Qiita これは、これで正しいと思いますし、多くの人が知っているであろう やり方な…

BeanValidationのメッセージ遅延変換

過去記事の vermeer.hatenablog.jp vermeer.hatenablog.jp vermeer.hatenablog.jp と、ResourceBundleの扱いを追加した vermeer.hatenablog.jp を まとめ直してライブラリを作成しました。 過去記事との違い ライブラリにするにあたって、過去の記事の実装と…

FormとValueObjectの関係を整理する(続)

前回はコードのイメージということで全量を公開していませんでした。 vermeer.hatenablog.jp 今回は、前回はしていない部分のコードの説明を中心にしていきたいと思います。 Form用のValidation関連 マーカーとなるアノテーションと優先度を示すアノテーショ…

FormとValueObjectの関係を整理する

vermeer.hatenablog.jp で書けなかったモヤモヤしたところを、自分なりにBeanValidationを中心として考えていく中で整理できつつあるので、具体的な実装に入る前に、まず まとめてみたいと思います。 それは、画面用オブジェクト(以降、Form)とドメインオ…

BeanValidationのメッセージを遅延変換させる

はじめに BeanValidationのメッセージを遅延変換する、ということの意図を簡単に説明したいと思います。 BeanValidationは検証(validate)した際にメッセージ変換も一緒に実行してくれます。 基本的に、これはありがたい機能なのですが、Domainで発行したメ…

パッケージ構成の考察

レイヤーで論理的な役割を整理したので、次はパッケージです。 パッケージ概要 フォルダ構成例 boundedcontext ├─application │ ├─service │ │ └─hoge │ └─usecase ├─domain │ ├─model │ │ └─hoge │ └─rule ├─infrastructure │ └─datasource │ ├─entity │ └─…

レイヤーの考察

オレオレDDDを一から整理し直し。 まずは、レイヤーから。 レイヤー構成 Presentation 外部インターフェース(外部向け定義および操作)に関する機能を実装する層 「外部に対する表現」が主たる役割 Application ドメインを用いて機能を実現する層 「ユース…

【考察】設計について(2)

要件定義からテスト設計までの流れで個人的に思うところのメモ(2) 自分の経験の整理 vermeer.hatenablog.jp の続き いきなりモデリングはやめよう (また?) 理由 モデリングのような抽象度の高いことよりも、個別具体のところから整理していった方がユ…

【考察】設計について(1)

要件定義からテスト設計までの流れで個人的に思うところのメモ 自分の経験の整理 いきなりモデリングは止めよう 理由 モデリングをしていると、仕事をやった気持ちになるけれど 実現してほしいことに近づいているか?というと そもそも近づくべき目的を共有…

Optionalへの考察

nullを安全に扱うために使用するOptionalの使い方について、自分なりの指針を整理しておこうかなっと。 戻り値にのみ使用する 以上、おわり。 いや、、それだけではだめですよね。。 使用側に通知するため 使用側にとって戻り値がnull可能性の有無が分かれば…

DDDのメモ

概念 原本のエッセンス [ 技術講座 ] Domain-Driven Designのエッセンス 第1回|オブジェクトの広場 [ 技術講座 ] Domain-Driven Designのエッセンス 第2回|オブジェクトの広場 [ 技術講座 ] Domain-Driven Designのエッセンス 第3回|オブジェクトの広場 I…

JSF(ManagedBean)

作成単位 コンポーネント単位(呼出元となるxhtml単位)。 またはユースケース単位(呼出元となるxhtmlが複数にまたがるケース) 個人的なこだわり 少し調べて見ると「ManagedBeanは画面単位で作成します」という表現を見かけることがある。 多くの場合、画…

JSF(Form)

アイディアメモ(随時更新) ViewForm ドメインと画面コンポーネントの仲介役。 ViewFormは使用するドメインクラスをhasするためのクラス。型桁などの基本ドメイン情報はドメインクラスで実装する。 HTMLでのinput要素は基本的に文字列(String)。ドメイン…

CDI

全般 パーフェクトJava EE (Perfect series) [ 井上誠一郎 ]ジャンル: 本・雑誌・コミック > PC・システム開発 > その他ショップ: 楽天ブックス価格: 3,456円 JavaEE7をはじめよう(13) - インジェクション候補が複数ある場合の対処方法 - エンタープライズ…

JPA

全般 Java EE 8がそろそろ固まってきたのでJPA 2.2のJavaDocを日本語に翻訳し始めた(2/3完了) - 水まんじゅう パーフェクトJava EE (Perfect series) [ 井上誠一郎 ]ジャンル: 本・雑誌・コミック > PC・システム開発 > その他ショップ: 楽天ブックス価格:…

スコープについて

@ConversationScoped 画面操作に関するスコープとして、また その考察 実装イメージ 開始ポイントを必ずindex.xhtmlにする。 ファイル名を除くフォルダパスが変更されるタイミングを@ConversationScopedの開始・終了の境界にする。 フォルダ名を宛先(index.…

認証・認可のメモ

HTTPステータス セキュリティ監査で文句を言われないHTTPステータスコードの使い分け - Qiita HTTPステータスコード - Wikipedia 【Java】HTTPステータスコード列挙型 Powered by Wikipedia - Qiita 認証・認可 マイクロサービスで必要になるかなぁって思っ…

思い付きのストック(WebFW)

自分向けの書き溜め(思いついたときに書き足す)。 いつになるか分からないけど、自分なりのJavaEEに薄いラッパーをつくるにあたって、やっておきたいこと。今のシステムのベースとして既に作り込んでいるものも含めて。既に実装しているものについても拡張…

DDDでリファクタリング後を検討してみる

★この記事は過去の検討内容です 再検討のまとめ vermeer.hatenablog.jp 以下は過去の検討メモです。 振り返りができるように残します。 現在、システムのリファクタリング中。 大きなシステムではないですし開発者も利用者も基本的に私一人です。 そんな中で…