タグ

tipsとjavaに関するindicationのブックマーク (7)

  • 作って理解するDIコンテナ - きしだのHatena

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

    作って理解するDIコンテナ - きしだのHatena
    indication
    indication 2016/04/07
    interface作らなくて良いんだ
  • 新人研修でドヤ顔で披露したらウケたEclipseのショートカット集 - Qiita

    最近新人研修(プログラミング未経験者・大学で専攻など、ごちゃまぜ)に関わることがありました。 適当なタイミングでEclipseのショートカットキーを教えていたのですが、実演してあげるといつきがよかったです。 ウケがいい≒新人から需要があるといえそうですし 教えるほうも教わるほうもモチベーションを保ちやすいです。 その点で、ウケるかどうかは大切な視点のひとつだと思います。 なので、ウケのよさランキングの形式で、ショートカットを紹介したいと思います。 環境は、WindowsでPleiadesのやつ(http://mergedoc.sourceforge.jp/ )を使って、Javaを教えていました。 第20位 ctrl + alt + k スネークケースとキャメルケースの切り替え 変数名やメソッド名を選択した状態でctrl + alt + k 教えていたのはJavaなのですが、C言語のように

    新人研修でドヤ顔で披露したらウケたEclipseのショートカット集 - Qiita
    indication
    indication 2014/10/09
    intellij(android studio)を期待
  • Java弱参照メモ(Hishidama's Java Weak reference Memo)

    Java弱参照クラス 通常のインスタンスは、どこかの変数が保持(参照)していれば、GCの対象にならない。 しかし弱参照にして保持すると、他の通常の参照が全て無くなれば、GCの対象になる。 (弱参照という用語を使う場合は、通常の参照は「強参照」と呼ぶ。強参照と弱参照の間に当たるソフト参照、弱参照より下のファントム参照というのもあるらしい) WeakHashMap WeakHashMapは、キーを弱参照で保持するHashMap。 このマップのキーに当たるオブジェクトの(他からの)強参照が全て無くなると、このマップ内からそのキー(と値)が削除される。 例: Map<Integer, String> map = new WeakHashMap<Integer, String>(); // キーを強参照で保持しつつ、マップに値をセット Integer[] force = new Integer[10

    indication
    indication 2014/08/26
    WeakReferenceに関するサンプル等。これもキャッシュの実装に使えそう。
  • Java で、ランダムな文字列を生成する方法 - 自分の仕事を憎むには人生は余りにも短い

    ちょっと学んだので整理。 まずJavaにはランダムを提供するクラスとして java.util.Random java.security.SecureRandom の2つがあってRandomクラスは以下のような強度しか持っていない。 Random クラスのインスタンスは、一連の擬似乱数を生成します。クラスでは 48 ビットのシードを使い、このシードは線形合同法で変更されます。 http://sdc.sun.co.jp/java/docs/j2se/1.4/ja/docs/ja/api/java/util/Random.html しかも初期化があまりよくなくて初回の乱数がとても偏る。 Random r = new java.util.Random(); double x, min = 1, max = 0; for (int i = 0; i < 1024; i++) { r.setSeed(

    Java で、ランダムな文字列を生成する方法 - 自分の仕事を憎むには人生は余りにも短い
  • Javaのジェネリクスで,T.class や new T() ができず悩んだ話 (型パラメータのインスタンス化に関し、フレームワーク設計からケーススタディ) - 主に言語とシステム開発に関して

    Javaのジェネリクスで,型パラメータ T のインスタンスが欲しくなったことはあるだろうか? 昨今のオブジェクト指向プログラミングにおいて,ジェネリクスは必須の基文法だ。 扱う対象のクラスが抽象化されて汎用的になりつつ,なおかつ型安全性が確保される。 そのおかげで,処理の重複や分岐をコーディングする必要が無くなり,コード量が驚異的に削減される。 そういう基的な原則を踏まえると, 「型パラメータのインスタンスが欲しい」 というシチュエーションは,Javaのジェネリクスの来の導入目的に真っ向から逆らう。 なぜなら,ジェネリクスは型を抽象化して透過的に扱えるようにするための機構なのだから, せっかく抽象化した物をわざわざ具体化してどうするというお怒りを生む事になるのだ。 頑張って詳細なクラス情報を「T」でパラメータ化して具体性を隠ぺいしたにも関らず, その T に対して .class で具

    Javaのジェネリクスで,T.class や new T() ができず悩んだ話 (型パラメータのインスタンス化に関し、フレームワーク設計からケーススタディ) - 主に言語とシステム開発に関して
    indication
    indication 2013/02/01
    特性とその歴史、設計上の必要性
  • Javaプログラマに知っておいて欲しい「どうでもいいと思われがちな」xこのこと - 続・年中Sage進行

    Javaプログラマが知るべきxこのこと - @katzchang.contexts この筆者は同僚のクソファッキンなJavaコードを読んでうんざりすることがきっと日常なんだろうな。 上記記事はJavaでご飯をべている人には是非読んで欲しい良記事。 提言のほとんどはJavaに限らずC++/C#などのJavaに近いオブジェクト指向言語を扱う上でもとても有用な内容である。 Javaの初心者であっても、上記の内容を実践するだけでだいぶレベルが上がるはず。 この記事を読んで、先日珍しく複数人に同じ課題でコードを書いてもらった上で、お互いにコードをレビューするという仕事(研修というほうが近いかもしれない)があったのを思い出した。 せっかくなので複数人に目立った指摘事項をいくつか公開してみる。 上記の記事に比べれば細かくどうでもいいと思われがちな事項ではあるが、コードを書く上ではこういう方面

  • Javaプログラマが知るべき9のこと - @katzchang.contexts

    はじめに ソースコードは設計であり、コードの記述は品質に直結するのは言うまでもない。ちなみに、プログラマにとって特に重要なのは保守性だ。コードは書いた直後から保守対象となるからだ。コードは要求文書の範囲で動けばいいと思っている人がいれば今すぐ、ソースコードをコピペして100klに増えるプラグインがいつの間にかインストールされる呪いをかけてあげよう。幸い、ここを読んでいる人にはそんな人はいないだろうと思うけれども。 ということで、コードの品質を下げる要因、すなわちシステム全体の品質を下げる要因となり、かつ使われやすいアンチパターンを挙げ、対策を検討していくことにする。対象は以下: 出力パラメータ 処理状態返却 意味のある配列 無意味な初期化 多すぎるtry-catch 暗黙の順序 コンパイラ警告の無視 過剰なコメント e.printStackTrace() 出力パラメータ メソッドの引数にオ

    Javaプログラマが知るべき9のこと - @katzchang.contexts
  • 1