タグ

Javaに関するhs_hachiのブックマーク (136)

  • Modern Best Practices for Testing in Java

    Philipp Hauer's Blog Engineering Management, Java Ecosystem, Kotlin, Sociology of Software Development Posted on Sep 9, 2019. Updated on Dec 18, 2022 Maintainable and readable test code is crucial to establish a good test coverage which in turn enables implementing new features and performing refactorings without the fear of breaking something. This post contains many best practices that I collect

    Modern Best Practices for Testing in Java
  • SpringでField InjectionよりConstructor Injectionが推奨される理由 - abcdefg.....

    SpringでField InjectionよりConstructor Injectionが推奨される理由を調べてみたメモです。 (2016/12/30) サンプルコードにfinalをつけるように修正 (2017/03/29) Immutabilityについて追記 --- 家でも会社でもIntelliJを使って開発しているのですが、 Spring Bootで@Autowired(@Inject)を使うと下記のような警告が出るようになりました。 警告内容を見てみると、フィールドインジェクションは推奨されません、とのこと。 「Field injection is not recommended.」 警告の詳細を見てみると下記のように書いてあります。 「Field injection is not recommended. Spring Team recommends: "Always use

    SpringでField InjectionよりConstructor Injectionが推奨される理由 - abcdefg.....
  • FindBugsコミュニティにおける例の件の顛末、そしてSpotBugsとは何か - Kengo's blog

    先週、FindBugsのメーリスに興味深い宣言が流れました。今のFindBugsはメンテ困難であり現体制での継続保守が難しいとするものです。 ただこれをもってFindBugsはおしまいだ、としてしまうのはちょっと違います。コミュニティ自体はまだ活発で、プロジェクトのあるべき姿について話し合っています。私はコミッタでもなんでもないのですが、1週間経ったこともあり日語で簡単に経緯を紹介したいと思います。 出典明示のため細かくリンクを張りますが、リンク先を見ずともエントリだけで理解できるよう努めます。 現体制最大の問題はプロジェクトリーダーの不在 1年以上前から、プロジェクトリーダーのBill Pugh氏はコミュニティ開発者からの連絡に返信しなくなりました。メールもそうですがGitHubTwitterでのmentionにも返信しません。私もこの5月にTwitterで連絡を取ろうとしましたが

    FindBugsコミュニティにおける例の件の顛末、そしてSpotBugsとは何か - Kengo's blog
    hs_hachi
    hs_hachi 2016/11/15
    ほー
  • 動的配列について – JavaのLinkedListとArrayListを分析・比較する | POSTD

    私はSkienaの『Algorithm Design Manual』 (訳注:『アルゴリズム設計マニュアル』 上巻 ・ 下巻 ) を読んでいました。ところでこのは素晴らしいで、連結リストと配列についてこんな比較をしていました(chapter 3.1.3)。 連結リストが静的配列に勝る相対的な長所には以下のものがあります。: • メモリが当にいっぱいにならない限り、連結構造にオーバーフローが生じない。 • 連続的な(配列)リストに比べて、挿入と削除が単純である。 • 大きなレコードを扱う場合、要素自体を動かすよりもポインタを動かすほうが容易かつ高速である。 一方で、配列の相対的な長所には以下のものがあります。 • 連結構造には、ポインタのフィールドを格納するための余計な領域が必要となる。 • 連結リストでは、要素に対する効率的なランダムアクセスができない。 • 配列は、ランダムなポイン

    動的配列について – JavaのLinkedListとArrayListを分析・比較する | POSTD
  • 日本Javaユーザーグループ

    皆様お待たせいたしました! 6月16日(日)にJJUG CCC 2024 Springを開催します! JJUG CCCは、例年2回、春と秋に開催する日最大のJavaコミュニティイベントです。 Java関連の技術や事例に関する良質なセッションが行われ、また異なる分野で活躍するJava技術者が一堂に会する場ともなっています。 今回もオフラインでの開催です。 みんなでワイワイJavaについて語り合いませんか? コロナ後から会場が変わっております。 以前はベルサール新宿での開催でしたが、 野村コンファレンスプラザ新宿での開催となっているのにはご注意ください。 以下からお申し込みください。 https://jjug.doorkeeper.jp/events/172019 皆様と当日会えることを楽しみにしております! また、当日一緒に運営をしてくださるボランティアスタッフも募集しております。 興味の

    日本Javaユーザーグループ
  • Java API 訴訟の件で私が Google よりも Oracle の肩を持つ理由 - Qiita

    はじめに Java API を巡って OracleGoogle の訴訟が続いています。世間の論調を見ていると、「OracleGoogle」の構図を「プロプライエタリ対オープンソース」と位置付け、あたかも Google が正義の味方であるかのように扱っていますが、この件に関しては、私は逆の立場です。むしろ、「Google けしからん」と思っています。私がそう思う理由をここに書きます。 Java の互換性 Android が登場するずっと前から、業界の皆は、JCP (Java Community Process) に則り、協議の上 Java API の仕様を決めてきました。仕様を策定する際には、RI (Reference Implementation) (リファレンス実装) と TCK (Technology Compatibility Kit) (テスト群) も同時に用意します。

    Java API 訴訟の件で私が Google よりも Oracle の肩を持つ理由 - Qiita
  • JJUG CCC 2016 Spring ( #jjug_ccc ) - セッション資料の一覧 - 地平線に行く

    JJUG CCC 2016 Spring に行ってきました! 今回は、改善系のネタを中心に聞いていました。 この手の話はやっぱり、勉強会っぽくて、そして自分の世界が広がる(そんなやり方があったのか!っておどろく)のでとても好きです。 最近、自分の仕事プロジェクトをよくしていこうぜ!というのでとても参考になりました。 ありがとうございました! 次回は Java 9 の話がもっと出てくるのかな…? あと、今回はスマートフォン用タイムテーブルを勝手に作ってみました。 懇親会や Twitter で聞いた限り、たくさんの方に使っていただけたみたいでうれしいです。 また、次も作ると思うのでそのときはまたご利用ください! JJUG CCC 2016 Spring - Timetable (非公式) さて、毎回のことですが*1、残念ながら時間がかぶってしまって参加できなかったセッションもあったので、あと

    JJUG CCC 2016 Spring ( #jjug_ccc ) - セッション資料の一覧 - 地平線に行く
  • Java サーバ利用状況アンケート結果の公開

    2016年4月25日 at 12:35 午後 皆様、先日は Java のサーバの利用状況に関するアンケートにお答えいただきまして誠にありがとうございました。私個人からのアンケートについて「1 週間で 669 名」という、非常に多くの皆様からご回答いただきまして心より感謝しております。 日は、その結果をここに公開したいと思います。結果について私は一切手を加えておりませんので、その点は信用ください。 ※ 投票時に途中結果をご覧いただけないよう設定したのは、数が少ない場合に不意な団体票が入るのを避けるためでした、その点をどうぞご理解ください。 アンケートはとても興味深い結果を得ることができました。 この結果に対し、皆様それぞれがそれぞれの目線でいろいろな見方をすることができるかと思います。 まず、Tomcat は今なお圧倒的に利用者が多いようです。この結果を見る限りビジネス視点で Tom

    Java サーバ利用状況アンケート結果の公開
    hs_hachi
    hs_hachi 2016/04/25
    思ってたよりjetty少ないなー
  • 作って理解するDIコンテナ - きしだのHatena

    DIコンテナ使ってるけど、アノテーションってなんなの!って聞かれて、作ってみたらわかるよと答えてみたので、自分でも作ってみました。 よくわかった。 「DIコンテナ使うと何がいいの?」ということも、作ってみるとわかります。あと「DIって何がいいの?」に関しては、「DIはちょっとコードを書くのが楽になるだけで、それだけあっても仕方ない、大事なのはコンテナ」と答えるようにしてますが、コード比率からもそれがよくわかります。 続編としてWebフレームワークも作っているので参考まで。 作って理解するWebフレームワーク - きしだのHatena まずはコンテナを作る とりあえず1ソースの状態で。 こんな感じで、管理する型を登録できるようにします。 static Map<String, Class> types = new HashMap<>(); static void register(String

    作って理解するDIコンテナ - きしだのHatena
  • Web Application Server を動かす時の Java8 起動オプションのメモ - その手の平は尻もつかめるさ

    一般的な Web Application Server *1 を Java8 で動かすにあたって,最近有効にしている起動オプションについてメモ. 何か間違っていたり,あるいは「こっちの方が良い」みたいなのがあれば教えて下さい. -server server mode で起動させる (指定しないと client mode になる可能性がある,マシンスペックによってスイッチする?). -Djava.net.preferIPv4Stack=true If IPv6 is available on the operating system the underlying native socket will be an IPv6 socket. This allows Java(tm) applications to connect too, and accept connections from,

    Web Application Server を動かす時の Java8 起動オプションのメモ - その手の平は尻もつかめるさ
  • Google Code Archive - Long-term storage for Google Code Project Hosting.

  • mysql Connector/J の設定で効きそうなやつ - その手の平は尻もつかめるさ

    mysql Connector/J を使う時に色々効きそう (あるいは効かなそう) な設定項目を調べたのでまとめておくこととします.なお,対象としている mysql のバージョンは5.6 (以降),Connector/J のバージョンは5.1.34 (以降) です. Connector/J は設定できる項目が多くて迷ってしまうんですが,道標となる資料も幾つかあるのでそれについてもまとめておきます. 何か追記すべき事項があったら適宜追加してゆきたいと思っています.「これも入れたほうが良いのでは無いか」というようなご指摘ありましたらご一報ください. 設定項目 characterEncoding おなじみの文字コード.要設定. ちなみに以下の様なテクがある. Driver doesn't support utf8mb4 for servers 5.5.2 and newer. The drive

    mysql Connector/J の設定で効きそうなやつ - その手の平は尻もつかめるさ
  • https://bugs.java.com/

  • Java: ステータスをあらわす Enum に isXxx() メソッドを持つのが好き - Mitsuyuki.Shiiba

    こんなEnum public enum InsideHead { JOY, SADNESS, FEAR } こんなクラスで使うとして。 @Accessors(fluent = true) @Getter @ToString @EqualsAndHashCode public class Bufferings { private InsideHead insideHead = InsideHead.JOY; public void eatChocolate() { this.setInsideHead(InsideHead.JOY); } public void workOvertime() { this.setInsideHead(InsideHead.SADNESS); } public void seeSourceCodeWithNoTest() { this.setInsideHea

    Java: ステータスをあらわす Enum に isXxx() メソッドを持つのが好き - Mitsuyuki.Shiiba
    hs_hachi
    hs_hachi 2015/12/07
    これは時々使うなー
  • G1 GC おさらいと #jjug_ccc で発表した話 - unnamed

    この記事は Java Advent Calendar 2015 の一日目の記事です。二年連続でトップバッターだ! 先日の JJUG CCC 2015 Fall で G1 GC について話してきました。 去年の CMS GC と同じく結構遅めの時間帯&裏番組に伝説の灰色ページ管理人・ひしだま伝道師が発表するなどの豪華な時間帯にも関わらず、165人規模の部屋がいっぱいに埋まるぐらいの盛況でした。聴講頂いた皆様ありがとうございました! スライドは以下に公開しました。G1 GC の挙動から GC ログの読み方、どういうケースが厄介なのかを紹介しているので是非ご覧ください! Garbage First Garbage Collection (G1 GC) #jjug_ccc #ccc_cd6 from Yuji Kubota アフターフォロー、またはちょっとした補足 極力、後から参照可能なように資料

    G1 GC おさらいと #jjug_ccc で発表した話 - unnamed
  • GitHub - akullpp/awesome-java: A curated list of awesome frameworks, libraries and software for the Java programming language.

    Awesome Java A curated list of awesome Java frameworks, libraries and software. Contents Projects Bean Mapping Build Bytecode Manipulation Caching CLI Cluster Management Code Analysis Code Coverage Code Generators Compiler-compiler Computer Vision Configuration Constraint Satisfaction Problem Solver CSV Data Structures Database Date and Time Dependency Injection Development Distributed Application

    GitHub - akullpp/awesome-java: A curated list of awesome frameworks, libraries and software for the Java programming language.
  • InfoQ の記事に対する私のコメントのまとめ

    2015年9月16日 at 11:48 午前 「オラクルがJavaエヴァンジェリストを追放」 という記事が、2015年9月14日 InfoQ 様から掲載されました。 ( 9月16日 該当記事の日語翻訳の指摘箇所は翻訳者様によって修正されました。) 当初、Twitter や FaceBook で自分の見解を書いていましたが、私のツイートがリツィートなどで拡散されるに従い、記事の全てがウソというような内容に変わっていたりしました。それはそれで違いますので、該当記事に対する私のコメントを改めて下記にまとめます。下記意見はすでに InforQ の該当ページでも伝えています。 また、ご理解いただきたいのは、記事の内容は、InfoQ 様、執筆者様、翻訳者様を叩くとか否定したいわけでは決してなく、事実は事実として正しく伝えていただき、事実とは異なる箇所は正しく修正していただきたいと思い記載しました。

    InfoQ の記事に対する私のコメントのまとめ
  • オラクルがJavaエヴァンジェリストを削減

    APIデザインレビューは死んだ。APIデザインレビュー万歳! To design APIs at scale, it takes deliberate effort to create consistency and make several discrete APIs feel like a platform. This requires an efficient and useful API design review process.

    オラクルがJavaエヴァンジェリストを削減
    hs_hachi
    hs_hachi 2015/09/15
    OracleはJavaを手放したいのかねぇ...コスト見合わなくなってきたのかな
  • Spring in Summer ~ 夏なのにSpring で発表してきました #jsug_sis - yukungのブログ

    こういう大きいイベントでセッション発表するのは初めてだったのでかなり緊張しましたが、無事発表を終えることができました。やればできるもんですねw*1 Report to Spring Developer from CyberAgent from Yusuke Ikeda www.slideshare.net 時間が多少オーバーしてしまい、質疑応答の時間が取れなかったのは申し訳なかったです。ただセッション終了後には数人の方に質問しにきていただいたりもして、多少なりとも興味持って聞いていただけたのかなぁと勝手ながら思っています。 発表の機会を下さった @making さんはじめ、 JSUG スタッフの方々、その他関係者の方々、当にありがとうございました。 補遺 私と同僚の山田の2人でのセッションで、前半が私のレガシーシステムへの導入事例、後半が山田の Spring Boot を使った運用 Ti

    Spring in Summer ~ 夏なのにSpring で発表してきました #jsug_sis - yukungのブログ
    hs_hachi
    hs_hachi 2015/09/01
    あれspring bootで作ってたのか
  • JavaでのDBのテストデータ作成はDbSetupが楽 - Qiita

    Javaでのデータベースのテストデータ作成にはDBUnitがよく使われますが、自分はDbSetupをオススメします。 DbSetup なぜDBUnitがイマイチなのか 自分も最初はDBUnitを使ってたのですが、以下の理由からしっくり来ませんでした。 DBを使ったテストでは少量のデータを使うことが多い ホワイトボックステストで大量のデータを使うことはほとんどなく、単一または複数のテーブルに対して、少量のデータを用意するケースがほとんどです。なので、テストごとにファイル(XML or Excel)を用意するのは面倒です。 テストコードとデータが分離している テストデータを外部ファイルに保存するため、テストコードとテストデータが分離してしまっています。そのため、何をテストしているのかが分かり辛いです。 そこでDbSetup そこで見つけたのがDbSetupです。DbSetupはテストデータをJ

    JavaでのDBのテストデータ作成はDbSetupが楽 - Qiita