ブックマーク / codezine.jp (6)

  • 実践DDD本 第12章「リポジトリ」~集約の永続化管理を担当~

    実践DDD 第11章「ファクトリ」~複雑な生成をユビキタス言語でシンプルに~ リポジトリとは 一般的に「リポジトリ」とはデータの「保管庫」を表します。ソースコードリポジトリであればGitやApache Subversionが有名ですが、DDDにおけるリポジトリは、エンティティや値オブジェクトから構成される集約の格納と取得を担当します。リポジトリは、クライアントへ集約を提供し、背後のデータベースとのやり取りを隠ぺいします。 通常、集約とリポジトリの関係は一対一になります。例えば「注文」の集約を利用したい場合「注文リポジトリ」を使用します。クライアント側はリポジトリのおかげで、物理的な構成(RDBなのか、NoSQLなのか等)を意識せずに、簡単に集約を操作できます。 リポジトリで集約を操作する流れ リポジトリはデータベースにアクセスしたり、ファクトリを利用したりします。その流れを見てみましょう

    実践DDD本 第12章「リポジトリ」~集約の永続化管理を担当~
    side_tana
    side_tana 2019/08/20
  • DBエンジニアのミックさんが語る、RDBで階層構造データを扱う「入れ子集合モデル」の将来性

    これまで階層構造データはリレーショナルデータベースでうまく扱えませんでしたが、その解決策としてジョー・セルコが提案したのが「入れ子集合モデル」です。この手法を紹介した『プログラマのためのSQLグラフ原論』の刊行にあたり、翻訳されたDBエンジニアのミックさんに入れ子集合モデルの将来性についてうかがいました。 なぜRDBで木と階層構造を扱う手法が1冊の書籍に? ――『プログラマのためのSQLグラフ原論 リレーショナルデータベースで木と階層構造を扱うために』についてミックさんにうかがいます。最初に、書がどういうなのか教えていただけますか? ミック:内容としては、リレーショナルデータベース(RDB)でグラフ構造の一つである木と階層構造を扱うための方法論「入れ子集合モデル」をメインに解説しています。RDBには大きな問題があり、入れ子集合モデルがそれを解決しうる手法だと見込まれています。その問題と

    DBエンジニアのミックさんが語る、RDBで階層構造データを扱う「入れ子集合モデル」の将来性
    side_tana
    side_tana 2017/05/21
    気になる
  • スマートフォンアプリへのブラウザ機能の実装に潜む危険 ――WebViewクラスの問題について

    はじめに AndroidにはWebViewと呼ばれるクラスが用意されています。簡易的なブラウザの機能を提供しているクラスで、URLを渡してHTMLをレンダリングさせたり、JavaScriptを実行させたりすることができます。内部ではWebKitを使用しておりAndroidの標準ブラウザと同じような出力結果を得ることができるため、このクラスを使用することで簡単にWebブラウザの機能を持ったアプリケーションを作成できます。 しかし、その簡単さ故、使い方を誤ったり仕様をよく把握していなかったりすると、脆弱性の元になります。今回はこのWebViewクラスの使い方に起因する脆弱性について見ていくことにしましょう。 WebViewクラスとJavaScript WebViewクラスを使用した場合、注意しなければならないのはJavaScriptを有効にした場合です。デフォルトではJavaScriptの機能

    スマートフォンアプリへのブラウザ機能の実装に潜む危険 ――WebViewクラスの問題について
    side_tana
    side_tana 2015/11/01
    なるほど
  • 地道な高速化が女子中高生の心をつかむ? プリクラの女性プログラマーに聞く|CodeZine×サイボウズ式

    今年で20周年を迎えるプリクラ。近年は「デカ目」「美肌」加工でも話題です。そんなプリントシール機シェアNo.1であるフリューのプログラマー、八田育子さんにお話を聞きました。女の子のかわいく写りたい願望を叶えるために、プログラマーに求められることとは? 今回は聞き手として、サイボウズ・ラボの竹迫良範さんも登場です。 スマホ時代にプリクラは今こそ全盛期、女子中高生の9割がユーザー 竹迫)先日、久しぶりに家族でプリクラを撮ったんですけど、今のプリントシール機って、すごく進化していますよね。撮影と落書きのブースが分かれていたりして。 そうですね、レジャー施設などに設置してある特殊なもの以外は、すべてブースが分かれています。回転率を上げるためと、落書き時間を長く取るための工夫ですね。最近の機種では、お金を入れるところも外で、先に背景などを選んでから、撮影だけ中で行って、終わったらまた別のブースで落書

    地道な高速化が女子中高生の心をつかむ? プリクラの女性プログラマーに聞く|CodeZine×サイボウズ式
    side_tana
    side_tana 2015/06/02
    フリュー
  • 日立ソリューションズ、.NETアプリケーション開発用フレームワーク「Open棟梁」をOSSで公開

    日立ソリューションズは、.NET Frameworkをベースにしたアプリケーション開発に必要な各種機能を提供するフレームワーク「Open棟梁」を、オープンソース・ソフトウェア(OSS)として23日に公開した。また、同社を中心に、OSSコンソーシアムに「Open棟梁」普及に向けたコミュニティとして、「.NET開発基盤部会(仮称)」を7月初旬に発足する。 「Open棟梁」は、アプリケーション全体のアーキテクチャを統一する標準アーキテクチャ、入出力処理やデータベースアクセスなどの定型的な機能、開発ツール、テンプレートなどを提供し、高品質なアプリケーション開発環境を実現している。 日立ソリューションズでは、「Open棟梁」を受託開発やプロダクト開発、小規模部門システムから大規模基幹システムまで約70件の開発案件に適用しており、これらの実績によって蓄積したノウハウを集約した。 異種透過性を実現した通

    日立ソリューションズ、.NETアプリケーション開発用フレームワーク「Open棟梁」をOSSで公開
    side_tana
    side_tana 2014/04/23
  • 高速かつ省メモリで文字列を扱うデータ構造「wavelet tree」

    はじめに 大規模なデータを扱うアプリケーションでは、速度とともに作業領域量も大きな問題となります。作業領域がメインメモリに収まらない場合、スワッピングが発生し、大幅な速度低下につながります。そのため近年、データ構造は高速なだけでなく、作業領域量が小さいことも求められています。今回紹介するのは2003年に提案されたデータ構造、wavelet tree(以下「WT」と表記)です。WTは圧縮索引やSuccinct Data Structureなど、データをコンパクトに表現する際に重要なデータ構造です。WTは文字列T[0...n-1]が与えられた時、次の2つの操作を定数時間でサポートします。 rank(p, c)――T[0...p]中のcの出現回数を返す select(i, c)――(i+1)番目のcの位置を返す WTの作業領域量は、文字列をそのまま保存した時の約2倍程度です。 対象読者 C++

    高速かつ省メモリで文字列を扱うデータ構造「wavelet tree」
    side_tana
    side_tana 2013/12/04
  • 1