タグ

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

  • マルチスレッドを安全に実行する

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

    マルチスレッドを安全に実行する
  • JUnitを使った単体テストの効率が50%アップ! ありがちな失敗例とその対策のカギを握るツール「Jtest」

    みなさん、単体テストは実施していますか? そして、問題なく運用できていますか?――単体テストとは、テスティングフレームワークを使ったテストプログラムのことです。稿ではJavaの開発でよく使用される、オープンソースのテスティングフレームワーク「JUnit」を用いた単体テストの失敗例と、それを回避するためのコツをお伝えします。さらに商用ツールである「Jtest」の「単体テストアシスタント」機能を活用して、テストをより効率的に実施するための方法も紹介します。 Java対応静的解析・単体テストツール「Jtest」 はじめに Javaの開発では、多くのプロジェクトでオープンソースのテスティングフレームワーク「JUnit」が使われています。テスティングフレームワークを使った単体テストのメリットは、テストコードを一度作成することで同じ条件のテストを繰り返し実行でき、結果の確認を自動で行えることです。

    JUnitを使った単体テストの効率が50%アップ! ありがちな失敗例とその対策のカギを握るツール「Jtest」
  • SeleniumとWebDriverの最新事情~標準化が進み、さらに強力なテストツールへ! その影でSelenium IDEは……

    illustration by iwasawa これまでのSelenium さて、最新事情に触れる前に、記事をご覧の皆様は既によくご存知かとは思いますが、あらためてSeleniumとは何か、そして現在の形に至るまでの道をおさらいしておきましょう。 Seleniumは、Webブラウザの自動操作ライブラリです。人間がWebブラウザでやるような手作業を、自動的に再現できます。単純作業の自動化に利用できるほか、一般的な自動テストフレームワークと組み合わせることでEnd to End(E2E)テストの自動化を実現できます。Webアプリケーションのテスト作業で苦労されている方にとっては福音のようなライブラリですが、自動テストコードや実行環境の維持・実行時間などが大がかりになりがちで、利用コストは高めです。回帰テストの自動化など、繰り返し利用が多い用途への適用が特に効果的でしょう。 Seleniumの

    SeleniumとWebDriverの最新事情~標準化が進み、さらに強力なテストツールへ! その影でSelenium IDEは……
  • JUnitの単体テストを30秒で作成! 工数削減への近道は「Jtest」を使った単体テストの高速化

    単体テストは実装中や実装直後など開発の早い工程でバグを発見でき、手戻りが少なく費用対効果の高いテストとされています。そのため、多くのシステム開発現場で導入が進んでいます。Java開発における単体テストの自動化フレームワークとしては「JUnit」が有名ですが、膨大なテストコードを書いたり、デバッグに多くの時間を費やしたりするケースも多々あります。せっかく費用対効果の高いテストを自動化したとしても、これでは十分なメリットを享受できたとはいえません。そこで、記事ではJUnitを使った単体テストを効率よく行うための手法を解説し、さらに、テストツール「Jtest」の単体テストアシスタント(Unit Test Assistant)を活用して、30秒で単体テストの実装を行う方法や、テスト失敗の原因をひと目で確認する方法を紹介します。 Java対応静的解析・単体テストツール「Jtest」 関連記事 Ja

    JUnitの単体テストを30秒で作成! 工数削減への近道は「Jtest」を使った単体テストの高速化
  • Javaで簡単にUIテストを書けるSelenideを使おう~Selenideの概要とテストの保守性を上げるPage Objectパターンの紹介

    illustration by iwasawa Selenideとは Selenideとは、エストニアにあるCodeborne社のAndrei Solntsev氏を中心に開発が行われているWebDriverのJavaラッパーの一つで、同じJavaで実装されたFluentLeniumやGroovyでのGebに相当するものです。WebDriverはプログラムからブラウザを操作するAPIを提供していますが、基的に低レベルAPIで自動テストを記述するには大量のコードが必要となります。SelenideはWebDriverを基盤としながら高水準APIを提供することで、WebDriverを素で使うよりも容易にかつ記述量を抑えてテストを記述することができます。 Selenideの特徴 以下ではSelenideの特徴を述べていきます。これらの中には上記で挙げたFluentLeniumやGebでも提供されて

    Javaで簡単にUIテストを書けるSelenideを使おう~Selenideの概要とテストの保守性を上げるPage Objectパターンの紹介
  • メンバー育成にも効果アリ! コードレビューを充実させ、不具合件数を半減させたJVCケンウッドのテストツール活用術

    ソフトウェア開発の現場では、「高品質」「低コスト」「短納期」が要求され、そのための取り組みが行われている。テスト工程においてもこれらの条件を実現するため、ツールを導入が進んでいるが、思ったよりも効果が出ていないという声も多い。ではどのようなツールをいかに運用すれば、高い品質のソフトウェアを低コスト、短期間で開発できるのか。「開発現場の意識が変わる! 品質向上を実感する『仕組み』作りとは?」と題して、20年以上のテストツール販売実績を誇るテクマトリックス主催のセミナーが開催された。 ツールの導入に加え、メンバーの育成、開発チームの活性化に注力 テスト工程にツールを導入したものの、品質の向上、開発の効率化が図れていない──。こんな課題を持っている開発現場は多い。そんな課題解決のヒントが得られるセミナーが、静的解析、動的解析の両方をサポートしたC/C++言語対応のオールインワンテストツール「C+

    メンバー育成にも効果アリ! コードレビューを充実させ、不具合件数を半減させたJVCケンウッドのテストツール活用術
  • リクルートテクノロジーズ、「2016年おすすめプログラミング言語」ランキングを発表、初めて習得する人にはどの言語?

    リクルートテクノロジーズは、事前調査で「過去に習得または勉強したことがあるプログラミング言語が3言語以上である」と回答した20代~40代ITエンジニア 507名を対象に、プログラミング言語に関するアンケートを実施。一定以上の学習を積んだITエンジニアが「初めて習得」「これから最も重要」と考えるプログラミング言語が明らかになった。 【補足:リクルートテクノロジーズからの「お詫びとお知らせ」(2016/6/20)】 リクルートテクノロジーズは、このアンケート結果を伝えるプレスリリースを「お詫びとお知らせ」(PDF)に変更し、プレスリリースを閲覧した方に多大なご迷惑をお掛けしたとしてお詫びを述べるともに、件に関する問い合わせ・質問を下記窓口で受け付けている。 株式会社リクルートテクノロジーズ PR 事務局 アウル株式会社内 TEL:03-5545-3888 FAX:03-5545-3887 

    リクルートテクノロジーズ、「2016年おすすめプログラミング言語」ランキングを発表、初めて習得する人にはどの言語?
    ikd9684
    ikd9684 2016/06/18
    雑だなー。
  • Java特有の冗長なコードを簡潔に記述する「Lombok」

    Javaは言語仕様上の制約により、ボイラープレートコード(自明だが省略できないお決まりのコード断片)がいくつかあります。例えば、メンバ変数を読み書きするだけのgetterメソッドやsetterメソッドがこれにあたります。Lombokを使えば、これらJava特有の冗長なコードを、見やすく簡潔なものにすることができます。記事ではLombokを利用して、ボイラープレートコードをシンプルに記述する方法について解説します。 はじめに 今やJava開発に必要不可欠となったものの一つに、IDEの存在があります。例えばEclipseではメンバ変数さえ定義すれば、getter/setterの自動生成や、equalsメソッドやhashCodeメソッド、toStringメソッドなどの自動生成などさまざまな場面でコーディングを強力にサポートしてくれます。 これは大変便利な機能ですが、裏を返せばJavaの言語仕様

    Java特有の冗長なコードを簡潔に記述する「Lombok」
  • いま最も注目のライブラリ「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」でシングルページアプリケーションを作ってみよう! 【前編】
  • Visual Studio“だけ”でiOSとAndroidアプリが作れる「Monaca for Visual Studio」

    しかし最近では、この分野に大きな変化が起きています。そのきっかけが、マルチプラットフォーム開発を可能にするHTML5ハイブリッドアプリの登場です。HTML5ハイブリッドアプリとはWeb技術であるHTML5を用いて作られるネイティブアプリで、プラットフォームに依存しない「クロスプラットフォーム」であることが最大の特徴です。 Visual Studioでも、このHTML5ハイブリッドアプリの開発の対応がどんどん進んでいます。Visual Studioの優れた開発環境を使い、iOSやAndroid向けのネイティブアプリが開発できます。そこで稿では、Visual Studio上でHTML5ハイブリッドアプリ開発を実現する「Monaca for Visual Studio」を紹介し、実際にアプリ開発をしていきたいと思います。 対象読者 今回の対象読者は、以下のとおりです。 JavaScriptによ

    Visual Studio“だけ”でiOSとAndroidアプリが作れる「Monaca for Visual Studio」
    ikd9684
    ikd9684 2015/02/18
    それ、Webでいいじゃん、と思う。/作る側の都合で利用者の利便性を欠いてはいけない。
  • ScalaのWebアプリケーションフレームワーク「Play Framework」入門 ~(1)環境構築とスタートアップアプリの作成

    はじめに 最近の関数型言語ブームの中で、高い生産性と高い品質を誇る言語であると注目を浴びているのが「Scala」です。今回は、このScalaのWebアプリケーションフレームワークである「Play Framework」(以下、Play2)について紹介します。 「Scala」はTwitterやLinkedInなどのサービスで利用されており、2013年は日で初めてScalaに特化した大規模なカンファレンスが開かれたり、さまざまな情報媒体で取り上げられたりと、ここ1、2年で急激に人気が高まっているのではないでしょうか。 Play2はJVM上で動作し、これまでのJavaで開発するエンタープライズアプリケーションで多く採用されたサーブレットやJSPのアーキテクチャを採用せず、独自のMVCモデルのアーキテクチャを持っており、スケールアウトしやすい構造になっています。 連載では、開発者にもフレンドリー

  • 「Selenium2」のインストール手順と初めの一歩

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

  • さよなら手作業・人海戦術! HTML5時代のツール「Selenium2」でWebシステムのテストを自動化

    シリーズは、WebブラウザをUIとして利用した業務システムやアプリケーション(以下、Webシステム、Webアプリケーション)のテストをテーマとして、Webブラウザを使ったテストを自動化するOSSのツール「Selenium2」を紹介します。業務システム開発の現場で適用してきたノウハウを元に、これまでSelenium2について知らなかった人から以前使った経験がある人まで、より実践的な「使える」内容を盛り込んでいきたいと思います。 シリーズのスコープと対象読者 シリーズはWebシステム・Webアプリケーションのテストの中でも「Webブラウザを操作して実施するテスト」をスコープにしています。開発工程としては、1モジュールとして単体テストに位置付けられる場合もあれば、複数のモジュールやシステムと連携して結合テストや総合テストに位置付けられる場合もあるでしょう。これらのテストのことを、シリーズ

  • Web APIの基本とAndroidアプリ開発の準備

    はじめに 第1回目の稿は、Web APIの説明と、開発を行うための準備として、開発環境のインストールについて解説します。 対象読者 Androidアプリケーションの開発を始めたい方で、JavaとEclipseの基的な知識がある方を対象とします。 Web APIとは 連載であつかう「Web API」とはどういうものかを、まず始めに説明しましょう。 Web APIとは、ひとことで言えば、インターネット(Web)を経由して、何らかの処理を行うための、手段や決めごと(API)のことです。APIとは、Application Program Interfaceの略で、直訳すると、あるプログラムを、他のアプリケーションから利用するためのインターフェース、という意味になります。 一般的なプログラムでは、関数やサブルーチンと呼ばれるひとかたまりの処理を作成し、それをプログラム内のほかの場所から呼び出す

    Web APIの基本とAndroidアプリ開発の準備
  • 作って覚えるJavaプログラミングのススメ一覧

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

    作って覚えるJavaプログラミングのススメ一覧
  • 「デザインパターンの使い方」連載一覧

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

    「デザインパターンの使い方」連載一覧
  • HTML5で進化したフォーム機能 ここが違う!サンプルで見るHTML5(5)

    はじめに この連載では、今日のウェブ業界の流行語となっている「HTML5」をとりあげ、全6回に分けて、これまでの技術とどのような違いがあるのか、具体的にサンプルのコードを示しながら解説していきます。 過去の連載も読む 第1回:HTML5が注目を浴びる理由とは? 第2回:HTML4から変化したHTML5のマークアップ 第3回:HTML5で再定義された要素と属性 第4回:HTML5で実現できるマルチメディア系機能 新たに導入されたフォームコントロール これまでウェブにおける入力フォームコントロールは、非常に限られたものしかありませんでした。皆さんがよくご存じのテキスト(パスワード)入力フィールド、ラジオボタン、チェックボックス、セレクトメニュー、テキストエリア、ファイル選択です。お問い合わせフォームであれば、ほとんどのシーンで十分といえるでしょうが、ウェブアプリケーションにおいては、不足してい

  • サーバー側コーディング不要のGoogle App Engine開発環境「jsonengine」

    はじめに 稿では、JavaPythonによるサーバー側コーディングを一切必要とせずにGoogle App Engineによる開発を実現するツール「jsonengine」について紹介します。 対象読者 Google App Engineに興味はあるが経験のない方。JavaScriptやActionScriptによるクライアント開発、またはiPhoneAndroidによるスマートフォン開発の経験のある方。JavaPythonの開発経験は不要です。 必要な環境 最低動作環境は次のとおりです。 Java SE 5 jsonengineって何? 「jsonengine」は、JavaPythonによるサーバー側コーディングを一切必要とせずにGoogle App Engineによる開発を実現するオープンソースのツールです。このツールは、昨年開催された「Mashup Awards 6」において「

  • 1