InfoQ Software Architects' Newsletter A monthly overview of things you need to know as an architect or aspiring architect. View an example
LogRocket’s Galileo AI watches every session, surfacing impactful user struggle and key behavior patterns. Introduction In building or designing software systems, most design decisions come with tradeoffs. Using object-relational mappers (ORMs) has been a controversial subject amongst many developers, since there has always been a debate as to whether they’re really worth it. While in some cases p
こんにちは。DevOps芸人と化して久しいAndyです。 2020年の秋にTypeScript 4.1へTemplate Literal Typesが導入され、そのインパクトに俄かに一部の界隈がザワついたのは記憶に新しいかと思います。 今回は型プログラミングの可能性を大いに押し広げたTemplate Literal Typesを用いてSQL文を型レベルで解析し、その実行結果を型情報として導出するためのsqlptureというライブラリを作ったので紹介します。 Embedded content: https://github.com/andoshin11/sqlpture SQLの実行/検証対象はPostgreSQL v13です。 tl;dr SQL文を型レベルで解析・評価して返り値型を取得できるmini interpreterを作ったよ 型レベルのSQL validatorも作ってるよ 実際
このブログについて これはJava Advent Calendar 2014 - Qiitaの10日目の記事です。 昨日(2014/12/09)は@irofさんの「Javaであまりしないコーディング - 日々常々」でした。 明日(2014/12/11)は@dk_masuさんです。 今回、僕は「Doma」というORマッパーについて調べました。 Domaには「バージョン 1」と「バージョン 2」がありますが、今回はJava SE 8に対応している「バージョン 2」を取り上げます。 Domaは日本語のチュートリアルが充実しているため、今回のブログでは、Domaを使うための最初の環境作成や、チュートリアルを読んで理解できるようになるための下地となる、基本的な部分について解説したいと思います。 Domaを使って、簡単な検索Webアプリを作ります。 サーブレット・JSPで作っていますので、適宜お使いの
Node.js、MongoDBでデータの保存:Node.jsを使ってみよう(2)(1/4 ページ) Node.jsとSocket.IO、MongoDBを使用して、Webページの更新内容がリアルタイムにView画面に反映されるサイトを作ってみた MongoDBの紹介 前回はNode.jsでWebアプリを作成するために、ExpressやSocket.IOを使用したデモを基に説明した。今回はWebアプリのデータを保存するために必要なデータベースとしてMongoDBの使い方を説明していく。今回の記事でも後半でMongoDBを使った簡単なデモを用意しているので試してみてほしい。 MongoDBとは、ドキュメント指向のデータベースでNode.jsと相性がいいため、Node.jsとともに注目されている。Node.jsで実装したREABLOエンジンを使ったTech Releaseでも記事のデータベースとし
DBIx::TransactionManager の目的と、その使用法について おはようございます。 DBI では当たり前のように $dbh->do('BEGIN') と $dbh->do('COMMIT') をつかえばトランザクションがつかえるわけですが、なぜ DBIx::TransactionManager のようなものが必要になったのでしょうか。 それは勿論、DBI で直接 transaction をとりあつかうと問題が発生するケースが存在するからです。 トランザクションと RAII 一番おおきいのは、トランザクションが中途半端な状態になってしまうことを阻止することです。たとえば、以下のようなケースでは、おかしなことになってしまいます。 my $dbh = DBI->connect(...); for (@stuff) { eval { $dbh->do("BEGIN"); $dbh
はじめまして ブログDivでアプリエンジニアをしている川田です。 今回はV8エンジン上で動作するサーバサイドJavaScriptのnode.jsと 日本製の分散キーバリューストアであるokuyamaについての記事を書かせていただきます。 ■ node.jsとokuyamaの主な特徴 ▼ okuyama ・タグ機能 … データにタグ情報を付加することが可能で、タグに紐づいたデータの検索・取得が可能 ・javaで実装されている … 100% javaで実装されているのでクロスプラットフォームで実行可能 ・データの永続化をサポート … データの永続化・非永続化を選択可能で、永続化は特性を選ぶことも可能。 ・構成要素はすべて冗長化可能 … okuyamaを構成※1するマスターノード、データノード共に冗長化可能。またデータノードはレプリケーション機能も有している。 など。 ※1 okuyamaの構成
連載目次 「Visual Studio 2010(以降、VS 2010)で社内向けアプリを作るなら、どのような技術を使えばよいのか?」 これに対する答えとして、本特集では、筆者の独断と偏見で選択した技術を用いて、サンプル・アプリの開発を解説している。技術解説記事として各技術を詳しく説明するのではなく、「取りあえず手を動かしてVS 2010を使ってプログラムを作ってみて、最新のVS 2010での社内向けアプリの開発を体感してもらおう」というのが本特集記事のコンセプトである。 本特集記事は、前・後編の2回に分けて公開しており、すでに前編が公開済みである。 前編:VS 2010でユーザー・インターフェイス開発 後編:VS 2010でデータベース開発 後編である今回は、前回作成したプログラムをさらに拡張し、特にデータベース関連の処理を説明する。そのソース・コードは下記のリンクからダウンロードできる
軽量なリレーショナルデータベースとして人気のSQLite。そのWebサイトに掲載されている「How SQLite Is Tested」の内容が、海外のプログラマなどのあいだで話題になっています。 3月に公開された最新バージョンのSQLite 3.6.23。本体のソースコードは約6万7200行(67.2KSLOC、Kilo Source Lines of Code:空行やコメントを除いた行数)なのに対し、テストコードはなんと4567万8300行(45678.3KSLOC)だと紹介されているのです! これはテストコードが本体の約679倍もの大きさだということになります。 100%のブランチカバレッジ SQLiteコアのライブラリをテストするテストコードとして、以下の3つが紹介されています。 TCL Tests TCL Testsはもっとも古いテストコードで、TCL scripting lang
Google App Engineでは、関連の実装として、キーの親子関係で実現するownedな関連と、キーの親子関係ではなく、単に相手のキーを持つだけのunownedな関連があります。 unownedな関連は、RDBMSにおけるFKを持っているようなものだと思うとイメージしやすいと思います。 例えば、次の例では、FooがBarをunownedな関連先として定義しています。 @PersistenceCapable(identityType = IdentityType.APPLICATION, detachable = "true") public class Foo { @PrimaryKey @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY) @Extension(vendorName = "datanucleus", ke
はじめに 以前、音速を意味するSubSonicという.NETのActiveRecord実装を紹介しましたが、今回は光速を意味するLightSpeedというフレームワークを紹介します。 LightSpeedは「ドメインモデリング用のデザイナー」と「O/Rマッピングフレームワーク」から構成されます。他のO/Rマッパーとは異なり永続化の仕組みをほとんど意識せずに開発できるのが特徴で、ドメイン駆動設計とモデル駆動設計と相性が良いようにデザインされています。 前編にあたる本編では、LightSpeedの導入とモデルデザイナーについて紹介します。中編では基本的な操作(追加、更新、参照、削除)について、後編ではクエリの書き方などについて紹介します。 環境について LightSpeedは、Mindscape社で開発されているプロダクトです。.NET Framework2.0以上の環境で動作し、C#、Vis
データベースの作成 AIRランタイムにはSQLiteというオープンソースのデータベース機能が組み込まれており、標準的なSQLを使ってローカルデータを管理できます。ファイルAPIでもローカルファイルの読み書きは可能ですが、例えばアドレス帳のように大量のデータを保存してランダムに検索したい場合などはデータベースの方が適しています。 データベースは単一のローカルファイルを使用します。このファイルには可搬性があり、好きな場所に保存できます。実際に作成してみましょう。 <?xml version="1.0" encoding="utf-8"?> <mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" applicationComplete="openDB()"> <mx:Script> <
Apollo改めAIRプログラミング入門(2) AIRとSQLiteで学ぶ ローカルDB操作の基本 クラスメソッド 杉浦篤史 2007/8/17 編集部注:前回より、連載「Apolloプログラミング入門」は本連載「Apollo改めAIRプログラミング入門」にリニューアルしました。この連載をより深く理解するためには、連載「Apolloプログラミング入門」も併せてご覧ください。 いまさら聞けない、SQLiteとは? 前回はAIR(Adobe Integrated Runtime)ベータ版の新機能として、ドラッグ&ドロップに注目して2つのサンプルを作成しました。 今回はAIRベータ版から利用できるようになったローカルDBとの連携についてです。AIRには、DBエンジンとしてSQLiteが実装され、ActionScriptからSQLite形式のDBファイルを扱えるようになりました。 SQLiteはM
Google Gearsをおさらい 5月31日のGoogle Developer Dayで発表された新技術「Google Gears(以下、Gears)」。皆さんは既にお試しになっただろうか。ブラウザのプラグインというかたちでまったく新しいJavaScriptのAPIを提供するという発想に、今や世界中のギーク達が魅了されており、その可能性を追求すべく各地で熱心な研究が続けられている。 Gearsについて軽く触れておくと、Gearsの実体はIE(Microsoft Internet Explorer)、Firefoxで動作するブラウザのプラグインだ(将来的にはMac OS XのSafariもサポートされる)。以下のようなJavaScript APIを提供し、オフラインでも動作するWebアプリケーションの構築をサポートする。 ローカルサーバ - Webページに関する様々なリソース(HTML、J
sqlite3をc/c++で使う方法についてメモ。 以前ruby で sqlite を使う方法 - ぴょぴょぴょ? - Linuxとかプログラミングの覚え書き -でも書いたように、DBを使うアプリケーションは、通常はrubyなどのスクリプト言語で記述したほうが楽です。 でもc/c++からもデータベースを使えると非常に便利です。 公式なリファレンスマニュアル http://www.sqlite.org/capi3ref.html 全APIの一覧があります インストール debian であれば libsqlite3-dev を入れるだけです. $ sudo apt-get update $ sudo apt-get install libsqlite3-dev sqlite3 のAPI よく使うAPIを列挙していきます Database への接続 データーベースとして、 hogehoge.db
以下の文章は、Martin Fowler による Domain Logic and SQL の日本語訳である。 データベース指向ソフトウェア開発者とメモリ上(in-memory)アプリケーションソフトウェア開発者との間のギャップは、ここ数十年、徐々に広がってきている。このギャップが原因で、データベースの機能(SQLやストアドプロシージャ)をどのように扱えばよいのかという議論が数多く巻き起こっている。ここでは、ビジネスロジックを SQL に置くべきか、それともメモリ上のコードに置くべきかといった問題について、主にパフォーマンスと更新性の観点から考察を行う。考察には簡単な例を使うが、SQL クエリはしっかりとしたもの(rich SQL queries)を用いるので悪しからず。 エンタープライズアプリケーション(訳注:以下、EA)構築に関する本(私の近著『P of EAA』など)を読むと、ロジッ
The Developer Cheat Sheet Compilation by FuzzyOpinions.com SubVersionやRMDB、他各種プログラミング用チートシート集。 気になったものをいくつかメモ。 CSS 2 Reference Card (PDF) CSS Useful Properties .htaccess Cheat Sheet Subversion Quick Reference (PDF) UML Quick Reference Card (PDF) Vim Commands Cheat Sheet XEmacs Commands Cheat Sheet 関連エントリ Prototype.js 1.5.0 のチートシート 1ページに情報が集約されたCSSチートシート「CSS Cheat Sheet」 Ajax,Apache,CSS,CVS,HTML,JS
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く