2017-01-01から1年間の記事一覧
今日の Pessimistic Offline Lock は、任意のタイミングにおいて、データにアクセスするビジネストランザクションを 1 つに限定することで、データの不整合を防止するパターンです。 Patterns of Enterprise Application Architecture (Addison-Wesley Signa…
今日からは Offline Concurrency Patterns ということで、排他制御の話に入ってきます。今日は、Optimistic Offline Lock ということで、楽観的排他制御です。 Patterns of Enterprise Application Architecture (Addison-Wesley Signature Series (Fowler))…
今日は Data Transfer Object、いわゆる DTO と呼ばれるパターンです。 DTO の目的は、リモート呼出の効率化です。リモート呼出の際に必要な情報を DTO というオブジェクトの中にこれでもか、これでもかと詰めてやることで、リモート呼出の回数を削減するこ…
Redmine をマジメに使ったことがなかったのですが、使う機会が多くなってきているので、ちょっと慣れとかないと厳しいなぁと思っておりました。 とりあえず本を買ったは良いのですが、手元で確認したいというのと、同じく良く使われるようになってきている G…
特定ディレクトリ配下で特定の拡張子を持つファイルを探すのは find コマンドで一発ですが、一方で、特定ディレクトリ配下の拡張子をすべて抽出する、というユースケースがあります。 ぼくは、.gitattributes に書く拡張子って何にしよう、ってときに、その…
Excel 方眼紙を使いこなすぼくたちにとって、セルの結合というのはエクスカリバーに近しい最終兵器です。 そんなエクスカリバーたる結合セルに入れる文章というのもまた、明治の文豪がその人生を賭して綴り捻り出す人生そのものであって、セル内改行に伴って…
Git での改行コードの取り扱いについてきちんと調べたことがなくて、プロジェクトにおいては「みんなー! ただしく .gitconfig 設定してねー」という立場を取っておりました。 しかししかし、改行コード設定については、もはや個人の設定に正しさを求めるので…
オブジェクト指向の世界においては、小さなオブジェクトが、いわゆるメッセージングパッシングを通して一つの処理を行う世界が構築されます。しかし、このメッセージングパッシングがネットワークを介して多数行われるとなると、その蓄積はいつしかパフォー…
iPhone7 に付属していたイヤホンジャックの変換アダプタをずっと使用してきていたんですが、この間紛失してしまいました。 それでも 3rd パーティのアダプタを使い続けてきたんですが、iOS 10.3.1 にアップデートしたら、「このアクセサリは使用できません」…
ちょっとライブラリ間の依存関係を可視化することになりました。 おなじみ Excel 方眼紙に書くというのも考えたんですが、Microsoft Office のオブジェクトで描画するのって、依存関係が複雑になるほど大変になってきます。 ほらー、きっとモジュール 1 つを…
Patterns of Enterprise Application Architecture (Addison-Wesley Signature Series (Fowler)) (English Edition)作者:Martin, FowlerAddison-Wesley ProfessionalAmazon Application Controller には 2 つの役割があります。 どのドメインロジックを実行…
今年から楽天 Edy を使うようになりました。 ぼくにとっては初の電子マネーだったわけですが、財布から小銭を取り出すことなしに買い物ができ、かつ、お釣りとして小銭が返ってこないというのは大変良いですね。毎日、会社最寄りの FamilyMart で Edy で買い…
最終的に HTML を出力する場合であっても、一度論理的な View に変換した後で、それを実際の View に変換するという 2 ステップを踏むパターンを、文字通り Two Step View と呼びます。 JVM の中間コードだったり、LLVM の IR みたいなもの。主なメリットは…
The Go Programming Language を読みました。 Go Programming Language, The (Addison-Wesley Professional Computing Series)作者:Donovan, Alan,Kernighan, BrianAddison-Wesley ProfessionalAmazon Golang が流行ってきていたので、じゃぁ買って理解する…
大量の住所を Google Maps 上にマッピングする必要が生じ、住所を緯度と経度に変換することになったので、いわゆるジオコーディングをプログラムすることにしました。 ジオコーディングに関しては、Google Maps API が無料で使用できて、かつ、扱いやすいの…
Windows で Java のデーモンをサービスとして起動させときたかったんですが、なんか良いものないかなと思ったら winsw というのを見つけました。 作者は Jenkins の川口耕介さんであり、もともと winsw も Jenkins を念頭に作成されたらしいです。 実際に Gi…
今日の Transform View は、View として、ドメイン層のデータをインプットにして、HTML を出力するトランスレータを採用するパターンです。 Patterns of Enterprise Application Architecture (Addison-Wesley Signature Series (Fowler)) (English Edition)…
Template View パターンは、静的 HTML と同じ形で HTML を記述した上で、動的に変更するようなところにのみマーカーを埋め込むパターンです。 静的なところは WYSIWYG のエディタで記述でき、動的な部分は実際にレンダリングする際に、マーカーがプログラム…
今日は Front Controller。 Front Controller は セキュリティや国際化など、リクエストに対する共通処理を一元的に行い、その後、リクエストをコマンドオブジェクトに引き渡すというパターンです。 P of EAA: Front Controller via kwout Patterns of Enter…
遅ればせながら、BIO HAZARD 7 をクリアしました。グロテスク ver. の方です。 BIO HAZARD 7 については「原点回帰」と言われていたのですが、その評判は確かでした。 初代の BIOHAZARD を想起される恐怖がそこかしこに満ちていて、ゆっくり開くドアの向こう…
tabindex には苦しまされることが多いです。 ぼくは以前に tabindex でタブオーダーが明示的に指定されているシステムのテストを行うことになったんですが、タブオーダーが設計上で明示的に指定されている以上タブオーダーがテスト観点に挙がり、打鍵でタブ…
ずっと MacBook Air で日常を暮らしてきて、やっぱりデカいディスプレイで暮らしたいなぁということで、昔つかってた iMac に乗り変えました。 そこで困ったのが、Emacs で環境変数が引き継がれてこないということでした。 Emacs では、exec-path-from-shell…
QR コード あまり知られていませんが、QR コードは日本発の規格になります。 スマートフォンで打ち込むのが面倒なデータをカメラ読込のみで入力できることから世界的にも普及しておりまして、先日は iOS の Chrome に QR コードをスキャンする機能も追加され…
Page Controller は、特定ページ/Action に対するリクエストを処理するオブジェクトです。 P of EAA: Page Controller via kwout 本書では、これを実現する方法として、 Server Page (ASP/PHP/JSP 等) に混ぜる Script (CGI/Servlet) で記述する という方法…
今日からは、Web Presentation Pattern の章にはいります。 最初が Model View Controller なんですが、おそらく開発者の誰もが聞いたことがあるパターンです。 Patterns of Enterprise Application Architecture (Addison-Wesley Signature Series (Fowler)…
パターン名からは DI 用のパターンかな??と思っておりましたが、Repository はドメイン層とデータマッピング層の中間に存在する抽象化レイヤです。 P of EAA: Repository via kwout Repository は、言ってみればクエリ生成を一手に引き受け、そのクエリに…
Query Object は、それ自体を SQL に変換できるオブジェクトです。 このオブジェクトによって、SQL も、DB のスキーマ定義も抽象化され、それらの変更が実装とは分離されます。また、そもそもとして SQL に詳しくない開発者が、よりフランクに DB からのデー…
Metadata Mapping は、オブジェクトとテーブルデータをマッピングさせるデザインパターンです。 データベース上のテーブルをメモリ上のオブジェクトに変換するコード、また、その逆変換のコードは、テーブル毎に似ていて非なるものなので、同じようなコード…
最近、JWT JWT 言っているような気がしますが、ぼくはこの単語を OAuth 2.0 の文脈ではじめて知りまして、それから JWT まわりの RFC に目を通し、Auth0 が無料で出している JWT Handbook を読みました。 このエントリは、JWT に関連する仕様について、ぼく…
OAuth 2.0 のプロバイダを作るんだったら、もしかして認可権限の取消画面も作らないといけないのかしら〜〜〜〜(ほげ〜〜〜〜)と思って調べてたら、その revoke の仕様も RFC で仕様化されていることを知りました。 これにより、必ずしも取消画面を作らなく…