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

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

Paraya と Java EE 8 で Hello

EEなんだから、やっぱりParayaだよね。 ということで、この記事のParaya版 vermeer.hatenablog.jp Hello しかしていないから、本当にこれが正しいのか全く分からないけれど。。 ParayaはEサーバーなので、pomでの依存解決や、web.xmlなどの記述量が減ります…

Tomcat と Java EE 7(JSF2.2) で Hello

JSF

余分なものを除外した雛型みたいなもの。 画面遷移も なーんにもない、本当に「Hello」としか出力しないもの。 以前、作った時のpomと今回のpomは微妙に違ったりも。 しかも、Java EE 8 がリリースされているのに、Java EE 7(笑)*1 とにかく、これでJSFで…

BeanValidationのメッセージ遅延変換

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

複数のResourceBundleを参照できるようにする

はじめに そもそもResourceBundle#getBundleに対して複数のリソースを読み込ませたいという要求自体があまりないのかもしれません。 もしそれをしたいのであれば、ListなりにResourceBundleを保持しておいて検索すれば事足りると思います。 ですが、BeanVali…

Labelが無くても良いようにしてみた

vermeer.hatenablog.jp の続きです。 AnnotationでLabelを付与するという仕組みにしたわけですが、よくよく考えてみるとFormObjectというインターフェースをもっているのだから、そこで対象クラスを判断してPropertyに登録した表示項目名を参照するようにし…

FormへのBeanValidationにラベルをつける

はじめに 標準のBeanValidationで宣言的に実装する というのをするのは良いのですが、表示させるメッセージとしては「どの項目」というラベルが欲しいところです。 messageに項目名を付与した文言を都度指定する、というやり方もあると思いますが、テンプレ…

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

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

JSFのメモ

JSF

リファレンス 8.9 HTML5-Friendly Markup - Java Platform, Enterprise Edition: The Java EE Tutorial (Release 7) 参考リンク h:messageの使い方 - urotasabisの日記 ふつうのHTMLを書こう! イマドキのJSFの書き方 - タグ編 - Qiita JSFを拡張子htmlで動…

FormとValueObjectの関係を整理する

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

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

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

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

vermeer.hatenablog.jp vermeer.hatenablog.jp

パッケージ構成の考察

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

レイヤーの考察

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

【雑記】ささやかかもしれないですが

昨日(3月7日)、ブログのトータルアクセスが1万件を超えていました。 書評が異常な底上げになっているので、他人のふんどし部分が大きいと思いますが それでも嬉しいものですね。 ブログ作成当初、JSFによるSelectItemsをAjaxで操作することについて、実際…

Kubernetesのメモ

はじめてのDockerパーフェクトガイド(2017年版) from Hiroshi Hayakawa www.slideshare.net Kubernetes ときどき Serverless -- cndjp第1回勉強会 from Hiroshi Hayakawa www.slideshare.net Kubernetes in プロダクション! -- cndjp第2回 from Hiroshi H…

Payara and Hazelcast Japan Office Launch に行ってきました

glassfish.doorkeeper.jp イントロ HazelcastはJCacheの実装として使っている HazelcastはAWSとAzureをまたがってもGridを共有できる。TCPが確立していればOK Parayaサポートの中にHazelcastサポートも メモ 前回、別の勉強会で遅刻したので今回は早めに …

オープンソースの脆弱性で不正アクセス、その責任は誰が負うのか?に参加してきました

オープンソースの脆弱性で不正アクセス、その責任は誰が負うのか? - マジセミ(参加者の役に立つ”本気”の情報提供セミナー) | Doorkeeper ライセンスのこととか、ちゃんと聞く機会を設けることが大事だと思って参加してきました。 所用で5分ほど遅刻して…

【雑記】自動運転を考える

お金がある人が、こんなことをしてくれたら良いんじゃないですかね、という ただの思いつきメモ。 ここから導入したら? 過疎地など地方のバス運行。 なぜ ルートが決まっているので導入コストが低い。 乗車履歴はIoTで管理(スマホでも良い) バスの位置をG…

セキュリティのメモ

HTTPヘッダ 商用環境で設定しておきたいセキュリティ関連 HTTP ヘッダまとめ - A Memorandum HttpServletRequestWrapperを使って、HTTPリクエストを改変する - sinsengumi血風録 Java EE セキュリティ Java EE Security APIが街にやってきた! - Qiita CSRF …

Dockerのメモ

https://qiita.com/osuo/items/99a2b7413ce75f8217be https://qiita.com/74th/items/41393f506d223850f2c3 https://qiita.com/onokatio/items/fcc9f8f94f8533bb030a https://qiita.com/sokutou-metsu/items/b83b275198fc9594f5a4 k8n speakerdeck.com

GitHubにMavenを使って作ったJavaDocを公開

はじめに ざっくり Maven pom.xml 対象をまとめる JavaDocのための編集 タイトルをつける 概要・詳細を編集 外部プロジェクトのドキュメントのリンク パッケージをグループ化 ドキュメントの出力先を指定 タイムスタンプを除去 ローカル環境用のjarの出力先 …

Pluggable Annotation Processing API でコード生成

vermeer.hatenablog.jp で紹介したツールのコード生成のベースとなっているプロジェクトについて紹介したいと思います。 概要 本プロジェクトを使用することでのメリット AnnotationProcessorを統一的に操作できます 定義用XMLで外部からパラメータを指定で…

プロパティファイルからEnumを生成

Pluggable Annotation Processing APIを使用して、プロパティファイルからEnumクラスを生成するプロジェクトです. ビルドの都度、自動で生成するので常にプロパティファイルとEnumの整合性が取れた状態が保てます. vermeer.hatenablog.jp の続きであり、私が…

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

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

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

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

FactoryはEnumで実装すると良さそう

Enum活用への提案 ヒントになったのは「現場で役立つシステム設計の原則」。 現場で役立つシステム設計の原則 変更を楽で安全にするオブジェクト指向の実践技法 [ 増田亨 ]ジャンル: 本・雑誌・コミック > PC・システム開発 > その他ショップ: 楽天ブックス…

Optionalへの考察

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

ツールのメモ

UML Google Code Archive - Long-term storage for Google Code Project Hosting. PlantUML Web Server

クライアントのメモ

SPAとかJavascriptとかクライアント関連のメモ SPAを構築するときに知っておいた方がいい7つの課題 | I am mitsuruog Yeomanを使った簡単SPA開発手順 - albatrosary's blog ブログをシングルページアプリケーション(SPA)にするメリット・デメリット | ある…

UIデザインのメモ

非デザイナーエンジニアが一人でWebサービスを作るときに便利なツール32選 - Qiita