タグ

javaに関するsawatのブックマーク (123)

  • 例外設計における大罪 - 契約

    導入から 10 年、PHP の trait は滅びるべきなのか その適切な使いどころと弱点、将来について

    例外設計における大罪 - 契約
    sawat
    sawat 2012/11/02
    過剰防衛のところ、呼び出し側が契約を満たしてない場合はどうすればいいの? Assertion?
  • Javaのクラスの半分以上は、引数なしのコンストラクタを持たない - 地平線に行く

    よく使うJavaのクラスは、たいてい引数なしコンストラクタを持っています。 List<String> list = new ArrayList<String>(); Calendar calendar = new Calendar(); でも、引数なしコンストラクタを持たないクラス*1も結構あります。 InputStream inputStream = new FileInputStream(file); TrayIcon tryaIcon = new TrayIcon(image); 全体的に見てみると、引数なしのコンストラクタを持つクラスと持たないクラス、どちらが多いんでしょうか。 調査結果 以下の条件で、調べてみました。 java, javaxパッケージ public クラス 廃止されたクラス(Deprecated)、抽象(Abstract)クラス、アノテーション、例外(Throwa

    Javaのクラスの半分以上は、引数なしのコンストラクタを持たない - 地平線に行く
    sawat
    sawat 2012/05/10
    自分もJavaで書くときは引数なしコンストラクタはあまり用意しないなぁ。可能なら不変クラスにするし。
  • 符号なし整数の演算API、JDK8に導入

    開発段階にあるJDK8に「符号なし整数」に関する演算APIが追加されたことが「Unsigned Integer Arithmetic API now in JDK 8」において発表された。追加されたのは符号なし整数の比較演算、符号なし整数の除算、符号なし整数の剰余算、符号なし整数と文字列の双方向変換処理など。主にjava.lang.Integerおよびjava.lang.Longにおけるスタティックメソッドとして実装されている。どのような機能が追加されたかはchangeset 4922:71200c517524を見るとわかりやすい。 Javaの整数(byte, short, int, long)は符号付き整数で、符号なし整数として型宣言する機能は仕様としては提供されていない。今回追加された符号なし整数に関する機能はJava仮想マシンレベルでの拡張ではなく、特別に配慮が必要になる除算に関する

    sawat
    sawat 2012/01/24
    除算と剰余算のみ?parseとtoStringは少なくとも必要じゃない?
  • Java SE 7のjava.nio.file.Filesがとても便利な件 - きしだのHatena

    とても便利。 たとえば、あるサイトからHTMLをダウンロードしてファイルに保存する場合。 try(InputStream is = new URL("http://www.google.com/").openStream()){ Files.copy(is, Paths.get("C:\\Users\\kishida\\Downloads\\google.html")); } ファイルの内容を一行ずつ読み込んで処理をする場合。 for(String s : Files.readAllLines(Paths.get("C:\\Install.log"), Charset.defaultCharset())){ System.out.println(s); } まあ、直接文字列でファイルパスを渡せなかったり、デフォルトCharset使う場合でも引数が省略できなくて、まだるっこいコードになってし

    Java SE 7のjava.nio.file.Filesがとても便利な件 - きしだのHatena
  • Javaプログラマであるかを見分ける10の質問-回答編 - やさしいデスマーチ

    想定を超えた反応がありましたので、予定はしていなかった回答編をお送りします。ですが、正確な解答を書いても面白くないので、これをネタに面談をした場合に、自分ならどんなポイントを持って選考するかをまとめてみました。 はじめに このエントリーの質問の意図は「優れたJavaプログラマ」を見つける事ではありません。「最低限のスキルを持った戦力が欲しい」という状況です。したがって、優れた指摘をしてくるのであれば超したことありません。設問について議論が発生するならば、この設問を投げる必要がなかったということです。 Javaを詳しく知っている人からすれば間違いでは?曖昧な質問では?と感じる設問があるのは確かです。しかし、優秀な人をテストしたい訳ではないのです。したがって、正確性とか厳密性については求めません。「だいたいあっている」ならば前提条件である「中堅プログラマの補充」の条件を満たすからです。 中堅プ

    Javaプログラマであるかを見分ける10の質問-回答編 - やさしいデスマーチ
    sawat
    sawat 2011/03/11
    あら?投げっぱなしって僕のこともかな?取り敢えず、Effective Javaの最適化についてのページを読もうぜ
  • カスタムJavadocとJDK 7で新しく導入されたクラス・メソッド - torutkのブログ

    JDK 7で追加されるクラス・メソッドを一覧してみようと思いました。標準APIのソースコードはJDKと一緒にインストールされるので(src.zip)、これを展開し、Javadocコメントの@sinceタグに1.7とあるものを抽出すればいいというのが最初の発想です。 JDK 7のソースコードからJavadocコメントの@sinceタグ部分抜粋 新しく導入されたクラスは、クラスのJavadocに記載される@sinceタグに1.7と書かれています。以下は、JDK 7で新規追加されるクラス javax.swing.JLayer の例です。 package javax.swing; :(中略) /** * {@code JLayer} is a universal decorator for Swing components :(中略) * @since 1.7 :(中略) */ public fi

    カスタムJavadocとJDK 7で新しく導入されたクラス・メソッド - torutkのブログ
    sawat
    sawat 2011/03/05
    僕も、昔に@since 1.5 を抽出した事があるなあ。
  • Javaのチェック例外はクソ仕様 - やさしいデスマーチ

    Java言語のチェック例外は当にGood Partなのか?というエントリーを読んで自分の考え方を簡単にまとめておこうと思う。 まず、チェック例外自体はJavaの『あまり良くない仕様』とみるのが体勢であると思う。自分もどちらかといえば、『なるべく実行時例外で』という派。とはいえ、『クソ仕様なんでチェック例外はまったく使うべきではない』派ではなく、『必要に応じて使い分ける』派。そもそもクソ仕様とdisるくらいならクソ言語なんか使わない方が幸せ。 まずチェック例外自体に関する問題を改めて整理する。 いちいち定義するのがクソ面倒 常にtry-catchかthrows句を強制するのでクソウザい 横断的に処理しにくい 大規模プロジェクトになればなるほど、例外に関するスキルがないクソ人ばかり これらについては散々議論されているだろうし、愚痴になるだけだと思うので割愛。 で、自分はどうして『必要に応じて

    Javaのチェック例外はクソ仕様 - やさしいデスマーチ
    sawat
    sawat 2011/03/05
    異常処理にまじめに向き合うとウザイんだよ。でもやんなきゃいけないことなんだから(Javaの役割を考えれば)必要。
  • Javaプログラマであるかを見分ける10の質問 - やさしいデスマーチ

    元ネタはこちらですが、「優れたJavaプログラマ」を見分ける質問ではありません*1。次のような状況を想定してください。 受託業務を中心にしている弊社は、Javaで業務系ウェブアプリケーションの開発を行う事になりました。しかし社内のリソースを使うにも1−2名足らない事が見積もりから解っています。そこで、中堅エンジニアを1−2名募集することになりました。正社員か派遣かは問いませんが、経験が3年程度の中堅プログラマが必要です。同等またはそれ以上のスキルを持つ正社員がプロジェクトを牽引しますが、ゼロから教えながら教育することはできないので、必要最低限のスキルを持っていることが条件になります。 こんな状況を想定して、面接の質問を考えてみました。経験が3年程度あれば、問題なく答えられるはずです*2。尚、質問はホーム言語がJavaである前提です。 下記質問にそれぞれ50文字以内を目安に簡単に説明すること

    Javaプログラマであるかを見分ける10の質問 - やさしいデスマーチ
    sawat
    sawat 2011/03/05
    文字列連結の話は「原則」じゃないでしょ。「+を使ってはいけないケースがある。そのようなケースと理由は?」にすべき
  • Java 7の並列ライブラリをためしてみる - 2011-02-20 - きしだのはてな

    と言っても1メソッド呼び出してるだけですけど。 ソースは最後においていますが、整数のリストの合計を取得してます。 次のようなCallableインタフェースを実装したクラスを用意して SummaryTask implements Callable<Integer> そのクラスのリストを用意して List<SummaryTask> summaryTasks = new ArrayList<>(); 一気に実行開始 List<Future<Integer>> results = new ForkJoinPool().invokeAll(summaryTasks); 最後に結果を集計という感じです。 for(Future<Integer> future : results){ result += future.get(); } 実行結果としては、ぼくのマシンはデュアルコアなので、だいたい2倍の速度

    Java 7の並列ライブラリをためしてみる - 2011-02-20 - きしだのはてな
  • L&#39;eclat des jours(2011-02-20)

    _ Javaには良い点があるのか? Java当に良く使われているプログラミング言語だから、プログラミングを知らない人でもプログラムを記述できる。プログラミングを知っているというのは、この場合、ケースバイケースで記述することができるってことだ(というか、正直なところおれが知っているプログラミングはそのあたりまでで、ケースはわかってもプログラミングがわからなくて、まずいプログラミングをすることもたくさんある)。 そのため、プログラムとは言えないソースコードをたくさん目にする機会があってうんざりした。 どのくらいうんざりしたかと言うとコーディングの掟というケーススタディを上梓できたくらいだ。 コーディングの掟(最強作法) 現場でよく見る不可解なJavaコードを一掃せよ! (開発の現場セレクション)(arton) というわけでうんざりしているのはJavaで書かれた妙なコードであって、Java

    sawat
    sawat 2011/02/20
    読んで、ポチッた
  • Javaプログラマが知るべき9のこと - @katzchang.contexts

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

    Javaプログラマが知るべき9のこと - @katzchang.contexts
    sawat
    sawat 2011/02/11
    あ、Effective Javaを人に貸しっ放しなだ。返してもらわないと!
  • トップ

    WUBEN(ウーベン)Amazon.co.jp: WUBEN(ウーベン) : スポーツ&アウトドア 自轉車用ライト(今は売切れになってしまっている模様)。これまでは電池内蔵のものを使っていたのだけど、だいたい2-3年で電池がダメになって丸ごと交換になり不経済なので電池交換できるものに変更。これを自轉車用のホルダーで固定している。18650電池なら電池もちも良く快適。 【Amazon.co.jp 限定】クモリ(Kumori) チェアマット クリア PVC 床保護マット 90X120cm 厚み2mm キズ防止 凹み防止 エンボス ゲーミングチェアマット 床暖房対応 滑り止め 冷蔵庫 フロアマット(90X120cm)【Amazon.co.jp 限定】クモリ(Kumori) チェアマット クリア PVC 床保護マット 90X120cm 厚み2mm キズ防止 凹み防止 エンボス ゲーミングチェアマッ

    sawat
    sawat 2009/08/28
    コメントした。
  • トップ

    「プログラミング言語Rust公式ガイド」を大分前に送って戴いていたのを、ようやく読んだ。 Rustは、個人的にかなり気に入った言語で、早く組込み開発で普通に使えるようにならないかなと思っている。Rustの公式のガイドがとても良く出来ており、おそらく多くの人がここをとっかかりに始めているのではないかと思う。書は、このガイドを読んだ人、読んでいない人のどちらにも勧められる良書だ。ただ中盤以降の翻訳は一部こなれていない箇所もあり、意味が良く分からない時のために原書もあると良いと思う。 2章 Shadowing。Rustでは同じ名前の変数を複数回宣言できて、それにより前の変数はShadowされる(見えなくなる)。他の言語では、ほとんどが二重宣言のエラーになるところだ。便利かもしれないが個人的にはRustの言語仕様の中で、ほぼ唯一疑問を感じるところ。まぁ関数のサイズが小さければ問題ないのかもしれな

    sawat
    sawat 2009/07/07
    なるほど。64bitメモリ空間を32bitにおしこむならそりゃそうなるよね。
  • G1ガベージコレクタの威力を検証してみた - しんさんの出張所 はてなブログ編

    いよいよおまちかね!GF決勝大会レディーゴ(ry GFは世界の覇権をかけたガベージコレクト・ファイトの略だろJK …少しGガンダムに毒されてしまったようだ… ガベージコレクションの性能を検証したのをあげたのはJ2SE 5.0が出た直後あたりが最後だったっけ。もう5年近く前か。 http://shin.cside.com/diary/2004/10.htm#1 JavaSE 6 update14にてG1ガベージコレクタが入ったようなのでこれを試してみる。 ベンチに使うのはいつもどおりの自作STG。 GCのログも全部掲載してるので長文です。 インクリメンタルガベージコレクタ まず一番最適化してるインクリメンタルGCでの設定。なおインクリメンタルGCは5.0のときに実装がまるごとコンカレントGCにさしかえられているのでコンカレントGCを使っているという認識でOK。単に長いオプション名を暗記してい

    G1ガベージコレクタの威力を検証してみた - しんさんの出張所 はてなブログ編
    sawat
    sawat 2009/06/08
    インクリメンタル、世代別、G1の比較ベンチ。
  • Google App Engine for Javaを使ってみよう! (1)Google Plugin for Eclipse

    2008年4月7日に発表されたGoogle App Engineが、ちょうど1年後の2009年4月7日にJavaに対応したことが発表されました。さらに、Java開発には必須のEclipse用のプラグイン「Google Plugin for Eclipse」が同時に発表され、Java利用者は簡単にGoogle App Engine用のプログラム開発とEclipse上からのデプロイができるようになっています。今回はそんな便利な「Google Plugin for Eclipse」の使い方を説明します。 はじめに 2008年4月7日、Googleのインフラでウェブサービスを展開できるという「Google App Engine」が発表され世界中が驚かされました。この時点では利用できる言語としてPythonのみがサポートされており、Pythonの開発者がGoogleの社員であることを考えると当然なの

    Google App Engine for Javaを使ってみよう! (1)Google Plugin for Eclipse
  • 実開発で分かったGoogle App Engine for Javaの“すごさ”

    ゴールデンウィークに特に予定のなかった筆者は,「ちまたで噂のGoogle App Engine for Java(GAE/J)とFlexでスケジュール共有ツールでも作ってみよう」と思い立ちました。およそ5日間かけて開発を進めたのち,2009年5月6日に「ご都合.com(画面1)」を公開しました。その後,はてなブックマークやニュースサイトなどでご紹介いただいたおかげで,公開後6日で約2000人の方にご利用いただいています。 そこで稿では,この「ご都合.com」の開発で実際に筆者が得た経験を通じて,GAE/JによるWebアプリケーション開発の実際とそのポテンシャルについて紹介します。 米Googleが2008年4月に発表したGoogle App Engine(画面2)は,「自分が開発したWebアプリケーションをGoogleのデータセンターで運用できるクラウドコンピューティング・サービス」です

    実開発で分かったGoogle App Engine for Javaの“すごさ”
  • LookAndFeel(Synthの設定)ついて - Java Solution会議室

    sawat
    sawat 2009/05/15
    Synth Look&Feelは実用レベルじゃない気がする…。すくなくとも簡単につかえる代物ではないね。
  • トップ

    的には、ここの内容をそのままGitHubに登録してpagesの設定をすれば良い。例えば「Reveal.js、MarkdownGithubでスライドを作成する。」が良くまとまっている。だが1つ謎の事象が起きて悩んだ。 index.htmlの中に、直接markdownを書く時には良いのだが、以下のようにdata-markdown属性でmdファイルを指定すると、不可思議な動作をする。 <section data-markdown="./md/firstpage.md" data-separator="\n---\n$" data-vertical="\n--\n"> <script type="text/template"> </script> </section> 最初にcommit/pushした時は表示されるものの、変更してcommit/pushしても変更が反映されなかったり、そもそも

  • Google App Engine、Java対応についての賛否

    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が最近リリースされ、重要な変...

    Google App Engine、Java対応についての賛否
  • Javaシステムに異常あり---目次

    Androidの画面を見やすく、ピンチアウトできないアプリは「ユーザー補助」で拡大 2024.03.07

    Javaシステムに異常あり---目次
    sawat
    sawat 2009/04/02
    連載タイトルが大袈裟すぎる…