タグ

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

  • 開発者が知っておきたいSQLの実行モデル~アプリからデータベースへのアクセスを高速化するには?

    データベースのデータ・モデルは解決したい問題に合わせて使い分けることができ、昨今ではドキュメントやグラフなどのリレーショナル以外のモデルも注目されています。また、トランザクション系が生成した大量のデータをリアルタイムで分析するというような、性質の異なるワークロードを扱うことも求められています。これら性質の異なるデータ・モデルやワークロードを扱うにはどのような実装が必要でしょうか。この連載では、開発者の皆様がシステム・アーキテクチャやアプリケーション・コードをより洗練させるのに役立つデータベース・マネジメント・システム(DBMS)の基を振り返り、実装に合った技術の組み合わせを解説します。 第1回はデータベースにアクセスするAPIで最も広く使われているSQLという言語の実行モデルを再確認します。なぜこの言語がリレーショナル・モデルのみならず他のデータ・モデルに対しての操作にも使われるようにな

    開発者が知っておきたいSQLの実行モデル~アプリからデータベースへのアクセスを高速化するには?
  • C#でSPAが実現できる、Blazor WebAssemblyのはじめかた

    ASP.NET Coreは、ASP.NET 4.xをベースにしていますが、Webフォームには対応していません。また、開発言語にVisual Basicが利用できなくなりました。 一方、ASP.NET Coreになって、新たなライブラリ、フレームワークが提供されています。Razor Pagesは、ASP.NET Core 2.0から利用できる機能で、MVVMパターンのWebアプリケーションを実現できるフレームワークです。 MVVMパターン Razor Pagesでは、Viewにあたる部分はRazor構文によるcshtmlファイル(HTMLを拡張して、C#コードなどを含めることができる)に、ViewModelはそのcshtmlから生成されるC#のクラスになっています。このあたりの構造は、その後にリリースされた、Blazorフレームワークでも同様となっています。 Blazorは、通常JavaSc

    C#でSPAが実現できる、Blazor WebAssemblyのはじめかた
  • React Nativeとは何か? 基本の仕組みと使いどころを理解する

    WebブラウザとAndroid、iOSが、アプリの動作環境としてそれぞれ市民権を得た現代では、サービスを1つ作るだけでも、各プラットフォームに対してアプリを提供することが当たり前のように求められます。連載では、この問題に立ち向かうため、ReactJavaScriptによるWebアプリケーション開発に近いお作法でAndroidやiOSのアプリ開発ができるツール「React Native」を紹介します。まずは、React Nativeというツールがどういった仕組みで動いているのか、また、どういった分野に向いているのかを解説します。 対象読者 JavaScriptとWeb開発の基礎に理解がある方 Reactを用いたJavaScriptアプリケーション開発の経験者 Androidアプリ開発の経験者 iOSアプリ開発の経験者 前提環境 記事の内容は、React Native v0.57.4の実

    React Nativeとは何か? 基本の仕組みと使いどころを理解する
  • 【デブサミ2016】受賞作品発表! 「ITエンジニアに読んでほしい! 技術書・ビジネス書大賞 2016」

    エンジニアが支持するに賞を贈り、エンジニアの思いを世の中に広めるきっかけを作りたい」とスタートした同賞。セッションでは、事前に行われたWeb投票で上位に選出された技術書・ビジネス書、計6タイトルの著者や編集者が、書籍の魅力を伝えるプレゼンテーションを行った。おすすめ書籍の「読みどころ」が分かるプレゼン内容や授賞式の模様をお伝えする。 バラバラに習得した知識がつながる“インフラ” 書籍のプレゼンは、技術書3タイトル、ビジネス3タイトル冊の順で行われた。最初は、みやたひろし氏の『インフラ/ネットワークエンジニアのためのネットワーク技術&設計入門』。書では「気持ちの悪いネットワークを日からなくしたい」という熱い思いから、ネットワーク構築で最も大切と著者が考える基設計が扱われている。基設計の内容には、物理設計、論理設計、セキュリティ設計・負荷分散設計、高可用性設計、管理設計が含まれる

    【デブサミ2016】受賞作品発表! 「ITエンジニアに読んでほしい! 技術書・ビジネス書大賞 2016」
    koyacorg
    koyacorg 2016/04/15
  • HTML5でクロスプラットフォームなデスクトップアプリを開発できる「Electron」とは

    Electron(旧Atom-Shell)とは、Web開発者がHTML5とNode.jsでMacWindowsLinuxデスクトップアプリを作れるクロスプラットフォーム実行環境です。Electronはオープンソースで無料で使える上に、MITライセンスであるため、商用利用も可能です。開発元はGitHub社です。 最近はJavaScriptHTML5の進化によって、多機能なWebアプリケーションが増えてきました。それに伴い、モバイルでは、WebViewやApache Cordovaなどを使ったハイブリッドアプリも注目されています。Electronはその流れの中から生まれた新しい実行環境です。 ElectronはChromiumブラウザを内蔵しているのが一番の特徴です。Chromiumブラウザは、Google製のChromeブラウザのオープンソース版にあたります。ウェブ開発者がChrom

    HTML5でクロスプラットフォームなデスクトップアプリを開発できる「Electron」とは
  • GitHub製エディタ「Atom」で日本語を扱いやすくするために必要な設定

    記事は、技術同人誌サークルDevLOVE Pubの同人誌『Far East Developer Review デブサミ2015特別号』から、編集部員が寄稿した記事を加筆修正したものです。編集部員の近藤が普段編集作業で使用している、GitHub製エディタの「Atom」で、日語を扱うために必要な設定をご紹介します。(編集部) はじめに みなさん、エディタは何を使っていますか? プログラミング用途では情報が豊富なテキストエディタですが、筆者は文章の執筆・編集用途で使いたかったため、ほしい情報があまりまとまっておらず、何を使えば効率よく作業ができるか、しばし悩んでいました。稿では、IT技術記事の新人編集者である筆者が、比較的新しめのエディタ「Atom」で、日語を執筆・編集するために行った環境構築について解説します。日語をエディタで快適に扱いたいというエンジニアの方にお役に立てるものと

    GitHub製エディタ「Atom」で日本語を扱いやすくするために必要な設定
  • 自己結合の使い方

    はじめに SQLが提供する結合演算には、その特徴に応じて内部結合、外部結合、クロス結合などさまざまな名前が与えられています。普通、これらの結合の多くは、異なるテーブルまたはビューを対象として行われます。しかし、SQLは結合が同一のテーブルまたはビューに適用されることを禁止していません。同一のテーブルを対象に行う結合を「自己結合(self join)」と呼びます。自己結合は、使いこなせば非常に便利な技術ですが、動作がイメージしにくいため敬遠されがちです。そこで稿では、この自己結合の便利さを例題を通して学び、その動作を分かりやすく解説します。 自己結合を理解することは、実務上のテクニックを身につける以外に、もう一つ利点があります。それは、集合指向(set-oriented)というSQLの重要な特徴を理解できることです。オブジェクト指向言語が世界をオブジェクトとして表現するように、SQLは世界

    自己結合の使い方
  • 帰ってきたHAVING句

    はじめに SQLのクラスを教えるとき、最大の課題の一つが、生徒たちがそれまでに手続き型言語から身に付けたことを、一度「頭から追い出す(unlearn)」ことだ。私がそのとき採る一つの方法は、処理を「レコード単位」ではなく、集合という観点から考えるよう強調することである。 ――――J.セルコ SQLの考え方を習得するときに最大の障壁となるのが、私たちの多くが慣れ親しんだ手続き型言語の考え方(ソート、ループ、分岐、代入、等々)です。SQL質を理解するには、私たちの心に強固に貼り付いてしまった思考パターンを、一度ベリベリと引き剥がし、更地に戻してやる必要があります。それが、セルコが「unlearn」という言葉に込めたニュアンスです。セルコ自身、Fortranからプログラマとしてのキャリアを開始し、C、Algol、Pascalと手続き型言語を渡り歩いた後にSQLを身に付けた人物だけに、言葉に実

    帰ってきたHAVING句
  • HAVING句の力

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    HAVING句の力
  • 3値論理とNULL

    要するに、データベースにnullが1つでも含まれていれば、クエリから正しくない結果が返される可能性がある。しかも、一般的には、どのクエリから正しくない結果が返されるのかを知る方法はないので、すべての結果があやしく見えてくる。nullが含まれたデータベースから正しい結果が得られることは確信できない。筆者に言わせれば、この状況はまさにお手上げである。 ――――C.J.デイト はじめに 多くのプログラミング言語が、真理値型(BOOL型、BOOLEAN型)というデータ型を持っています。もちろん、SQLにも真理値型が存在します。ユーザーが直接扱えるデータ型として定義されたのはSQL-99ですが、WHERE句などの条件の評価時にも真理値の演算が行なわれています。 ところで、普通のプログラミング言語の真理値型とSQLの真理値型の違いをご存知でしょうか? それは、普通の言語の真理値型が、true、fals

    3値論理とNULL
  • Swiftから透けて見えるAppleのコンパイラ技術

    連載は、はてなエンジニアが、はてなのサービスを支えている技術や日頃注目している技術について解説するものです。Appleは毎年WWDCでいくつもの新規技術を発表していますが、筆者はその中でもObjective-Cの進化に特に注目していました。新たに追加されるAPIやサービスの前では、Objective-Cの進化はあまり注目されてきませんでしたが、実はここ数年の間も進化し続けていました。これにはAppleがコンパイラ技術にコミットしてきたことが大きく影響しています。今回は、Appleのコンパイラ関連技術を振り返り、Swiftにどう繋がるのかを解説します。 はじめに SwiftAppleによって開発された全く新しいプログラミング言語です。WWDC 2014で稲のように現れたこのプログラミング言語は、またたく間に世界中のモバイルアプリ開発者の注目を集めました。 Swiftは衝撃的な登場だった

    Swiftから透けて見えるAppleのコンパイラ技術
    koyacorg
    koyacorg 2015/06/29
  • 「HTTP/2」がついに登場! 開発者が知っておきたい通信の仕組み・新機能・導入方法

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    「HTTP/2」がついに登場! 開発者が知っておきたい通信の仕組み・新機能・導入方法
    koyacorg
    koyacorg 2015/06/23
  • IPA、サーバ構築・運営者向けに「SSL/TLS暗号設定ガイドライン」を公開

    同ガイドラインは、適切な暗号設定をする資料の一つとして使うことが可能で、「様々な利用上の判断材料も加味した合理的な根拠」を重視し、実現すべき安全性と必要となる相互接続性とのトレードオフを踏まえたうえで、実際に設定すべき「要求設定項目」として3つの設定基準(「高セキュリティ型」「推奨セキュリティ型」「セキュリティ例外型」)を提示している。 対象読者は、SSL/TLSサーバの構築者や、サーバ管理者、SSL/TLSサーバの構築を発注するシステム担当者で、一部の内容については、ブラウザを使う一般利用者向けの注意喚起となっている。 同ガイドラインは全9章構成で、内容は、SSL/TLSについての技術的な基礎知識から、SSL/TLSサーバに要求される設定基準、具体的な要求設定項目などとなっている。付録として、設定状況を確認するためのチェックリストも含まれている。 同ガイドラインは、IPAのサイトからPD

    IPA、サーバ構築・運営者向けに「SSL/TLS暗号設定ガイドライン」を公開
  • Web作成の定形作業を自動化できるJavaScriptタスク実行環境Grunt

    はじめに HTMLJavaScript開発に限らず、一般にプログラミングの作業ではコンパイルや自動テスト、デプロイなど、開発の質にあまり関係のない定形作業が発生します。これらの定形作業を自動化できれば、プログラマは処理内容の検討やコーディングなどの質的な作業に集中でき、作業効率のアップが期待できます。また定形作業を手動で行うことによるケアレスミスの低減も期待できます。 プログラムのビルドに使われるMakeやJava環境で利用されるAntのように、定形作業を自動化するツールは様々な開発言語や環境で提供されています。記事ではタスクをJavaScriptで記述するタスク実行環境Gruntを紹介します。Gruntを使うとHTMLJavaScript開発で必要となる、以下のような定形作業を自動化できます。 ファイル操作(移動、コピー、削除、名称変更、結合) ネットワーク通信(FTP、SSH

    Web作成の定形作業を自動化できるJavaScriptタスク実行環境Grunt
    koyacorg
    koyacorg 2015/04/01
  • ASP.NET Identityでユーザーを管理する

    ユーザー管理機能の必要性 これまで様々な認証方法を紹介してきましたが、そのどれもが「利用者がユーザー情報を登録、変更する」ことを前提としていました。しかし、実際のWebアプリケーションでは、管理、運用を行う側で、集中的にユーザー情報を管理したいケースが多々あります。例えば、新たなユーザーの代理登録を行ったり、不要なユーザーを削除したり、パスワードを忘れたユーザーのパスワードを変更したり、といったものです。 こういった運用は、もちろんデータベースに登録されたユーザー情報テーブル等のデータを、直接変更することでも対処は可能です。しかし、データを直接操作するのは、その手順自体が煩雑なことに加え、アプリケーションで行っている多くの検証をスキップしてしまうこともあり、データの不整合が発生する可能性が非常に高くなります。 そのため、できることならアプリケーション側でユーザー情報を管理する手段を用意し、

    ASP.NET Identityでユーザーを管理する
  • いま最も注目のライブラリ「React.js」でシングルページアプリケーションを作ってみよう! 【前編】

    対象読者 JavaScriptフレームワーク・ライブラリの選定に悩んでいる方 格的にJavaScriptを触るのが初めてという方 jQueryでの大規模なフロントエンド開発に限界を感じている方 必要な環境 Node.jsがインストールされていることが推奨です。 React.jsとは何か React.jsは最近注目を浴びているFacebook製のライブラリで、MVCアーキテクチャでいうViewにあたる機能を提供します。 前提として、JavaScriptの世界でMVCのVといえば、紛れもなくDOM(Document Object Model)のことを指します。特に何も意識しないで作った場合、都合の良いDOMからデータを引っ張り出しては別のDOMを書き換えるといった、行き当たりばったりな作りになりがちです。そこで、MVCの考え方を導入することにより、データを画面とは独立した構造体として切り出し

    いま最も注目のライブラリ「React.js」でシングルページアプリケーションを作ってみよう! 【前編】
  • データの同時更新を防ぐための排他制御

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    データの同時更新を防ぐための排他制御
  • フロントエンド開発が捗るHTTP通信モニタリングツール「Charles」を使いこなす

    はじめに 「Charles」はHTTPのプロキシ・モニタを行えるGUIのツールです。似たようなツールとしてはFidllerが代表的ですが、CharlesはUIや操作性がシンプルです(その分機能は限定的です)。「HTTPをモニタする」というとなんだか取っ付きにくそうに感じるかもしれませんが、Charlesを使うことでその認識は大きく変わります。今回はこのツールのさまざまな使い方をWebフロントエンドの開発視点から紹介していきたいと思います。その便利さから弊社のWebフロントエンド開発チームにはなくてはならないツールとなっています。 Charlesとは Charlesは公式サイトの説明にもある通り、HTTPプロキシ/HTTPモニタを行うツールです。機能を大きく分類するとできることはその2点だけですが、かゆいところに手が届く細かな機能を多く持っています。公式サイトから引用すると、機能としては以下

    フロントエンド開発が捗るHTTP通信モニタリングツール「Charles」を使いこなす
  • 初めてのAWS Lambda ~AWS Lambdaで始めるイベントドリブンアプリケーション

    対象読者 Web系プログラマ AWSに興味のある方 必要な環境 AWSアカウント AWS Lambdaとは 「AWS Lambda」は、クラウド上でアプリケーションを実行する新たなプラットフォームです。AWS Lambdaを使えば何らかのイベントをトリガーに処理を実行することが可能です。Amazon Simple Storage Service(以下、Amazon S3)のバケットへのファイルのアップロード、Amazon Kinesisのストリームに届いたメッセージ、Amazon DynamoDBにおけるテーブルの更新といったイベントを受けて、事前に用意したコードを自動的に実行することができます。 従来であれば、こうしたイベントドリブンなアプリケーションの開発は非常に手間がかかりました。たとえば、変更を検知するためにポーリングし続ける仕組みや、変更を検知したらそれに応じた適切な処理を行う仕

    初めてのAWS Lambda ~AWS Lambdaで始めるイベントドリブンアプリケーション
  • IoT時代を支えるプロトコル「MQTT」(前編)

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    IoT時代を支えるプロトコル「MQTT」(前編)