You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert
ScalaJP盛り上げよう企画として、Scalaブログリレーをちょっとやってみることにしました。ルールは簡単で、それぞれが好き勝手にScalaに(少しは)関係する話題を書いて、次に書く人を指名するというものです。指名された人は、7日以内に記事を上げるか、無理な場合、他の人を指名します。 言い出しっぺの法則、というわけで、まず第一弾を私が書いてみます。今回は、Scalaのバグなどを見つけた場合などに、どうやって実際にバグ報告・修正を行うか、という話です。 Scalaは、むかしむかし(というほど昔ではないですが)は、Scalaのお膝元EPFL辺りにある、SVNリポジトリを利用して、開発が進められていました。しかし、最近になって、Scalaの開発は完全にgithubに移行しました。現在、Scalaのリポジトリは、 https://github.com/scala/scala にあり、Scalaの
ドキュメントベースの単体テスト ソフトウェア開発では、テストケースをExcel等で管理し、テストをテストフェイズで実施する方式(以下、ドキュメントベースの単体テスト)が行われてきました。 ドキュメントベースの単体テストでは、テストフェーズが明確に切られています。テストフェーズでは、テスト担当者がテストを実施し、結果をドキュメントに記録します。必要に応じてエビデンスも残すでしょう。もし、テストが失敗したならば、不具合管理票(バグ票)を起票します。そして、不具合の原因を分析し、仕様書やソースコードを修正します。不具合が修正されたならば、もう一度テストを実行し、不具合がなくなるまでこのサイクルを繰り返し、品質を高めていきます。 このようなドキュメントベースの単体テストは、機能や画面を対象としています。そして、ほとんどの場合は品質保証を目的としています。テスト件数や不具合件数、不具合の発生原因や修
よく訓練されたアップル信者、都元です。Gradle(グレードル)つかってますか? 筆者は、プロダクトコードを書くのも好きなのですが、その周辺にある「プロジェクトのライフサイクル管理」の自動化にも非常に興味を持っています。つい半年前くらいまではMaven信者だったのですが、今は宗旨替えをし、Gradleにどっぷりハマっております。 Gradleは、進化系のビルド自動化ツールです。Gradleは、ソフトウェアパッケージもちろん、その他様々な形式のプロジェクト(例えば自動生成された静的Webサイトやドキュメント等)のビルド・テスト・(ライブラリ等の)公開・デプロイ・その他を自動化します。 プロジェクトライフサイクルマネジメントツール? このようなビルド自動化は、古くはGNU Makeやシェルスクリプトが利用されており、その後Javaの世界ではAnt, Mavenと進化を遂げて来ました。Gradl
Vagrant + Chef で Java Web アプリケーション開発環境を作る2013年8月09日とあるプロジェクトのために Vagrant + Chef で Java Web アプリケーションの開発環境を作った。 実現すること git clone -> vagrant up -> gradle war により、ゲスト OS でアプリケーションが動く状態にします。 vagrant up 時に chef-solo によりサーバを構成する gradle war で Tomcat にデプロイする (以後同じ方法で再デプロイ) アプリケーション起動時に FlywayDB でマイグレーションする プロジェクトの構成 git リポジトリの構成は以下の通り。 app は Java の Web アプリケーションプロジェクト。server は Vagrantfile と chef のリポジトリ。 開発を
kzhirataです。蒸し暑い日が続いていますね。 最近、社内で「継続的デリバリー」の読書会をやっています。 AWSなど簡単・迅速にインフラを調達できる時代になり、デプロイメントパイプラインを早い段階で構築することができる環境が整ったんだなぁと改めて実感します。 デプロイメントパイプラインを作るために欠かせないことの1つが、DBの構成管理です。 以前DBの構成管理をしていなかったために、リリース作業自体に時間がかかったり、リリースバグを出したことのある人も多いのではないでしょうか。(私も経験してます...) 今回は、JavaのDBマイグレーションツールを2つ試してみました。 FlywayとLiquibaseです。すでに、ここにFlywayとLiquibaseの比較記事がありますが、自分の感想を書きます。 1. インストール・環境構築について FlywayとLiquibaseもインストールの
Acroquest Technologyは2013年7月11日、Javaシステムの内部動作を可視化・診断するソフトウエア「ENdoSnipe Ver.5.0」をオープンソースとして公開したと発表した。Ver.4まではプロプライエタリな製品だった。ダウンロード・サイトおよびGitHubのページからダウンロードできる。 新版の診断機能には、同社が提供するJavaシステムのトラブルシューティング・サービス「JaTS」での障害解析のノウハウを組み込んだという。アプリケーションの性能を監視する機能も追加した。従来版はEclipseプラグインとしてユーザーインタフェース(UI)を実現していたが、新版はWebベースのUIに変更されている。 診断機能では、メモリリークやハングアップリスク、非効率なデータベース・アクセスなどを検出する。プロファイラやデバッガとは異なり、問題が発生する具体的な理由まで指摘でき
2012年7月1日のうるう秒のあとに、MySQLやJavaなどのCPU使用率が高騰する事象が報告されています。 CPU %user %nice %system %iowait %steal %idle 08時30分01秒 all 0.02 0.00 0.02 0.04 0.00 99.91 08時40分01秒 all 0.02 0.00 0.02 0.08 0.00 99.88 08時50分01秒 all 0.02 0.00 0.02 0.03 0.00 99.92 09時00分01秒 all 0.11 0.00 0.13 0.04 0.00 99.72 09時10分01秒 all 23.02 0.00 29.09 0.11 0.00 47.78 09時20分01秒 all 23.11 0.00 29.08 0.06 0.00 47.75 09時30分01秒 all 22.85 0.00
GoFデザインパターンの一覧表と,活用のためのコメント,および入門者が独学するためのリンク集(サンプルコード付き)。 入門者の独学を支援するために,このページのURLを提示して熟読させ,各パターンを短時間で効率よく学んでもらう。 デザインパターンはプログラマの常識だ。 Java使いかどうかは問わない。 にも関わらず,入門書を買ったまま,途中で挫折する人が多い。 挫折の原因は,パターンの数が23もあって,多いからだろう。 全パターンをすんなり覚えてもらうためには,各パターンごとに 「要するにこういう目的のパターンなんだ。」 「10文字で表現すると,パターンの意味はこうなんだ。」 という要点・本質を,短いコメントで伝えれば助けになるだろう。 こういった学習を通して,Java言語の「設計思想」も併せて感じ取ってゆけるはず。 全パターンの一覧表(要約コメント付き) 全パターンについて,10文字以内
「恋活や婚活を始めてみたいけど、どのマッチングアプリを使えばいいのかわからない…」という人のために、数あるアプリからおすすめの5つを厳選して比較してみました。恋人探しに向いているものから真剣に婚活をするのにぴったりのアプリまで、多岐に渡りますね。 ではこれらのアプリについてさらに掘り下げてみていきましょう。 Pairs(ペアーズ) 会員数 800万人 男女比 6:4 マッチングアプリといえばペアーズ、というほど会員数が多く、国内最大手のアプリです。平均年齢は20代前後と比較的若いですが、その会員数の多さもあり実際は10代から50代まで幅広い年齢層の会員が活動しています。そのため、登録している人の目的も婚活から遊び相手探しまで様々。どんどん会員が増え続けているので、初心者が登録するにはまず間違いのないアプリだと言えるでしょう。 Pairs(ペアーズ)のメリット 1. コミュニティー数がかなり
正しく意味を理解している方にとっては、まったく常識レベルの話であり、何をいまさらと思われる方々も多いかと思いますが、大規模案件のレガシーコードなど、私が仕事で見かけるJavaのコードを読むと、「このコードを書いたSEやPGの方々は、はたして継承の意味を正しく理解していないのではないか」と思われる設計のコードに出会うことが少なからずあります。現在では改良されましたが(Javaプログラミング能力認定試験の問題がかなり改善されていました - 達人プログラマーを目指して)、以前のJavaプログラム認定試験の問題は、そうした不適切な設計がされている典型的な例となっていたのですが、実際、SI業界ではあのような品質のコードのシステムが今でも現役で多数稼動しているというだけでなく、現在でも新たに生み出されているというのは残念ながら紛れもない事実のようなのです。 確かに新人研修で「哺乳類を継承して犬クラスと
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の基調講演は、その生みの親であり現在もプロジェ
JavaFX2.0のWebViewで、Javaからブラウザが操作できるようになって、これをSeleniumが組み込んだらおもしろいことになるだろうなと思ってたのですが、よくよく考えると、SeleniumナシでWebサイトのUIテストが簡単に書けることに気づきました。 ということで、まずはテスト対象のサイトをつくってみます。 最初の画面(first.html)。テキストフィールドがあって、OKボタンを押すと「ほんと?」という確認ダイアログがでて、「OK」を押すと次の画面に行きます。 <!DOCTYPE html> <html> <head> <title>テスト画面</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> </head> <body> <h1>テスト画面</h1> <form id
「Hudson」改め「Jenkins」で始めるCI(継続的インテグレーション)入門:ユカイ、ツーカイ、カイハツ環境!(21)(1/4 ページ) CIツール「Hudson」改め「Jenkins」とは 「Jenkins」とは、CI(継続的インテグレーション)ツールとして有名な「Hudson」の開発者たちにより開発されているCIツールです。Hudsonは商標上などの問題によりJenkinsと名前を変えて継続することが発表されたので、記憶に残っている方も多いと思います。現在では落ち着いて開発されているようです。 本稿では、今話題のJenkinsの使い方を紹介します。本記事の想定読者は、Java開発を行っている方で、「今までCIを導入していなかったけどこれから導入しよう」「Jenkins(Hudson)は使えそうだけど、難しそうだなぁ」と思っている方を対象としています。本稿を読めば、10分程度でJe
はじめに ソースコードは設計であり、コードの記述は品質に直結するのは言うまでもない。ちなみに、プログラマにとって特に重要なのは保守性だ。コードは書いた直後から保守対象となるからだ。コードは要求文書の範囲で動けばいいと思っている人がいれば今すぐ、ソースコードをコピペして100klに増えるプラグインがいつの間にかインストールされる呪いをかけてあげよう。幸い、ここを読んでいる人にはそんな人はいないだろうと思うけれども。 ということで、コードの品質を下げる要因、すなわちシステム全体の品質を下げる要因となり、かつ使われやすいアンチパターンを挙げ、対策を検討していくことにする。対象は以下: 出力パラメータ 処理状態返却 意味のある配列 無意味な初期化 多すぎるtry-catch 暗黙の順序 コンパイラ警告の無視 過剰なコメント e.printStackTrace() 出力パラメータ メソッドの引数にオ
moblはEclipse上で開発し、HTML5/CSS/JavaScript/画像を生成するスマートフォン向けプログラミング言語。 moblはJava製のオープンソース・ソフトウェア。スマートフォンの人気がとても高い。特にWebKitのモバイル版を組み込んでいるものが殆どで(iOS/Android/Palm Pre/Blackberryなど)HTML5の恩恵にあずかりやすいのが良い。 開発環境はEclipse そんなHTML5のパワーを使えば、まるでネイティブアプリのような動作をさせることも可能になっている。そのためのスマートフォン向けライブラリは数多くあれど、moblは一味も二味も違う。完全に専用言語でスマートフォン向けWebアプリケーションを開発できる。 moblはEclipse用のプラグインを配布しており、それをインストールした後プロジェクトを作成する。使うのはmoblという拡張子の
EclipseはオープンソースによるJavaベースの統合開発環境として知られていますが、そのEclipseで新プロジェクト「Orion」が発表されました。 Orion is not a set of Java plug-ins which run in the existing Java IDE. It is browser-based open tool integration platform which is entirely focused on developing for the web, in the web. Tools are written in JavaScript and run in the browser. Orionは、既存のJava IDEに対応したJavaプラグインのセットではありません。ブラウザベースのオープンなツールの統合プラットフォームであり、Web
JUnit 実践講座 - シナリオベースのテストケースの書き方 2002/02/03 作成 石井 勝 目次 はじめに メソッドベースとシナリオベース サンプルプログラム - LoginFormTest クラス scenario メソッド verify メソッド Scenario インナークラス テストに応じてスタイルを変えよう シナリオベースの問題点について 特殊解をあらわにするヘルパーメソッド はじめに ここでは,テストケースの具体的な書き方として,シナリオベースのテストケースを紹介します.プログラミングスタイルガイド で述べたように,実際の開発ではテストコードはかなりの規模になります.どうしたらテストコードを読みやすく,メンテナンス性を上げることができるのでしょうか? …僕には,まだこの問題に対する満足な答えを得ることができません.しかし,シナリオベースでテストケースを書けば,場合によ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く