タグ

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

  • リアクティブプログラミングとRxJavaの概要

    この連載では、Javaでリアクティブプログラミングを行うためのライブラリである「RxJava」を使って、リアクティブプログラミングにおけるポイントや、RxJavaが持つ機能について学んでいきます。今回は、RxJavaおよびリアクティブプログラミングの概要について解説します。 対象読者 Java経験者(初心者可) RxJava未経験者 リアクティブプログラミング未経験者 RxJavaとは RxJavaは、Javaでリアクティブプログラミングを行うためのライブラリです。このライブラリは軽量であり、また、他のライブラリに対する依存がないのでRxJavaのjarをパスに通すだけで使えるようになります。対応しているJavaのバージョンは6からで、さらにAndroidもバージョン2.3(Gingerbread)からサポートしています。 そして、RxJavaは厳密には関数型リアクティブプログラミング(F

    リアクティブプログラミングとRxJavaの概要
  • ドメイン駆動設計のメリットと始め方 ~ 1章「DDDへの誘い」

    はじめに ドメイン駆動設計(DDD)とは、2003年にエリック・エヴァンス氏が『Domain-driven design』という書籍にて提唱したソフトウェア開発手法です。DDDを簡単に説明すると「顧客と開発者が業務を戦略的に理解し、共通の言葉を使いながらシステムを発展させる手法」です。具体的には、チームの共通言語である「ユビキタス言語」を用いて「ドメインモデル」を構築し、それをコードとして実装します。また大規模で密結合なシステムにならないように「ドメイン」と「境界づけられたコンテキスト」にてシステムを分割し、「コアドメイン」という最重要領域に集中して開発を行います。 ソフトウェア開発の課題とDDDが解決すること DDDの登場から10年以上が経ち、DDDは着実に普及しつつあります。DDDが普及してきている背景として、システム開発がますます多機能/複雑になり、ビジネス的にも敏速な変更が求められ

    ドメイン駆動設計のメリットと始め方 ~ 1章「DDDへの誘い」
    Xray
    Xray 2016/08/02
  • AWSが普及すれば、プログラマが活躍できる世界になると思った――ソラコム 片山暁雄さんのキャリア

    株式会社ソラコムにて、ソフトウェアエンジニアとしてソラコムの提供するIoTプラットフォームの設計構築を担当。 オープンソースのJavaフレームワークプロジェクトや、 AWSの日ユーザーグループ(JAWS-UG)の立ち上げに関わり、2011年にアマゾンデータサービスジャパンに入社。日でのクラウド普及をミッションとし、AWSソリューションアーキテクトとしてAWS利用のアーキテクチャ設計サポートや技術支援、イベントやセミナーでの講演などを行う。 著書として『AWSクラウドデザインパターン設計編/実装編』『Amazon Web Services 基礎からのネットワーク&サーバー構築』『Javaルールブック』『SORACOM入門』など。 1977年 大阪生まれ。芝浦工業大学工学部金属工学科卒。 吉羽 まず、片山さんの経歴を教えていただけますか? 片山 学生時代からソフトウェア工学を学んできた方と

    AWSが普及すれば、プログラマが活躍できる世界になると思った――ソラコム 片山暁雄さんのキャリア
    Xray
    Xray 2016/07/05
  • 「本物のDevOpsを体験できるハッカソン」参加レポート(後編)~チーム対抗によるDevOps実践の競い合い

    DevOpsハッカソンのルール DevOpsハッカソンでは、任意の実践テーマにもとづいて環境構築作業を行い、2日目の最後に用意されているチームごとの発表で優勝チームを決める、という「チーム対抗戦」の形式で進められました。ハッカソンを実践する上でのルール・条件には以下のようなものが提示されていました。非常にシンプルかつ制限の少ない形となっています。これら以外の部分についてはチームで自由に決めることができます。 チーム構成は、インフラ技術者と開発者の組み合わせであること 実践する内容として、「Infrastructure as Code」と、その他の別のDevOpsの手法を1つ以上、アプリに実装すること どこにもない、クリエイティブなソリューションを生み出すこと またこれらのルールと併せて、サンプルアプリケーション(Microsoft系のものと非Microsoft系のもの)や、Microsof

    「本物のDevOpsを体験できるハッカソン」参加レポート(後編)~チーム対抗によるDevOps実践の競い合い
    Xray
    Xray 2015/09/17
  • ニッチでエッジな技術本をゲットしよう! ~IT技術系同人誌の新刊ガイド(2015年夏版)

    コミケ88の基情報 公式サイトのコミックマーケット88の情報を参考にしています。 開催場所 東京ビッグサイト(東京国際展示場) 開催日時 2015年8月14日(金)~16日(日) 10時~16時(サークルの出展時間) 技術同人誌が多くあるエリア ジャンルごとに開催日が異なっており、技術同人誌が多く販売されているのは、ジャンルコード240「同人ソフト」のエリアです。今回は3日目(8月16日)に配置されています。 記事で紹介するサークルは、3日目東地区の「A」、「O~Q」、「ポ」のエリアにあります。 コミケ87(2014年冬)でのIT技術系向けガイド ニッチでエッジな技術をゲットしよう! ~IT技術者向けコミケ 初心者ガイド(2014年冬版) コミケってどんなところ? 技術はどこで手に入るの?……という方はまずこちらをお読み下さい。 ニッチでエッジな技術をゲットしよう! 第2弾

    ニッチでエッジな技術本をゲットしよう! ~IT技術系同人誌の新刊ガイド(2015年夏版)
    Xray
    Xray 2015/08/06
    特に紹介などされておりませんが、この界隈で本出します
  • ドキュメントがないコードの保守を任されても安心 ~テストコードを網羅的に自動生成するVisual Studio 2015 Enterpriseの「インテリテスト」機能

    システム開発におけるテストの重要性は繰り返し叫ばれるものの、実際にテストを記述するというのは意外に面倒なものです。プログラムを書くのは楽しくても、すべてのケースを網羅するテストコードを書くのは面倒、という方も多いでしょう。Visual Studio 2015 Enterpriseのインテリテスト機能を使えば、プログラム全体を網羅するテストケースが簡単に自動生成できます。また、デバッグに便利ないくつかの新機能についても解説します。 対象読者 テスト開発に興味はありながらも、テストファーストとまでは思い切れない方 ドキュメントもコメントもないプログラムの保守を突然任されて頭を悩まされている開発者 必要な環境 連載では以下の環境でサンプルを実行します。 Windows 7(8、8.1も対応) Visual Studio 2015 RC Enterprise(一部機能はVisual Studio

    ドキュメントがないコードの保守を任されても安心 ~テストコードを網羅的に自動生成するVisual Studio 2015 Enterpriseの「インテリテスト」機能
    Xray
    Xray 2015/07/21
  • 「Git 2.4」がリリース、複数ブランチへのプッシュ可能な--atomicオプションが追加

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

    「Git 2.4」がリリース、複数ブランチへのプッシュ可能な--atomicオプションが追加
    Xray
    Xray 2015/05/07
  • Chefで3分クッキング! Webサーバ構築のレシピをRubyで書いてみよう

    連載は、SI業界に入ったばかりの新米業務アプリケーション開発者や、SI業界を目指す学生さんを対象とした、インフラ構成管理ツールを使ってコードでインフラを構築するための講座です。また、インフラエンジニア/システムオペレータで、物理環境でのインフラ構築/運用管理は経験があるけど、プログラミングが苦手という方にも読み進めていただけるように、文法などの解説を入れながら説明します。今回は、Chefというツールのご紹介と、Chefを使ってWebサーバを構築する方法について説明します。 はじめに 前回は、コードでインフラ構成を行う第一歩としてVagrantを使ってローカルPCに仮想環境を構築する手順をご紹介しました。 今回は、Chefというツールのご紹介と、Chefを使ってWebアプリケーションの開発環境にWebサーバであるApache httpdやPHPの実行環境などをインストールする方法について説

    Chefで3分クッキング! Webサーバ構築のレシピをRubyで書いてみよう
    Xray
    Xray 2015/02/05
    chefを入れるのに3分以上かかり、辛さある
  • 障害発生時にも漏れなし! Zabbixの監視アラートでRedmine上にチケットを起票する仕組みをつくろう

    * About to connect() to redmine-server port 80 (#0) * Trying redmine-server... * Adding handle: conn: 0x21b3278 * Adding handle: send: 0 * Adding handle: recv: 0 * Curl_addHandleToPipeline: length: 1 * - Conn 0 (0x21b3278) send_pipe: 1, recv_pipe: 0 * Connected to redmine-server (xxx.xxx.xxx.xxx) port 80 (#0) > POST /issues.json HTTP/1.1 > User-Agent: curl/7.30.0 > Host: redmine-server > Accept: *

    障害発生時にも漏れなし! Zabbixの監視アラートでRedmine上にチケットを起票する仕組みをつくろう
    Xray
    Xray 2015/01/23
    ミスったら無限にチケットが作られそう
  • お手軽データバインディングライブラリ「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」を使いこなそう(基礎編)
    Xray
    Xray 2015/01/14
  • 「正規表現と繰り返し」 ~マンガでプログラミング用語解説

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

    「正規表現と繰り返し」 ~マンガでプログラミング用語解説
    Xray
    Xray 2015/01/14
  • WebGLライブラリ「jThree」を使ってjQueryの記法で3Dオブジェクトを操作する

    はじめに 数あるHTML5の機能の中でも特にビジュアルでインパクトのあるWebGL。GPUを駆使した高速3DCGレンダリングが可能なことで話題になったものの、今一つ普及しない背景には「実装があまりにも難しい」ことがあるのではないでしょうか。three.jsの登場により大分実装のハードルが下がったものの、JavaScriptに精通したプログラマでなければ使いこなすのは容易ではなく、ビジュアル要素の強いWebGLにあってデザイナーさんの参入は難しいのが現状です。 今回紹介する「jThree(ジェイスリー)」はそんなWebGLをjQueryの記法で扱えるようにするための国産JavaScriptライブラリです。前述のthree.jsをラップしてjQueryで操作できるよう設計されており、jQueryを使ったことのある方なら手軽にWebGLコンテンツを作ることができます。 記事ではこのjThree

    WebGLライブラリ「jThree」を使ってjQueryの記法で3Dオブジェクトを操作する
    Xray
    Xray 2014/06/24
  • マルチスレッドを安全に実行する

    はじめに この記事は、インドリ氏による『スレッドセーフとインテルTBBのコンテナ』に記載されている誤りを訂正することを目的としています。インドリ氏の記事では、TBBコンテナの紹介に注意するあまり、マルチスレッドプログラミングに潜む危険、その危険を取り除く方法についての記述が正しくありません。記事では、マルチスレッドプログラミングを安全に設計する方法を説明することを目的とします。 記事で用いるコードは、C言語に類似していますが、C言語ではありません。振る舞いを理解していただきやすくするための仮想言語です。実行できる環境はありません。 「競合」という問題 ここに、1つのリンゴがあります。そして、2人の人が、そのリンゴの前にいます。ここで2人に向かって「リンゴをべて良いですよ」とだけ言うと、どうなるでしょうか。お互いに譲り合うか、もしくは取り合いをするでしょう。ここで2人が仲良くリンゴにあ

    マルチスレッドを安全に実行する
  • iPhone Bluetoothプログラミング

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

    iPhone Bluetoothプログラミング
  • OpenMPの基礎構文

    はじめに 昨今マルチコアCPUは一般化し、並列化処理の重要度がどんどん高まってきました。この流れはもう変わらないでしょう。ですから、我々開発者にとって並列処理の知識は絶対に必要なものです。とはいえ、日々の業務をこなしつつ資料が少ない並列化処理を身につけることは大変です。 そこで今回筆者は、並列化処理を実現するOpenMPの入門記事を書くことにしました。OpenMPを選択した理由は、一番効率が求められているのはC/C++プログラマーだと考えたからです。C/C++プログラマーの方々が並列処理を習得するお手伝いができれば幸いです。 なお、この連載で解説に使用するサンプルコードはあくまでもOpenMPの基礎を理解するための便宜的なものであり、実務でOpenMPを使用する際にはよく理解してから用途に適したプログラミングを行ってください。 対象読者 筆者が想定している読者はCの基的文法をマスターし、

    OpenMPの基礎構文
  • .NETでマンデルブロ集合を描く

    はじめに 先日、調べものついでに読まなくなって久しい古雑誌を整理していました。古雑誌の記事は今となってはいささか時代遅れのものがほとんどなんですが、中には今でも十分通用する貴重な資料も少なからずあるので手当たり次第に処分するわけにもいかず、一冊ずつ手にとって目次を確認してたんです。パラパラめくってた一冊に当時(おそらく20年以上前)に書いたであろうコードを打ち出したプリンタ用紙が挟まっていました。BASICで書かれたコードの先頭には10 '--- MANDELBROT-SET ---とコメントされていて……思い出しました。確かに当時、科学雑誌に掲載されていた数式を頼りにコードを書き、8bit-CPUとBASICインタプリタで実行し、マンデルブロ集合の全体像を描くのに丸一日かかったのを覚えています。今や当時に比べればCPU性能はケタ違い(どころの騒ぎじゃない)ですから、より綺麗なマンデルブロ

    .NETでマンデルブロ集合を描く
  • Rubyによる並列処理システム 「CloudCrowd 0.1.0」リリース

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

    Rubyによる並列処理システム 「CloudCrowd 0.1.0」リリース
  • 正規表現の入門(1) 基礎的なメタ文字

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

    正規表現の入門(1) 基礎的なメタ文字
    Xray
    Xray 2008/12/12
  • 1