タグ

ブックマーク / atmarkit.itmedia.co.jp (105)

  • 分散バージョン管理Git/Mercurial/Bazaar徹底比較

    分散バージョン管理Git/Mercurial/Bazaar徹底比較:ユカイ、ツーカイ、カイハツ環境!(3)(1/5 ページ) Subversionとは一味違う「分散バージョン管理」とは? 最近、Linuxをはじめ、Ruby on RailsMySQL、OpenSolarisなどのオープンソースプロダクトが次々と分散バージョン管理システムを導入し始め、「Git」「Mercurial」「Bazaar」といった、分散バージョン管理システムが注目を浴びています。 稿では、バージョン管理ツールのデファクトスタンダードであるSubversion(以下、SVN)と分散バージョン管理システムを比較しながら、メジャーな分散バージョン管理システムであるGit、Mercurial、Bazaarについて紹介していきます。 集中型と分散型 最初に、集中管理方式(または、集中型)のバージョン管理システムと分散管理

    分散バージョン管理Git/Mercurial/Bazaar徹底比較
  • Jenkinsの生みの親が語る、継続的インテグレーションの未来 - @IT

    2011/06/06 5月24日、日Javaユーザグループ(以下、JJUG)の主催による「JJUG Cross Community Conference(以下、JJUG CCC) 2011 Spring」が行われた。JJUG CCCはJJUGが年2回開催している定例イベントであり、Javaに関する最新の動向や活用事例などが紹介される。 稿では、オープンソースのCIサーバ「Jenkins」の生みの親である川口耕介氏による基調講演の様子をお伝えする。 「Jenkins」はソフトウェアプロジェクトのビルドやテストを自動化する継続的インテグレーション(CI:Continuous Integration)サーバの一種である。もともとは「Hudson」という名称で開発・公開されていたが、商標上の問題によってJenkinsに改名された。 JJUG CCCの基調講演は、その生みの親であり現在もプロジェ

    kamatama_41
    kamatama_41 2011/06/07
    これは本当にいい話でした
  • Subversionで簡単・確実にファイルを構成管理

    Subversionで簡単・確実にファイルを構成管理:エンジニアがお薦めする 現場で使えるツール10選(4)(1/5 ページ) 普段無意識にやっているファイルの整理を、「Subversion」を使ってバージョン管理、構成管理します。このツールを使えば、開発チームの効率がアップすること間違いなしです! 構成管理≒バージョン管理 バージョン管理というと、ソフトウェア構成管理のことを示す文章を見掛けますが、「CMMI」(Capability Maturity Model Integration:ソフトウェア開発におけるプロセスの成熟度評価やプロセス改善を行うためのガイドライン)のソフトウェア構成管理によると、「変更管理を含むソフトウェアの構成を制御・管理できていること」と定義されています。 今回は、ソフトウェアのソースコード管理だけでなく構成管理(ドキュメント管理)におけるSubversionの

    Subversionで簡単・確実にファイルを構成管理
  • 【DB概論】データベースシステムに求められる要件

    DB概論】データベースシステムに求められる要件:できるエンジニアになる! ちょい上DB術・基礎編(1) デキるエンジニアになるためには、DB技術の基礎は必須です。連載では、豊富な実例と演習問題で、プロとして恥ずかしくない設計手順を解説します。DB設計のポイントとなる汎用的なケースを紹介しているので、通常の業務とは異なる場合でも応用できる「共通の考え方」を身に付けられます。 デキるエンジニアになるためには、DB技術の基礎は必須です。 「使える」システムを構築するには、データベース設計がと非常に重要です。先人が遭遇したトラブルを避けられるかどうか、システム構築やアプリケーション開発が成功するか否かは、データベース設計にかかっているところが大きいです。 連載では、豊富な実例と演習問題で、プロとして恥ずかしくない設計手順を解説します。システム構築において「どの工程で、どのような観点からデータ

    【DB概論】データベースシステムに求められる要件
  • オラクル買収後のJava 7と8、JavaFXはどうなるのか (1/2) - @IT

    オラクル買収後のJava 7と8、 JavaFXはどうなるのか JJUG Cross Community Conference 2011 Spring レポート 有限会社オングス 杉山貴章 2011/5/30 2011年5月24日、日 Java ユーザグループ(以下、JJUG)の主催による「JJUG Cross Community Conference(以下、JJUG CCC) 2011 Spring」が行われた。JJUG CCCはJJUGが年2回開催している定例イベントであり、Javaに関する最新の動向や活用事例などが紹介される。稿では、同イベント内で行われた全16のセッションからJava SE(Standard Edition)/Java EE(Enterprise Edition)およびJavaFXの最新動向を追った。 コンシューマ化するIT技術Javaへの影響 今回のJJUG

  • Eclipseプラグイン Spring IDEを使ってみよう

    現場で使われるようになったSpring 連載『Spring Frameworkで理解するDI』で、DI(Dependency Injection、依存性の注入)という概念を説明するために、Spring Frameworkについて説明しました。 このSpring Frameworkが公開されてから数年がたち、メジャーバージョンアップがされたSpring 2.0もリリースされています。日でも、近ごろではSpringを利用した開発現場をよく見掛けるようになりました。Spring Frameworkは乱立が見られたJava EE関連のフレームワークの中では、着実に普及してきているといえます。 この記事で扱うソフトウェアのバージョン この記事では、Spring 2.0の新機能を紹介するとともに、EclipseプラグインであるSpring IDEを使って、「Spring 2.0時代の開発スタイル」を

    Eclipseプラグイン Spring IDEを使ってみよう
  • Java/GrailsのWebアプリを無料クラウド環境で動かす (1/3) - @IT

    Java/GrailsのWebアプリを 無料クラウド環境で動かす 【特集】Ruby on Railsも動かせる「Morph AppSpace」とは? 株式会社 クロノス 奥 清隆 2008/9/18 Web上のリソース=雲? 「クラウド環境」って何? 「クラウド環境」とは、インターネットなどのネットワーク/Web上に存在するさまざまなリソース(データベースや、HTTPサーバ、アプリケーションサーバなど)を、利用者がリソースの所在を意識せずに利用できる環境のことです。ネットワーク/Webを“雲(クラウド)”に例え、雲の中にあるリソースを利用する環境から、「クラウドコンピューティング」などの呼び名が付いています。 例えば、セールスフォース・ドットコムのForce.comや米アマゾンのAmazon EC2((Elastic Compute Cloud)/S3(Simple Storage Ser

  • JUnitより簡単なオープンソースの「TestNG」とは?

    JUnitより簡単なオープンソースの「TestNG」とは?:次世代テストフレームワークでテストを変える(1)(1/3 ページ) テスティングフレームワークといえば…… Javaエンジニアが「テスティングフレームワーク」という単語を聞いて、真っ先に連想するものは、「JUnit」でしょう。しかし、テスティングフレームワークはJUnitだけではありません。「TestNG」というテスティングフレームワークも海外では高く評価され、確固とした地位を築いています。例えば、JBoss SeamはTestNGをベースにした統合テストフレームワークを提供しています。 この連載ではTestNGのコンセプトから詳細な使い方まで解説し、開発プロジェクトにおいてTestNGを利用する際の助けとしていただくことが目的です。 連載第1回では、Javaエンジニアになじみ深いJUnitとTestNGを比較し、2つのフレームワ

    JUnitより簡単なオープンソースの「TestNG」とは?
  • ブラウザを選ばずWebテストを自動化するSelenium

    Webアプリケーションのファンクションテストを行うツールとして注目されている「Selenium」のバージョン1.0が6月20日にリリースされました。安定性が向上するとともに、Firefox 3.0、3.5(Selenium IDEは1.0.2から、Firefox 3.5に対応)や、Internat Explorer(以下、IE) 8などの最新のWebブラウザにも対応しました。 稿では、Selenium 1.0をベースとしたSelenium IDEとSelenium RCを利用した効果的なSeleniumの利用方法を紹介します。 Webアプリのテストで誰もがイラつく大きな課題 Webアプリケーションテストを手で行うと、非常に煩雑です。Selenium登場以前の従来のやり方では、次のような問題がありました。 回帰テストに時間がかかる バグ修正や仕様変更などで、Webアプリケーションを変更した

    ブラウザを選ばずWebテストを自動化するSelenium
  • いまさら聞けない「Javadoc」と「アノテーション」入門

    いまさら聞けない「Javadoc」と「アノテーション」入門:【改訂版】Eclipseではじめるプログラミング(22)(1/4 ページ) これからプログラミングを学習したい方、Javaは難しそうでとっつきづらいという方のためのJavaプログラミング超入門連載です。最新のEclipseとJava 6を使い大幅に情報量を増やした、連載「Eclipseではじめるプログラミング」の改訂版となります 注釈とコメントで開発しやすくしよう 開発者がソースコードにコメントを自由に記述すると、統一性がなくなり、同じ内容をさまざまな表現で書いてしまいます。これを防ぎ、重要な情報について統一的な表現で記述したいときは、「アノテーション(annotation、注釈)」を使うことを検討してみましょう。 Javaではアノテーションをプログラムのソースコードへプログラムのメタデータとして記述できます。また、プログラムにア

    いまさら聞けない「Javadoc」と「アノテーション」入門
  • 時間の無駄? 進捗会議が泥沼にはまる理由

    時間の無駄? 進捗会議が泥沼にはまる理由:新任PMがついやってしまうNG集(3)(1/2 ページ) 1人で仕事をしているプログラマ時代は、ばりばり仕事がこなせたのに、PMになった途端に仕事がうまく進まない! そんな新任PMの悩みを解決するTipsを紹介します。 会議は「時間の無駄」ですか? 管理ツールや報告書を見ている限りにおいては、メンバーの仕事は何事もなく順風満帆に進んでいるように見えます。進捗(しんちょく)率も予定どおり推移中。 しかし、「進捗率」の数字なんて当てにはなりません。そのことに、あなたもうすうす気が付いているでしょう。実際、進捗会議で確認してみると、予定どおりの数字と実態がまったく違っていたり、問題が山積みだと発覚することはよくあります。その事実についてメンバーが指摘すると、「そもそも仕事が忙しすぎるのが悪いんですよ!」と逆ギレされて、進捗会議が泥沼にはまってしまう……そ

    時間の無駄? 進捗会議が泥沼にはまる理由
  • 2次元のキーを持つハッシュデータを作る

    IDによって管理されているデータベース上のデータのように、キーと値が対となるデータを扱わなければならないことはよくあります。そのようなときは、コアAPIjava.utilパッケージにある、HashMapクラスやDictionaryクラスを利用するのが一般的でしょう。 しかし、2つのキーの組み合わせで値が特定されるようなデータにも直面することがあります。例えば、各都道府県の年齢別人口といったデータでは、「都道府県」と「年齢」という2つのキーによって、人口を特定しなくてはなりません。 このような2次元のキーを持つデータを扱うときは、どのクラスを使えばいいのでしょうか? HashMapクラスやDictionaryクラスは、1つのキーだけで値を一意に特定できるデータには問題なく使えますが、このようなデータはうまく処理することができません。実際のところ、複数キーを持つデータを扱うためのクラスは、コ

    2次元のキーを持つハッシュデータを作る
  • なぜDIコンテナを使うのか

    DIコンテナのメリット、そして課題 ■DIによる単体テストの促進 筆者はさまざまな開発現場で仕事をしていますが、テスティングフレームワークを活用しているプロジェクトは少ないように感じます。理由はさまざまですが、テストコード自体が書きづらいということも理由として挙げられるようです。この記事でお伝えしている筆者の現在のプロジェクトでは、DIを使うことでテストコードが書きやすくなったため、単体テストを実施しやすくなり開発効率を向上することができました。 テストコードが書きづらい理由の1つに、“依存性の問題”があります。つまり、1つのテストコードを記述するには、依存するクラスまで含めて検証しなければならないのです。 このため依存するクラスにバグや未完成な部分があるとテストができませんし、依存するクラスの変更があった場合はテストコードを作り直さなくてはならなくなります。リスト6のJuchuImplク

    なぜDIコンテナを使うのか
  • Spring Frameworkで理解するDI

    実運用の障害対応時間比較に見る、ログ管理基盤の効果 (2017/5/9) ログ基盤の構築方法や利用方法、実際の案件で使ったときの事例などを紹介する連載。今回は、実案件を事例とし、ログ管理基盤の有用性を、障害対応時間比較も交えて紹介 Chatwork、LINENetflixが進めるリアクティブシステムとは何か (2017/4/27) 「リアクティブ」に関連する幾つかの用語について解説し、リアクティブシステムを実現するためのライブラリを紹介します Fluentd+Elasticsearch+Kibanaで作るログ基盤の概要と構築方法 (2017/4/6) ログ基盤を実現するFluentd+Elasticsearch+Kibanaについて、構築方法や利用方法、実際の案件で使ったときの事例などを紹介する連載。初回は、ログ基盤の構築、利用方法について プログラミングとビルド、Androidアプリ開

  • 「大丈夫」という部下の報告を信じてはいけない理由

    1人で仕事をしているプログラマ時代は、ばりばり仕事がこなせたのに、PMになった途端に仕事がうまく進まない! そんな新任PMの悩みを解決するTipsを紹介します。 「あのメンバー、仕事の進捗(しんちょく)は大丈夫かな?」 PMプロジェクトマネージャ)なら、誰もが気になるところです。 「予定の期日に間に合います!」というメンバーの力強い返事を信じて任せていたら、完了予定日になって「実はまだできていませんでした」という相談が来て、結局対応に追われるはめになる……そんな経験はないでしょうか。 しかも、往々にしてこのようなことは1回だけでなく、何度も繰り返し起こります。一段落した時、メンバーに仕事が遅れた理由を聞いても、返ってくるのは「申し訳ありません」という平謝りと「今後はしません」という形ばかりの口約束だけ。 こんな調子じゃ、安心して仕事を任せられません。しかし、こんなふうになってしまうのには

    「大丈夫」という部下の報告を信じてはいけない理由
  • 「Hudson」改め「Jenkins」で始めるCI(継続的インテグレーション)入門

    「Hudson」改め「Jenkins」で始めるCI(継続的インテグレーション)入門:ユカイ、ツーカイ、カイハツ環境!(21)(1/4 ページ) CIツール「Hudson」改め「Jenkins」とは 「Jenkins」とは、CI(継続的インテグレーション)ツールとして有名な「Hudson」の開発者たちにより開発されているCIツールです。Hudsonは商標上などの問題によりJenkinsと名前を変えて継続することが発表されたので、記憶に残っている方も多いと思います。現在では落ち着いて開発されているようです。 稿では、今話題のJenkinsの使い方を紹介します。記事の想定読者は、Java開発を行っている方で、「今までCIを導入していなかったけどこれから導入しよう」「Jenkins(Hudson)は使えそうだけど、難しそうだなぁ」と思っている方を対象としています。稿を読めば、10分程度でJe

    「Hudson」改め「Jenkins」で始めるCI(継続的インテグレーション)入門
  • Tomcat 7も対応したServlet 3.0の6つの主な変更点

    実装する仕様は、以下のバージョンにアップデートされました。 Servlet 2.5⇒Servlet 3.0 JSP 2.1⇒JSP 2.2 EL 2.1⇒EL 2.2 連載では3回の連載を通して、Tomcatの最新メジャーバージョンであるTomcat 7について説明します。第1回目と第2回目でServlet 3.0を紹介し、第3回目でTomcat独自の新機能を紹介する予定です。 Servlet 3.0における6つの主な変更点 第1回目となる今回は、Tomcat 7が実装したServlet 3.0について説明します。Servlet 3.0とはJSR-315のことを指します。Tomcatは、このJSR-315仕様を実装しています。 Servlet 3.0では、Servlet 2.5に対して主に、次のような仕様変更を導入しました。 Ease of Development(EoD、開発容易性)

    Tomcat 7も対応したServlet 3.0の6つの主な変更点
  • 大江戸Ruby会議:「IT勉強会じゃないコミュニティを」 - @IT

    いわゆるIT勉強会ではなく、プログラマが集まってプログラマ集団として成果を出す。そういうコミュニティが作りたかった――。2011年4月10日、東京・深川で行われたRuby技術者(Rubyist)の集まり「大江戸Ruby会議01」の基調講演で挨拶した松田明氏は、浅草を中心に取り組んできた地域のRuby技術者のコミュニティ作りに込めた思いを、こう述べた。 成果を出すプログラマ集団のための場を 大江戸Ruby会議は、札幌、名古屋、仙台、東京、関西、九州などで年に数回行われている“地域Ruby会議”と呼ばれるイベントの1つ。参加者数こそ約80人とRubyKaigiやRubyConfなど内外の年次イベントより小規模だが、オープンソースコミュニティの1つのあり方を示すお祭りであり、交流会でもある。 開催メンバーは「地域Rubyist集団の生活発表会みたいなものです」と趣旨を説明する。“生活発表会”とい

  • NoSQLデータベースを使い始める前に

    前回はNoSQLデータベースとRDBMSの設計思想の違いを解説しました。今回は、それを踏まえてNoSQLデータベースでデータベースを設計するときに覚えておきたいポイントを解説します。(編集部) NoSQLデータベース設計のセオリーとは? 前回は、NoSQLデータベースが登場してきた背景や、リレーショナルデータベース管理システム(RDBMS)との違いを解説し、いくつかの代表的なNoSQLデータベース製品を紹介しました。長年、データ管理の分野で主役を担ってきたRDBMSはデータ一貫性を強く保持する仕組みを備えていましたが、半面その特徴ゆえにネットワーク上の複数のサーバにデータを分散すると(分散環境)十分に性能を発揮できず、スケールアウトによる性能向上が困難であるという弱点を持っています。 分散環境において高い性能を発揮するNoSQLデータベースの世界では、一体どのような考え方でデータベースを設

    NoSQLデータベースを使い始める前に
  • yuiとmixi Graph APIを使うための基礎知識(1/3) ─ @IT

    連載ではAdobe AIR/Flexを使った開発経験はあるが、フレームワークを使用したことがない方のために「yui-frameworks」とは何かを説明し、「mixi Graph API」を利用したサンプルAdobe AIRアプリ「mixiボイスクライアント」を作成して、ソースコードを読みながらyui-frameworksの有用性を解説していきます。 初回は、yui-frameworksの概要とセットアップ、mixi Graph APIについて説明します Adobe AIRを使用することでWindowsMacなどのOSを気にすることなくデスクトップアプリケーションを作成できます。またソースコードは、ほぼそのままFlexのWebアプリケーションを作るときにも流用できます。さらに将来的には、今回のソースコードが、すべてそのまま使えるとは限りませんが、「AIR for Android」機能を