タグ

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

  • 【実践的ユニットテスト入門】ソフトウェア開発における自動テストの位置付けを考察する

    「テストを書くと開発に時間がかかる」。こんな話を一度は耳にしたことがあると思います。実際はその逆で、テストを書かないとむしろ開発の工数が増えてしまうのです。連載では、テストの基知識はあるが今まで実際のプロダクトでテストを書いたことがない人や、自分が書いたコードのどこをテストしたらいいのかわからない人を対象に、まずはテストを書く→質のいいユニットテストを目指すことを目的として、足がかりとなるポイントを解説します。第2回となる稿では、ソフトウェア開発における自動テストの位置付けを考察します。 はじめに BASE株式会社でシニアエンジニアを務めているプログラミングをするパンダ(@Panda_Program)と申します。連載はPHPカンファレンス2022での発表「実践!ユニットテスト入門」を再構成して記事としたものです。 対象読者 連載の対象読者は、自動テストの必要性をわかっているものの

    【実践的ユニットテスト入門】ソフトウェア開発における自動テストの位置付けを考察する
    atsushifx
    atsushifx 2024/09/01
  • 今どきのプログラミング言語では当たり前! Modern C++で使えるモダンな言語仕様

    はじめに C言語から派生したオブジェクト指向プログラミング言語であるC++は、21世紀に入ってまったく別物とも言えるプログラミング言語に成長していきました。それは、Modern C++と称されています。1990年代にC++を触っていたプログラマが現在の仕様を知れば、隔世感に苛まれるのではないでしょうか。連載では、かつてはC++をたしなんでいたという方、今からC++言語を始めるという方に向けて、Modern C++らしい言語仕様をピックアップし紹介していくことで、今のC++言語の姿を理解していただきます。 対象読者 かつてはC++をたしなんでいたという方 今からC++言語を始めるという方 モダンなプログラミング言語のパラダイムに興味のある方 必要な環境 記事のサンプルコードは、以下の環境で動作を確認しています。 macOS Sonoma/Windows 11 Xcode Command

    今どきのプログラミング言語では当たり前! Modern C++で使えるモダンな言語仕様
    atsushifx
    atsushifx 2024/05/24
  • Ruby on Railsの作者がコンテナ・デプロイ・ツール「Kamal 1.0」を公開

    Ruby on Railsの作者として知られるDavid Heinemeier Hansson氏は、コンテナ・デプロイ・ツール「Kamal 1.0」を9月19日(現地時間)に公開した。同氏は開発したWebサービスをクラウド・プロバイダーから自前のサーバーに移行する手続きを進めており、Kamalはその手続きの中で生まれたという。KamalはMITライセンスで公開しているオープンソース・ソフトウェア。 Kamalは、Dockerでコンテナ化したアプリケーションを配備するツール。設定ファイルに外部の公開IPアドレスを記入して起動すれば、Linuxが動作するコンテナが動き出す。このコンテナにはSSHで接続することも可能だ。 Hansson氏はKamalをWebアプリケーションをクラウドから自前のサーバーに移す目的で使用しているが、クラウド間での移動など、ほかの目的にも利用できる。Kamalを利用す

    Ruby on Railsの作者がコンテナ・デプロイ・ツール「Kamal 1.0」を公開
    atsushifx
    atsushifx 2023/10/01
  • Gitリポジトリマネージャ「GitLab 14.4」がリリース

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

    Gitリポジトリマネージャ「GitLab 14.4」がリリース
    atsushifx
    atsushifx 2021/10/26
  • ラムダ式でCommandパターンで書かれたコードをシンプルにする ~ ラムダ式使いへの第一歩

    Java SE 8では、新しい構文要素として「ラムダ式」が導入されました。これにより、これまで用いられたデザインパターンのいくつかは、特に意識しなくても同等のコードが書けるようになります。デザインパターンが解決しようとしていた問題が、ラムダ式によって素直に実装できるからです。連載では、デザインパターンを使って書かれたコードをラムダ式を使ったシンプルなコードに書き換えながら、ラムダ式の使いどころ・使い方を学んでいきます。 言語の洗練によってパターンは背景に退く まず、デザインパターンについておさらいしましょう。デザインパターンとは、オブジェクト指向言語を用いてプログラムを書くときに、頻発するプログラム設計上の工夫を「パターン」としてまとめたものです。ギャング・オブ・フォー(GoF)と呼ばれる4人の著者(エーリヒ・ガンマ、リチャード・ヘルム、ラルフ・ジョンソン、ジョン・ブリシディース)が執筆

    ラムダ式でCommandパターンで書かれたコードをシンプルにする ~ ラムダ式使いへの第一歩
    atsushifx
    atsushifx 2014/12/17
  • IoT時代を支えるプロトコル「MQTT」(前編)

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

    IoT時代を支えるプロトコル「MQTT」(前編)
  • デブサミ2014、講演関連資料まとめ

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

    デブサミ2014、講演関連資料まとめ
  • オープンソースのワークフローエンジン「Activiti」チュートリアル

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

    オープンソースのワークフローエンジン「Activiti」チュートリアル
  • 7462

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

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

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

    atsushifx
    atsushifx 2013/10/26
  • OpenGLを使った地図描画エンジンの作り方(1)

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

  • JUnit+Mockitoを使ったWebアプリケーションの単体テスト

    自動テストを導入することにより、テストケースの作り方を統一でき、網羅できます。全体を自動テストにできれば、変更部分以外の障害を防止できます。そして、テスト作業がコーディング作業になることによって、楽しくなるでしょう。実際のプロジェクトに導入するにあたってはいくつかの課題がありますが、自動テスト用のテストデータをあらかじめ用意しておくこと、DbUnitMockito・djUnitを使うことで解決できます。 対象読者 今回の対象読者は、下記のとおりです。 実際の開発プロジェクトへの自動テストの導入を検討されている方 JavaによるWebアプリケーション開発についての知識がある方 JUnitの基的な知識がある方 必要な環境 JDK 7 Eclipse 4.3 Tomcat 7 自動テスト導入における課題 JUnitの使い方は簡単なので、試しに使ってみたという方は多いと思います。しかし実際に業

    JUnit+Mockitoを使ったWebアプリケーションの単体テスト
    atsushifx
    atsushifx 2013/10/24
    [JUnit[Mockito][Webアプリケーション][CodeZine]
  • 無料のSDK for NFC Starter Kitを使ってFeliCa ICカードを読み書きするプログラムを開発する

    「PaSoRi」は、ソニーの非接触ICカードリーダー/ライターです[3]。家電量販店などで、3000円弱で購入できます。 ICカードについては、次項で説明します。 ICカードの調達 FeliCaには、「Suica」や「WAON」などで使われているFeliCa Standardのほかに、仕様がシンプルで価格が安いFeliCa Lite-Sという規格のカードがあります。自由に読み書きできる領域は224バイトであり、画像や音声を格納するには不十分ですが、URLやメールアドレスなどのちょっとしたテキストデータを扱う分には問題ありません。ここでは、FeliCa Lite-Sのカードを使います。 FeliCa Lite-Sのカードは、インターネットで購入できます。記事執筆時現在、たとえば、ステルス・ネットワークス株式会社が1枚360円(税別・送料別)で販売しています[4]。 また、株式会社オレンジタグ

    無料のSDK for NFC Starter Kitを使ってFeliCa ICカードを読み書きするプログラムを開発する
    atsushifx
    atsushifx 2013/10/06
    Pasori必須なのか。国際版NFCでFelicaがよえればすごいんだけど、さすがに無理なんだろうな。
  • マルチスレッドを意識しないマルチスレッド・ライブラリ「Intel Concurent Collections」がおもしろい

    「Intel Concurrent Collections for C++」(CnC)とは 実際並列処理はややこしいしおっかないです。大きなキッチンで大勢のコックが包丁とフライパン振り回しているようなもので、ほっとけばしっちゃかめっちゃかになっても不思議じゃない。各人はそれぞれの役割に専念し、他人のふるまいを気にせず勝手に働きながらも全体としては統制のとれた動きを作り出さにゃなりません。mutexで排他制御したりjoinで完了を待ったり、さまざまな道具を駆使して統制のとれた動きを作り出しているのはプログラマであり、そこがいちばん難しく悩ましいところです。 C++,C#あるいはVB,Javaもそうですが、コードは原則的に並べた順に実行されます。 と書けば、まずf()、それが終わればg()、しかるのちh()の順で呼び出されます。たとえこの3つをどの順にやっても(あるいは同時にやっても)構わない

    atsushifx
    atsushifx 2013/09/27
  • 毎時300万通のメール配信を可能にする高速リレーサーバをErlangで実現

    高速リレーサーバ「Cuenote SR-S」の魅力 顧客向けの案内メールなどのように一度に大量のメール配信を行う場合、正しく配信されなかったり、遅れて配信されたりするケースが多々ある。代表的な原因としては、配信先の増加によってメール配信システムの時間辺りの配信数の上限を超えてしまうケースや、無効なアドレスを正しく管理できていないケースなどが挙げられる。また携帯電話向けに配信する場合などには、同じドメインから同時に大量のメールを送るとキャリア側の制限によって配信が中断されてしまうことも多い。 リレーサーバであるCuenote SR-Sの魅力は、これらの問題を既存の配信システムに改修を加えることなく導入できるという点である。簡単に説明すると、Cuenote SR-Sはメール配信のためのネットワーク経路上に配置し、他のメールサーバやメール配信システムからメールの文面を受け取って、登録された配信先

    毎時300万通のメール配信を可能にする高速リレーサーバをErlangで実現
    atsushifx
    atsushifx 2013/09/15
  • Windowsアプリの同期ソフト「Synclogue」、ベータ版サービスの無料提供を開始

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

    Windowsアプリの同期ソフト「Synclogue」、ベータ版サービスの無料提供を開始
  • アシアル、アプリケーション開発プラットフォーム「Monaca」正式版を12日リリース

    「Monaca」は、iOS、AndroidWindows 8に対応したクラウド型のハイブリッドアプリ開発プラットフォームで、HTML5を活用しながらワンソースで複数のOS向けのアプリを開発できる。ブラウザから「Monaca」にアクセスするだけで、プログラムコードの作成、デバッグ、およびアプリのビルドが可能なので、従来のネイティブベースのモバイルアプリ開発手法と比較して、より効率的な開発を実現する。 今回リリースした正式版では、1つのプロジェクトを複数名で管理・開発できる「チーム開発機能」を搭載し、チャット機能やファイル共有機能など、チームでの作業効率を向上するツールも「Monaca IDE」上に用意している。 ほかにも、作成したプロジェクトのインポート/エクスポートや、プログラムコードの難読化、コードチェック機能を新たに搭載した。また、PhoneGapの組み込みに対応し、ネイティブコード

    アシアル、アプリケーション開発プラットフォーム「Monaca」正式版を12日リリース
    atsushifx
    atsushifx 2013/09/10
  • Windowsストアアプリの開発環境を準備しよう

    はじめに 前回は、Windows 8で動く「Windowsストアアプリ」の概要についてご紹介しました。記事では、この「Windowsストアアプリ」を作成するために必要な環境を構築する手順をご紹介します。 対象読者 記事は、次の方を対象にしています。 アプリケーション開発がはじめての人 HTMLCSSでWebサイトを作ったことがある人 必要な環境 連載で紹介する環境は次のとおりです。 OS:Windows 8 Pro IDE:Microsoft Visual Studio Express 2012 for Windows 8 開発をするためには準備が必要!? Windowsストアアプリの開発には、Microsoftが提供している「Visual Studio Express 2012」を使用します。これは統合開発環境と呼ばれるソフトウエアで、プログラムを効率よく書くための機能や、作成し

    atsushifx
    atsushifx 2013/07/26
  • IPA、「ソフトウェア品質説明のための制度ガイドライン」を公開

    情報処理推進機構(IPA)ソフトウェア高信頼化センター(SEC)は、専門的知識を有する中立な立場の第三者が、ソフトウェアの品質を確認して利用者に示す制度を構築するための指針をまとめた「製品・システムにおけるソフトウェアの信頼性・安全性等に関する品質説明力強化のための制度構築ガイドライン」(「ソフトウェア品質説明のための制度ガイドライン」)を、12日にWebサイトで公開した。 「ソフトウェア品質説明のための制度ガイドライン」は、製品・システムの品質を第三者が確認する制度を設ける際の要求事項(43項目)などを、「公正性の確保」「整合性の確保」の観点からまとめており、さまざまな製品やシステム分野で、業界団体などが公正で、整合性のとれた制度を構築できる。 「公正性の確保」では、製品やシステムを確認する第三者と供給者の独立性の確保や、制度に関与していない外部者による制度のレビューの実施などを定めてお

    IPA、「ソフトウェア品質説明のための制度ガイドライン」を公開
    atsushifx
    atsushifx 2013/06/14
  • 「書くコードに自信と責任を持ったプロフェッショナルになるために」 ~アジャイルアカデミー開講記念インタビュー

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

    atsushifx
    atsushifx 2013/06/14