タグ

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

  • ドメイン駆動設計入門――”本当に役に立つソフトウェア”をつくる!【デブサミ2020】

    開発者がどれだけ苦労してつくったとしても、実際にソフトウェアを使う人にとって使いにくいものであれば意味がない。では、どうすれば”当に役に立つソフトウェア”をつくることができるのか。この課題を解決し得る手法の1つとしてドメイン駆動設計がある。『ドメイン駆動設計入門』を著したGMOインターネットの成瀬允宣氏がドメイン駆動設計を解説した。 GMOインターネット株式会社 デベロッパーエバンジェリスト 成瀬允宣氏 「ドメイン駆動設計」とは 要件定義や仕様書に沿ってソフトウェアを開発しても、出来上がったシステムを使い始めた現場の利用者から「新しいシステム、使いづらい」「大金をかけて使えないシステムをつくっている」と言われることは珍しくない。なぜ、こういう事態に陥ってしまうのか。成瀬氏が問題提議するのは、従来型のソフトウェア開発工程における、致命的な断絶の存在だ。 従来型のソフトウェア開発では、一般に

    ドメイン駆動設計入門――”本当に役に立つソフトウェア”をつくる!【デブサミ2020】
  • IDDD本から理解するドメイン駆動設計一覧

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

    IDDD本から理解するドメイン駆動設計一覧
  • ITエンジニアのための量子コンピュータ入門一覧

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

    ITエンジニアのための量子コンピュータ入門一覧
  • ブロックチェーンアプリを実際に動かしてみよう!

    IBM Bluemixは、PaaS(Platform as a Service)として皆さんに最強の開発環境を提供します。Bluemixの特徴として、開発基盤だけではなく、100を超えるサービス「IBM Watson、ランタイム、IoT、Storage(DB)、アナリティクス、モバイル」など、豊富な開発環境やAPIがシンプルな形で提供されており、より素早くアプリケーションを構築&運用することが可能です。「IBM Bluemix User Group(BMXUG)リレー寄稿」では、コミュニティの皆さんが最近もっとも注目しているBluemixのサービスを、順番に紹介していきます。今回はブロックチェーンを利用したアプリケーションを取り上げます。 はじめに 最近何かとブロックチェーン(Blockchain)が話題に上ることが増えてきましたが、稿では、Blockchainについてあまり知らない方を

    ブロックチェーンアプリを実際に動かしてみよう!
  • PEAR MDB2でPHPからデータベースを操作する

    はじめに PHPにはデータベースにアクセスする方法がいくつか用意されています。そのような方法の一つに、「PEAR MDB2」があります。名前の通りPEARのライブラリとして公開されています。PEARにはMDB2のほかに「DB」や「MDB」といったライブラリがあり、現在でも利用することができます。しかしながら、これらの開発はすでに終了しており、開発者はMDB2に移行することが推奨されています。 稿では、PEAR MDB2を使って、PHPからデータベースを操作する次のような基的な方法を紹介します。 PEAR MDB2を使うとデータベース管理システム(MySQLやPostgreSQLSQLite等)に依存しないコードを書くことができる。 SQLの実行には、プリペアードステートメントを使うのが基である(例外あり)。 PHPにはPEAR MDB2の他にもデータベースへのアクセス手段が数多く用

    PEAR MDB2でPHPからデータベースを操作する
  • nohupコマンド

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

    nohupコマンド
    bleu-bleut
    bleu-bleut 2016/07/21
    nohup find / -name index.htm -print 2> /dev/null &
  • Composerを使ってPHPのパッケージを簡単インストール

    連載では、Composerを使ったパッケージ管理を紹介します。PHPではデフォルトでインストールされているPEARがありますが、最近では、Composerというパッケージ管理ツールも使われつつあります。例えば、JavaなどではMavenのようなツールでパッケージ管理をしたり、Rubyではbundlerといったパッケージ管理が使われるなど、現在では多くの言語でパッケージ管理ツールが使われています。 パッケージ管理ツールを使うとプロジェクトで使われているライブラリの依存関係を管理しやすくなり、依存しているライブラリのインストールも簡単になります。CakePHPもComposerを使ってインストールができるようサポートしており、開発環境ではZend Studioなどでの標準サポートされているなど、PHPでの開発では必須知識といえるほどの広がりを見せています。 連載では、Composerの導入

    Composerを使ってPHPのパッケージを簡単インストール
  • ビッグデータの収集と解析を一つの基盤で実現する「IoTシステム開発基盤」

    ThingWorxは、"永久保存"と"永続改修"に対応し、ビッグデータの収集と解析をひとつの基盤で実現するIoTシステム開発基盤です。データの収集から、マッシュアップでの見える化までトータルに提供いたします。 thingworx foundation: 全てのThingWorxコンポーネントの接続、簡略化、シームレス連携により包括的なIoTソリューションを構築

    ビッグデータの収集と解析を一つの基盤で実現する「IoTシステム開発基盤」
  • ビデオチャットもさくっと作れる! WebRTCによるブラウザ間リアルタイム通信はじめの一歩

    WebRTCを使えば、このようなリアルタイムコミュニケーションを行うWebアプリケーションを作ることができるのです。 WebRTCの通信形態 WebRTCの特徴の1つは、通信をP2P方式で行う点です。通常のWebサイトでは、ブラウザとサーバの間で通信を行います。また、WebRTCとよく比較される規格に「WebSocket」がありますが、WebSocketでは必ずWebブラウザとサーバ間で通信を行うことになっています。チャットなど、ユーザ同士でデータをやり取りを行うのに使われることもありますが、その場合も必ずサーバを介して通信します。 一方、WebRTCはサーバを介さず、P2Pによりユーザ間で直接通信を行うため、レスポンス性がより高い通信を実現できます。また、下位層のプロトコルに(TCPでなく)UDPを使っていることから、品質よりもリアルタイム性を重視した通信方式といえるでしょう。 API

    ビデオチャットもさくっと作れる! WebRTCによるブラウザ間リアルタイム通信はじめの一歩
  • お手軽データバインディングライブラリ「Vue.js」を使いこなそう(基礎編)

    はじめに Vue.jsは、シンプル・軽量・高速という特徴を持つデータバインディングライブラリとして最近注目を集めています。LINE社でもアプリ内WebViewの実装技術の選択肢の一つとしてVue.jsを採用しています。2014年11月27日にリリースされたLINEスケジュールは、Vue.jsを使って実装しているSPA(Single Page Application)の代表例です。 稿は日語記事がまだ少ないVue.jsの基機能の紹介を目的とした「基礎編」として、公式ドキュメントの内容を元に解説します(執筆時点のバージョンであるv0.11の内容です)。 Vue.jsとは Vue.jsは、双方向バインディングによるModelとViewをつなぐ仕組み「ViewModelレイヤー(MVVMパターン)」を提供するJavaScriptのライブラリです。 Vue.jsの基概念は以下のようになってい

    お手軽データバインディングライブラリ「Vue.js」を使いこなそう(基礎編)
  • 誰でも手軽にNTTドコモのサービスのような機能を持つアプリが作れる ~「docomo Developer support」の概要とAPIコンソール

    はじめに 第1回目の稿は、「docomo Developer support」の概要と、手軽に機能が試せるAPIコンソールの使い方を解説しましょう(稿は、2014年11月19日時点の最新情報に基づいております)。 対象読者 JavaとEclipseを用いたAndroidアプリの開発で、基的な知識がある方を対象とします。 「docomo Developer support」とは 「docomo Developer support」は、NTTドコモが開発者向けに情報を提供しているサイトで、2013年11月11日に開設されています。このサイトでは、ハッカソンなどのイベント情報も提供されていますが、メインとなるのは、さまざまな開発に活用できるAPIやツールの情報です。 APIとは「Application Programming Interface」の略で、あるプログラムの機能を外部のアプリケ

    誰でも手軽にNTTドコモのサービスのような機能を持つアプリが作れる ~「docomo Developer support」の概要とAPIコンソール
  • 「Selenium2」のインストール手順と初めの一歩

    対象読者と環境 Webブラウザを使ったテストを自動化するOSSのツール「Selenium2(WebDriver)」のインストール手順と基的な使い方をご紹介します。想定読者は、テスト自動化に興味のあるプログラマーです。 SeleniumにはSelenium IDEというブラウザ操作を記録できるツールがあり、SeleneseというSelenium1に対応したコマンドをHTML形式で保存します。これによってノンコーディングでテストスクリプトを作成することができるのですが、WebDriverやプログラミングによる効率化の恩恵を受けることができません。記事はSelenium IDEを活用しながらWebDriver使ったテストスクリプトをJava(JUnit)形式で書いていくための手引きとなっています。 今回筆者が使用した環境は以下のとおりです。 OS:Windows 7 Java:1.7 Fir

    bleu-bleut
    bleu-bleut 2013/11/12
    FFとChromeでの使い方…
  • OpenGLを使った地図描画エンジンの作り方(1)

    初めに 従来のYahoo!地図アプリは、社内ではラスタ形式地図アプリと呼んでおり、サーバ上で生成された地図タイル画像(ラスタデータ)を端末側で貼り合わせることで、地図を表示していました。 しかし、画像でやり取りを行うために、次のようなデメリットもありました。それは、通信の帯域を多く占有したり、地図の回転をする場合に地名などの文字も回転してしまい、読みづらくなったりする点です。 そこで、今回フルリニューアルしたAndroidYahoo!地図アプリでは、サーバからベクトルデータを受信して、端末側で地図を描画するベクトル形式地図アプリに移行しました。 ベクトル形式地図アプリに移行したAndroidYahoo!地図アプリは、従来版と比べ、以下のような点がメリットとして挙げられます。 通信の軽量化 回転拡大縮小のスムーズ化 3Dなど新しい地図表現の追加 ベクトル形式地図アプリ ラスタ形式のデータ

    bleu-bleut
    bleu-bleut 2013/10/26
    WebGLではなくOpenGL。
  • UXデザインのコラボレーションツール「Quince」、機能拡充版のQuince Proを提供開始

    Quinceでは、ユーザー満足度の向上に役立つユーザーインターフェイスや機能のデザインパターンを登録・共有できるようになっており、既にQuince Teamによって約90種類の項目が登録されている。Breadcrumbs(パンくずリスト)、Corner Treatments(角丸・角の切り落とし)といった項目毎に、パターンが解決する問題や適用すべきケース、代表的な事例等が解説されているため、アイデアの種として参考にすることもできるだろう。 その他にも、Webサイトのスケッチやモックアップ画面を登録しコメントを付けてレビューし合うコラボレーション機能が搭載されており、従来紙や電子メールベースで行われていたデザインプロセスをオンライン上で一元管理可能にする。 無料版のQuinceは登録したすべてのデザインがコミュニティ内で公開されてしまうが、今回追加された有償版のQuince Proでは、アク

    UXデザインのコラボレーションツール「Quince」、機能拡充版のQuince Proを提供開始
  • jQueryで地震分布図を作成しよう

    地理情報を含むデータを表現する場合、地図上で表すことで視覚的にその情報を認知しやすくなります。例えば、車のナビや道路標識などでは、単純に方向や座標だけを示すのではなく、地図上に表現することで、見た人が直感的に認知できるようにしています。稿では、jQuery対応コントロール集である「Ignite UI 2013 Volume 1」のigMapというコントロールを用いて、地震分布図を作成していきます。 対象読者 JavaScriptの経験者、地図アプリに興味のある方。 必要環境 IDEは特に必要がなく、コード編集用のエディタと動作確認用のブラウザがあれば良いです。 今回使用するigMapコントロールは、jQuery UIウィジェットの一つであり、jQueryライブラリとjQuery UIライブラリに依存します。そのため、対応ブラウザについてもjQuery UIに依存します。 プログラム実行時

  • リアルタイムWebを構築しやすくする「Socket.IO」とは

    連載では、このTech-Sketchから「コレは!」というテーマをピックアップし、加筆修正して皆様にお届けいたします。 リアルタイムWebとSocket.IO 栄えある連載第1回は、リアルタイムWebとSocket.IOについてお届けいたします。Tech-Sketchに掲載した元ネタはこちらです。 JavaScriptとDynamic HTMLによる「動的に表示内容が更新されるWebサイト」は、JavaScript内から非同期にサーバへ接続しデータを取得する技術、いわゆるAjaxが利用できるようになったことを皮切りに、爆発的に広がりました。Google Mapsなどがその代表例です。 このGoogle Mapsは、表示する場所や縮尺を変更するといった「利用者の操作」を契機として新しいデータをサーバへ取りに行く仕組みになっています。そのためサーバ側でデータが変更されたとしても、次にデータを

    リアルタイムWebを構築しやすくする「Socket.IO」とは
    bleu-bleut
    bleu-bleut 2013/04/18
    Socket.IOは「リアルタイムWeb技術の実装方式を隠蔽し、すべてのブラウザ・モバイルでリアルタイム通信を可能とすること」を目指して開発されている、node.js用サーバ側ライブラリとブラウザ用JavaScriptライブラリのセット
  • IE10で動くHTML5アプリ実装例 「Indexed Database APIを使用したフィード取得アプリ」

    データベースのアップグレード IndexedDBがわかりにくい理由の一つに、データベーススキーマの「アップグレード」処理をプログラム中に書かなければならない点が挙げられます。IndexedDBJavaScriptオブジェクトを読み書きすることができ、「NoSQL」を標榜しているDBのほとんどがそうであるように、静的なスキーマを必要としません。スキーマを持たないのに、なぜ「スキーマのアップグレード」という処理が必要なのでしょうか? IndexedDBにおけるJavaScriptオブジェクトの「入れ物」は「オブジェクトストア」と呼ばれ、RDBで言うところの「テーブル」に近い概念です。1つのオブジェクトストアには、どんな種類のJavaScriptオブジェクトでも格納するができますが、多くの場合は「構造がほぼ同一の」オブジェクトを読み書きすることになります。それらのオブジェクトを識別するための値

    IE10で動くHTML5アプリ実装例 「Indexed Database APIを使用したフィード取得アプリ」
    bleu-bleut
    bleu-bleut 2012/10/16
    PREV_NO_DUPLICATEでdistinctの処理はできる?
  • WebアプリにSNSアカウントでのログインを実装する

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

    WebアプリにSNSアカウントでのログインを実装する
  • 【デブサミ2012】17-A-3 レポート HTML5でどこまでできる? その実力とスマホ向けアプリ開発のポイント

    描画能力が大幅に向上、Flashに匹敵するアニメーションも可能に 膨大な数の仕様で構成されるHTML5は幅広い意味を持ち、一言で定義するのは難しいが、紀平氏はセッションの冒頭で「今回はスマートフォンの話に限定する(PCブラウザに関しては触れない)」と断ったうえで、次のように述べた。 「HTML5はHTMLJavaScriptの複合体。それ自体はHTML4と大きく変わっているわけではない。もっとも重要な違いは、今までに比べてAPIが非常に豊富になったこと」 この豊富なAPIにより、HTML5では描画能力が大きく向上している。例えば、Canvasを使えばドット単位の描画が可能であり、ベクターグラフィックスを扱えるSVGによって曲線のある図形も描画できる。さらに、アニメーションもFlash並のクオリティが実現できるようになった。 ここで紀平氏は、同じ内容のアニメーションを2つの画面で同時に再生

    【デブサミ2012】17-A-3 レポート HTML5でどこまでできる? その実力とスマホ向けアプリ開発のポイント
  • 【デブサミ2012】16-A-5 レポート ソーシャルアプリケーションにおけるNode.jsの活かし方

    Node.js活用のノウハウとモバイル対応のポイント スピーカー2名体制で行われたセッションのテーマは「Node.js」「Mobile」「Global」。まず久富木隆一氏が登壇し、参加者に「Node.jsに触れたことがある人」と問いかけると、全体の約8割が挙手。関心の高いエンジニアが多数参加していることが実感できた。 JavaScript標準はECMAScriptだが、Webブラウザ上では方言が存在するため、互換性を維持するのが困難になっている。それに対し「Node.js」はGoogle ChromeのV8エンジン採用のサーバーサイドJavaScriptプラットフォームで、標準準拠度が非常に高く、方言を気にすることなくピュアなスクリプトを書いていける。さらにプログラミング言語のパフォーマンス比較を見てみると、V8上のJavaScriptはJITコンパイルされた上で実行され、Perl、Pyt

    【デブサミ2012】16-A-5 レポート ソーシャルアプリケーションにおけるNode.jsの活かし方