タグ

javaに関するokinakaのブックマーク (527)

  • 2014ブレイク確実!JavaベースのポータブルなWebフレームワーク Dropwizard - yojikのlog

    最近Dropwizardというフレームワークが海外JavaおよびJVMベース言語界隈で流行り始めている感しがします。 Thought Works Technology Reader でも Traialに入ってきています。 http://dropwizard.codahale.com/ このフレームワークはYammerのバックエンドWebサービスを提供するために作られたフレームワークで、アプリケーション開発者からみると、 JaxRSベースのREST提供フレームワーク ORM Jettyベースの組み込みWebサーバ Metricsを収集するためのライブラリ、管理ツール等 といった機能があります。 ここらへんまでは普通のフレームワークと基的には違いが無く、むしろWebサービスに特化しているため物足りなく感じるのですが、特筆すべきは、このフレームワークが推奨するデプロイ・運用方法にあります。

    2014ブレイク確実!JavaベースのポータブルなWebフレームワーク Dropwizard - yojikのlog
    okinaka
    okinaka 2013/12/16
  • Apache Camel入門(その1 OSSをつなぐOSS) - Taste of Tech Topics

    こんにちは、ツカノ(@snuffkin)です。 twitterのタイムラインを見ていると、新しいOSSが登場した、という情報が頻繁に流れてきます。何年か前と比べると「仕事で有用なOSS」の増加速度が早まっているように思います。その分、話題だけれどあまり知らないOSSもたくさんあると感じています。今回は、OSS時代の今にフィットしたOSSの紹介です。 様々なOSSを組み合わせて開発する時代 ここ数年、システム開発をする際に複数のOSSを組合せて利用することが一般的になってきています。このブログの最近1年くらいの記事を振り返ってみても、次のようなOSSについて取り上げています。 アプリケーション基盤となるフレークワークではSpringやVert.x ビッグデータ関連ではHadoopやStorm 通信関連ではNettyやZeroMQ NoSQLのミドルウェアではInfinispan 例えば、大量

    Apache Camel入門(その1 OSSをつなぐOSS) - Taste of Tech Topics
  • これからの運用自動化にJobSchedulerを活用する~基礎編2

    これからの運用自動化にJobSchedulerを活用する~基礎編2:OSS「JobScheduler」で実現するこれからの運用自動化(2)(1/2 ページ) 2回は引き続きJobSchedulerの機能について解説した上で、基機能を用いて、複数サーバにまたがって順序性を持たせたジョブを制御する方法を紹介します。 連載第1回「JobSchedulerの機能と設定~基礎編」では、JobSchedulerの特徴やアーキテクチャ、活用場面が多いであろう機能について解説しました。第2回は引き続きJobSchedulerの機能について解説した上で、基機能を用いた実際の活用例について紹介します。 運用自動化を実現するJobSchedulerの機能 APIを使ったJobSchedulerの操作 APIには、ジョブ内からJobSchedulerを操作するために用意されている「内部API」と外部連携のため

    これからの運用自動化にJobSchedulerを活用する~基礎編2
    okinaka
    okinaka 2013/11/18
  • 今どきのJava Webフレームワークってどうなってるの? - きしだのHatena

    昨日のSeasar2のエントリについたコメントなどで、「とはいえ代わりに何つかうの?」みたいな話が出てたので、とりあえずJava EEのWebフレームワークについて簡単にまとめてみます。 Java SE 8+Java EE 7+lombokで書いていますが、基的なところはJava SE 7+Java EE 6でも大丈夫です。 なので、今どきとは書いてますが、基的には2009年12月のJava EE 6ということで、実はすでに4年近くたってます。 何も考えてない なんも難しいこと考えないなら、やっぱJSPが楽ですよね。 なんでも書けちゃう。 <%@page contentType="text/html" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content=

    今どきのJava Webフレームワークってどうなってるの? - きしだのHatena
    okinaka
    okinaka 2013/11/12
  • JUnit+Mockitoを使ったWebアプリケーションの単体テスト

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

    JUnit+Mockitoを使ったWebアプリケーションの単体テスト
    okinaka
    okinaka 2013/10/24
  • 軽量なTime-based ID生成器”shakeflake(仮称)”について | SmartNews開発者ブログ

    大平です。今回はさだまさしネタは特に無しです。 先日、サービスのクローラーで使用しているID生成器について置き換えを行いました。非常に地味な話になりますが、記事ではその辺の内幕の話をしたいと思います。  ID生成にまつわる苦悩 弊社ゴクロの提供しているSmartNewsは表向きはニュースアプリですが、裏側の仕組みは検索エンジンに近似しています。ユーザーの方々の興味関心や、アクセス傾向をクエリーとし、その内容に応じた話題のニュースを検索結果として返却する、という風に捉えていただくと、なんとなく私が言わんとしている事を想像していただけるかと思います。 SmartNewsはTwitterのつぶやき情報を用いたトレンド分析をベースとしており、話題になっているニュースを選定するためには、大量のTwitter上のtweet、ならびにその中に含まれているURLに対してクロールを行う必要があります。日々

  • ScalaとLombokを比べた場合のメリットとデメリット - xuwei-k's blog

    最近いくつかlombokが話題になってた lombokで快適Java生活 サイバーエージェント公式エンジニアブログ JavaでIDEのアクセッサ生成よりlombokを使ったほうがいい理由 Java特有の冗長なコードを簡潔に記述する「Lombok」 codezine ので、twitterなどでは何度かつぶやいた私見を、改めてblogにも書いておこうかと思います。Scalaもlombokも好きなので、ある意味「Scala使えばいいじゃん」という単純な意見に対する反論でもあります。 lombok自体のそれぞれの細かい機能の紹介は、先ほど上げたリンク先で既に語られてるのでしません。 lombokがScalaに比べて優れている点 IDEの恩恵 (自分はeclipseである程度やっていましたが)ほぼ素のJavaを書いているときと同じくらいの快適さです。対して、Scalaでは、IDEAだろうがeclip

    ScalaとLombokを比べた場合のメリットとデメリット - xuwei-k's blog
    okinaka
    okinaka 2013/08/26
  • マルチコア時代のプログラマは関数脳になろう〜Scala・Clojure〜 - Tech-Sketch

    前回 の記事では、関数型プログラミングの概念とJava8による実装例を示しました。しかしJava8のリリースは来年まで延期されてしまったため、今すぐ試してみるには少しハードルが高いかもしれません。 そこで今回は、Java7のJVM上で動作する代表的な関数型プログラミング言語、 Scala と Clojure を紹介します。 Scalaとは では、 Scala から紹介しましょう。 ScalaはJVM上で動作するプログラミング言語で、関数型の特徴とオブジェクト指向の特徴を合わせ持った、欲張りな言語です。 JVM上で動作するため、既存の膨大なJavaライブラリをそのまま流用でき、JVMのパフォーマンスチューニングノウハウを最大限活用することができます。またJavaよりも豊富な記述形式を持ちながらもJavaオブジェクトをそのまま扱え、強力な型推論を持った静的型付け言語でもあるため、定型的で冗

  • JavaのDBマイグレーションツールを試してみた

    kzhirataです。蒸し暑い日が続いていますね。 最近、社内で「継続的デリバリー」の読書会をやっています。 AWSなど簡単・迅速にインフラを調達できる時代になり、デプロイメントパイプラインを早い段階で構築することができる環境が整ったんだなぁと改めて実感します。 デプロイメントパイプラインを作るために欠かせないことの1つが、DBの構成管理です。 以前DBの構成管理をしていなかったために、リリース作業自体に時間がかかったり、リリースバグを出したことのある人も多いのではないでしょうか。(私も経験してます...) 今回は、JavaDBマイグレーションツールを2つ試してみました。 FlywayとLiquibaseです。すでに、ここにFlywayとLiquibaseの比較記事がありますが、自分の感想を書きます。 1. インストール・環境構築について FlywayとLiquibaseもインストールの

    JavaのDBマイグレーションツールを試してみた
  • [Java]Unirestで簡単HTTP操作[REST] | DevelopersIO

    Httpライブラリ、Unirest Unirestとは、lightweightなHttpライブラリです。 以前「unicorn」という名前で開発されていたようですが、先日「Unirest」と名前を変えてリリースされたようです。 シンプルなコードでHttp操作やファイルアップロードができ、Javaのみでなく、PHPRuby等でも使用することができます。 非常に簡単に使用することができるので、試してみましょう。 環境構築方法 今回使用した動作環境は以下のとおりです。ビルドにMavenを使用するので、インストールしておきましょう。 OS : MacOS X 10.7.5 Java : 1.7.0_17 Maven : 3.0.3 Unirestをインストールして動かす 1.Mavenプロジェクト作成 公式サイトを見ると、Mavenを使用する方法が書いてあります。 Mavenを使用してサンプルプ

    okinaka
    okinaka 2013/05/09
  • Jenv Portal

    What is jenv? jenv is Java environment manager, and it is a clone of RVM for Java. jenv can manage parallel versions of Java development kits on any Unix based system. It provides a convenient command line interface for installing, switching, removing and listing Candidates. Why jenv? Easy to manage Java version, such as 1.6, 1.7, 1.8 and 1.9 Easy to install Java tools, such as Ant, Maven, Tomcat

    okinaka
    okinaka 2013/05/01
  • AWS: JavaのDNSキャッシュ ( TTL )について - aws memo

    AWSのサービスではDNSを用いて可用性を向上する仕組みを用いている。 各種APIのエンドポイント RDSのエンドポイント ELBのエンドポイント ElastiCacheのエンドポイント CloudSearchのエンドポイント Redshiftのエンドポイント などなど。AWSが提供するエンドポイントのFQDNを、自分のアプリケーションから参照するように設定したり、一旦DNSでCNAME設定することも多い。 ただし、これらのエンドポイントFQDNで設定されているIPアドレスは、運用中に変更される可能性がある(ノード障害、フェイルオーバー等によるIPアドレス変更、スケーリングによるIPアドレス増減、等)。そのため、アプリケーション側はエンドポイントのIPアドレス変更に追随する必要がある。(追随しないと、古いIPアドレスにアクセス試行しつづけて、結果としてシステム障害になってしまう) ここで問

    AWS: JavaのDNSキャッシュ ( TTL )について - aws memo
    okinaka
    okinaka 2013/04/30
  • JobSchedulerで実行したJobをZabbixで監視する① - Tech-Sketch

    以前、Tech-Sketchで Software-und Organisations-Service GmbH (以降SOS社)のJobSchedulerに関してご紹介しました。(以前の記事については こちら をご参照ください) 実際にJobSchedulerを使ってみたので、2回に分けてJobSchedulerで実行したJobの実行履歴をZabbixで監視する方法をご紹介したいと思います。 今回はJobSchedulerのインストールからJobの登録・APIの使い方をご紹介します。次回の記事でZabbixとJobSchedulerを連携させ、JobSchedulerのWebAPIを使ったJobの実行履歴を監視する方法についてご紹介します。 JobSchedulerのインストール まずはJobSchedulerをインストールします。今回はCentOS6.3(64bit)にインストールする

    okinaka
    okinaka 2013/04/22
  • Tomcat7 でゼロダウンタイムデプロイ - mallowlabsの備忘録

    「Web アプリのバージョンアップ時に Tomcat を再起動してもいいのは小学生までだよねー」 ということで、Tomcat でダウンタイム無しで Web アプリのバージョンアップをする方法についてまとめてみる。 Parallel Deployment Tomcat 7 から Parallel Deployment という機能が追加され、同一 Web アプリの複数バージョンを同時にデプロイができるようになった。 war のファイル名を somewebapp##001.war 等にしておくことで、 - $CATALINA_BASE/ - webapps/ - somewebapp##001.war - somewebapp##002.warのように配備をすると、 http://localhost:8080/somewebapp/ でアクセスした場合に、セッションが継続している場合には古い方(

  • Homepage - Flyway

    Increase reliability of deployments by versioning your database Get Flyway for free Stay updated about Flyway Get all the latest guides, community news, product updates, and resources

    Homepage - Flyway
  • Cucumber-JVMで、同じシナリオを異なるレイヤーでテストする - 現場指向のブログ

    以前のブログでCucumber-JVMのテストを紹介したときは、ドメインクラス(Carクラス)のオブジェクトと直接やりとりする下位のレイヤーのプログラムのテストでしたが、同じシナリオを使って上位のレイヤーのテストも可能です。 例えば、以前のブログで紹介したCarクラスの操作が、RESTのAPIで提供されているとしましょう。まずは、シナリオを再確認します。テストに使用するシナリオは、以前と同じく以下の内容です。 Feature: 車の燃料の補給 運転手は、車を走らせるために、燃料を補給する必要がある。 Scenario: 燃料の補給 Given 車のタンクには、10リットルの燃料が入っている When 運転手は、50リットルの燃料を補給した Then タンクには、60リットルの燃料が入っている次に、Step Definitionsの実装例を以下に示します。 public class CarM

    Cucumber-JVMで、同じシナリオを異なるレイヤーでテストする - 現場指向のブログ
  • オープンソースのジョブ管理システム「SOS JobScheduler」を理解するためのポイント - artisan edge thinking

    ここのところオープンソースのジョブ管理システム「SOS JobScheduler」に関する記事を書いています。 今回は、JobSchedulerを使うにあたって、理解しておいた方が良いことについて説明します。 ※この記事は、私の別ブログ「INOCCU VISION」から、一部を改変の上で転載したものです。JobSchedulerの記事は今後、こちらのブログ及びArtisan Edgeの技術情報ページに集約します。 JobSchedulerの基構造 JobSchedulerにはいろいろな機能があるので、それをすべて理解しようというのはなかなか困難です。(私もすべての機能を把握しているわけではありません。) とりあえず最低限のところを知って、JobSchedulerの基的な機能を使おうと思ったら、下図は理解しておきたいところです。 JOEとJOCは、前回の記事(インストール編)で紹介

    okinaka
    okinaka 2013/01/23
  • Spring AMQPの実装と、AMQPを利用したアプリケーションの稼働

    はじめに 前回の記事では、Spring AMQPとRabbitMQを利用した簡単なメッセージ送受信を行いました。今回は一歩進んで主に受信側の実装として必要となるメッセージリスナーを、前回に引き続きSpring AMQPを利用して実装を行います。メッセージリスナーを実装することで、RabbitMQを利用する場合のメリットでもある非同期なシステムの実装が可能です。また、実際にRabbitMQとSpring AMQPを利用したアプリケーションを番環境で稼働させる場合に必要となる、冗長構成におけるポイントも紹介します。 対象読者 RabbitMQを利用したJavaアプリケーションの開発を行いたいと考えている人。 非同期なメッセージリスナを実装する SpringAMQPには非同期にメッセージを処理するため、SimpleMessageListnerContainerというコンポーネントが用意されてい

    Spring AMQPの実装と、AMQPを利用したアプリケーションの稼働
  • Cucumber-JVMのHelloWorld - 現場指向のブログ

    以前のブログでCucumber-JVMについて触れました。Cucumber-JVMは面白いプロダクトだし、使い方が非常に簡単なので、今回はCucumber-JVMのHelloWorldをブログに書きます。Cucumber-JVMの概要については以前のブログをご参照下さい。では、HelloWorldの手順を書いていきます。 Mavenでライブラリを取得 pom.xmlに依存ライブラリを追加します。タグに以下を記述すればよいです。 <dependency> <groupId>info.cukes</groupId> <artifactId>cucumber-picocontainer</artifactId> <version>1.1.1</version> <scope>test</scope> </dependency> <dependency> <groupId>info.cukes</

    Cucumber-JVMのHelloWorld - 現場指向のブログ
    okinaka
    okinaka 2013/01/15
  • OpenAMのインストール

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

    OpenAMのインストール
    okinaka
    okinaka 2012/12/03