タグ

javaに関するnaokun776のブックマーク (14)

  • Java 8とScala ‐アプローチの違いと相互イノベーション | POSTD

    ScalaJava 8に関する プレゼンテーション が、他の似た内容のものよりも多くリツイートされ、大変うれしく思います。だから、こうして皆さんにブログでも書いてお伝えすることにしました。ScalaJavaとの違いと、それぞれの重要性についてお話しします。両者は相互にイノベーションしています。言語間でお互いに取り入れています。では、Javaが使える場合であっても、Scalaを学ぶ必要があるのでしょうか? もちろんです。より多くの言語を知れば知るほど、あなたはさらにプロフェッショナルになっていきます。 もし、ScalaエンジニアScalaJavaとの基的な違いについて尋ねたとしても、おそらくその人はラムダ関数とトレイトに関する違いを全て言うことはないでしょう。代わりに次のような例を出すはずです。 public class Person { private String firstN

    Java 8とScala ‐アプローチの違いと相互イノベーション | POSTD
  • 例えば、Strutsを避ける

    はじめに 筆者は10年以上ウェブアプリケーション開発を主な業務とするJavaプログラマであったにも関わらず、Strutsについてはこれまでずっとわず嫌いでした。初期のStrutsは「XMLだらけで効率が悪そう」というイメージが強かったためです。最近はRuby on Rails等の影響を受けCoC(convention over configuration)を採り入れ、XML地獄もだいぶ解消したようです。 StrutsはJavaアプリケーションらしくない種類(任意のコード実行等)の脆弱性を連発することでも知られており、最近は我々の提供するSaaS型WAFサービス、Scutum(スキュータム)のお客様からも頻繁にStrutsについての問い合わせを受けるようになりました。また、去年見つかった任意のコード実行の脆弱性では、脆弱性の公表後すぐにPoCが出回り実際に攻撃が発生するなど、悪い意味で注目

    例えば、Strutsを避ける
  • Javaのモックアップフレームワーク「mockito」でリクエスト/セッションを再現する

    しかし、開発推進セクションとしてリーダーを中心に「基的には必須ですが、相談には乗ります」と伝えてきました。もちろん、こちらとしても妥協することはありますが、基は書いてもらうように言い続けたことは良かったと思います。今ではテストケースは2,000ケース以上となり、毎日jenkinsからもallTestの結果が送られてくるようになったのですから。そんなやりとりをしていく中で、こんなFAQも生まれました。 Q:巨大なメソッドで1行だけ修正したのですが、そのメソッド内をすべてテストしないといけないの? A:基はテストしてください。 ただしトラブル対応など、どうしてもすぐにリリースしないといけない場合はその限りではありません。 結果的にこのようなFAQは、開発メンバーにJUnitの導入を受け入れてもらうために必要なことだったと思います。やはり、開発スピードを重視するチームにとって、やることが多

    Javaのモックアップフレームワーク「mockito」でリクエスト/セッションを再現する
  • Java 8 Tutorial - winterbe

    Java is still not dead—and people are starting to figure that out.” Welcome to my introduction to Java 8. This tutorial guides you step by step through all new language features. Backed by short and simple code samples you’ll learn how to use default interface methods, lambda expressions, method references and repeatable annotations. At the end of the article you’ll be familiar with the most rece

  • あなたのJavaコードをスッキリさせる、地味に便利な新API 10選(前編) - Taste of Tech Topics

    こんにちは! アキバです。 ...T3ブログは初登場かもしれません。ハジメマシテ。 以後お見知りおきを。 いよいよ、2014年3月、Java8が正式公開されますね。 なんと言っても、Java8の注目機能はラムダ式ですので、ラムダ式や型推論に関する記事は多いです。 世の中で「Java8」と検索すると、皆さんいろいろと記事を書かれているので、おおよその事はこれで分かっちゃうような気がします。 が、 実は地味に便利なAPIが追加されていたりすることを最近知りました。 これはあまり触れられていないぞ、と。 というわけで、このエントリでは、あまり日語で情報の無い、しかし地味に便利なAPIに実際に触れてみます。 大事なところなので2回強調して書いてみました。 今回は、前編として4つ紹介します。 ※APIの紹介と言いつつ、コードにはラムダ式を使ったコードが普通に出てるので、ご了承ください。 (むしろ、

    あなたのJavaコードをスッキリさせる、地味に便利な新API 10選(前編) - Taste of Tech Topics
  • 大刷新リリース Java 8の新機能

    2014年3月18日(米国時間)、ラムダを筆頭に数多くの新機能が含まれるJava 8がいよいよリリースされる。 ここ数年、JavaOracleのSun買収による混乱、当初Java 7で実装されるはずだった多くの機能の先送り、さらにはJava 8のリリースの遅延など様々な要因によって強い停滞感があり、それが関数型言語の機能を取り入れたScalaなどJavaの代替となるJVM言語の台頭にも繋がった。 そうしたJavaプログラマの溜まりに溜まったモヤモヤを払拭するアップデートとして期待されているのが今回のJava 8だ。前述の通りラムダの導入による新たな構文からStream APIやTime APIといったライブラリの追加まで、非常に多くの新機能を含んでいる。 稿ではそのJava 8の主要な新機能についてサンプルコードを交えて紹介していく。Java 8の新機能を押さえるための参考になれば幸い

    大刷新リリース Java 8の新機能
  • Amazon EC2のOpenJDKのアップデート

    AWSのフォーラムから。 Java 7 SDK on Amazon Linux AMI 「Amazonのyumリポジトリに、Java 7を入れてほしいです」からの「入れました!」というやりとりを見てアップデートしてみました。 Amazon Linux AMI 2012.09で追加 Amazon LinuxのAMIは半年に一回更新されていて、現在の最新バージョンは2013年3月のリリースです。 その一つ前のAMIでJava7に対応したそうです。ただ、yumリポジトリにJava 7が入っているというだけで、2013.03のAMIでも、デフォルトでインストールされているのはJava 6です。 $ java -version java version "1.6.0_24" OpenJDK Runtime Environment (IcedTea6 1.11.11) (amazon-61.1.11.

    Amazon EC2のOpenJDKのアップデート
  • JUnitのカスタムアサーションを簡単に実装できるcmtest | DevelopersIO

    渡辺です。 先日、「JUnitのオブジェクト等価比較を怠けたい!」というスライドが公開されました。「オブジェクトのカスタムアサーションをどのように実現するか」という問題は、ユニットテストを実践していくとよく発生します。この問題に関して、先日のJJUG CCCでも相談されました。また、簡単に書ける仕組みは共有した方が良いのですよね。そんなわけで、cmtestというライブラリにまとめましたので紹介したいと思います。 Objectクラスのequalsメソッド Javaではオブジェクト同士の比較にはObjectクラスのequalsメソッドを利用することが定石です。これはユニットテストのアサーションでも同様です。テストした結果に作られる実測値と、テストの期待値を比較する時、通常はequalsメソッドを利用します。equalsメソッドを使った比較を行うのであれば、定番のassertThat構文を利用で

    JUnitのカスタムアサーションを簡単に実装できるcmtest | DevelopersIO
  • Play2.0+Javaでサービスを本番稼働させた話 #play_ja

    http://attacca.fm/ でPlay2.0+Javaを採用した経緯について等について発表しました。 http://attacca.fm/posts/song/v1/0e3cf1c612075954c429dd69bdda6843Read less

    Play2.0+Javaでサービスを本番稼働させた話 #play_ja
  • JUnitの知識を棚卸し #JJUG - 日々常々

    Java Advent Calendar 2011の16日目です。 前:JSFUnitでテストしよう! | Kokuzawaの日記 次:JavaEE使ってウェブアプリケーションつくろうよ - 水まんじゅう 書いてること JUnit の話です。使い始めからちょっとだけ踏み込んだ辺りですかね。ちょっとだけなので普通に使ってる方には不要な内容かと思います。私の今持ってる知識を書き殴ってみた感じになりましたが、微妙な理解と残念な文章力の相乗効果でグダグダになってます。お察しください。 内容は Assertion->カスタムAssertion、Matcher->カスタムMatcher、Rule->カスタムRule です。 Assertion JUnitは assert があってこそです。まず org.junit.Assert にある馴染み深い assert を並べてみます。 assertEquals

    JUnitの知識を棚卸し #JJUG - 日々常々
  • Java 7 ソケット・ダイレクト・プロトコル - 一度書けば、どこでも実行できる、ある場所では驚くほどに

    Spring BootによるAPIバックエンド構築実践ガイド 第2版 何千人もの開発者が、InfoQのミニブック「Practical Guide to Building an API Back End with Spring Boot」から、Spring Bootを使ったREST API構築の基礎を学んだ。このでは、出版時に新しくリリースされたバージョンである Spring Boot 2 を使用している。しかし、Spring Boot3が最近リリースされ、重要な変...

    Java 7 ソケット・ダイレクト・プロトコル - 一度書けば、どこでも実行できる、ある場所では驚くほどに
  • Java8日付時刻APIの使いづらさと凄さ - きしだのHatena

    いままでのJavaでは、日付時刻を扱おうとするとめんどくさい割に非常に低機能でした。 Java8では、新たに日付時刻APIが導入され、めんどくささが増しつつ非常に高機能になりました。 (以降、Java8で導入された日付時刻APIを単に「日付時刻API」と表します) もちろん、慣れてきて、ちょっとしたサポートメソッドを用意してやれば、結構使いやすいのですが、それは「このAPIは使いやすい」という評価にはなりません。 つまり日付時刻APIは、慣れないとぜんぜんわからないし、サポートメソッドがないと面倒なコードが必要ということです。 いろいろあってよくわからない 日付時刻では、時点を扱うInstantや期間を扱うPeriod、時間量をあらわすDurationなど多くのクラス・インタフェースが導入されています。 これらは、IDEの補完でAPIを探りながら機能を推測すれば、それなりにドキュメントなし

    Java8日付時刻APIの使いづらさと凄さ - きしだのHatena
  • Javaの脆弱性を突く新たな攻撃、Java 6のパッチは存在せず

    セキュリティ専門家は「JRE6のパッチは存在しない。アンインストールするか、JRE7 Update 25に更新を」と呼び掛けた。 さまざまな脆弱性の悪用を狙った攻撃ツールの「Neutrino」に、Javaの既知の脆弱性を悪用する機能が加わった。Java 6ではこの脆弱性が修正されていないことから、セキュリティ各社は改めて、最新版のJava 7にアップグレードするよう促している。 セキュリティ企業F-Secureの研究者は8月26日、TwitterJavaの脆弱性(CVE-2013-2463)を突くコンセプト実証コードが公開され、Neutrinoにこの脆弱性を突くコードが実装されたと報告した。「JRE6のパッチは存在しない。アンインストールするか、JRE7 Update 25に更新を」と呼び掛けた。 CVE-2013-2463は、Oracleが6月の定例パッチで修正した脆弱性で、危険度は極

    Javaの脆弱性を突く新たな攻撃、Java 6のパッチは存在せず
  • Javaガベージコレクションのエッセンス

    あるアプリケーションの作業にとって、スループットは最も重要なターゲットです。1つ例を挙げると、長時間実行されるバッチ処理のジョブです。ガベージコレクションが実行されている間、バッチジョブが時々1、2秒止まっても、ジョブ全体がすぐに完了すれば問題ありません。 人間が直接対話するアプリケーションから金融取引システムまで、実質的な他のすべての作業では、システムが1、2秒か、数ミリ秒以上反応しない場合、大変なことになり得ます。金融取引では、しばしば一貫した停止時間と引き換えに、スループットを犠牲にするだけの価値はあります。物理的に利用可能なメモリ量によって制限されるアプリケーションを持ったり、footprintを維持しなければならなかったりすることもあります。そのような場合、停止時間とスループットの面の両方で、パフォーマンスをあきらめなければなりません。 以下のトレードオフは度々起こります。 大部

    Javaガベージコレクションのエッセンス
  • 1