タグ

Javaに関するglcsのブックマーク (19)

  • Javadocを書かない - しげるメモ

    前回はJavadocを書く - しげるメモというタイトルで話を進めましたが、今回は逆にJavadocを減らすプラクティスについてメモがてら。 私は別にJavadocを書くのが好きなわけではなく、単純に書いたほうがめんどくさくないと思うのでそうしてます。ただ、Javadocを書くのもかなりめんどくさいとは自分自身で感じているので、そのめんどくささをできるだけ減らす道を現在も模索中です。 やり方としては単純で、次のうちどちらかです。 Javadocをそもそも書かない Javadocに書くことを減らす かなりの部分がEffective Java (Java Series)に紹介されているプラクティスとかぶりますが、ここではあくまで"めんどくさくないJavadoc"という視点でいきます。 Javadocをそもそも書かない If an API is to be usable, it must be

    Javadocを書かない - しげるメモ
  • Java でラムダ - IT戦記

    λ... λ... ちょっととおりますよ はじめに C++ Template の勉強をしていて、気がついた。 ネストした(内側から外側が見える)名前-値の空間が存在し 値から名前-値の空間を生成することが可能で その空間を生成するための情報を値として扱え 名前-値の空間の中の一つ以上の値を取り出せると ラムダが出来る。 という訳で Java でラムダを作ってみた import static java.lang.System.out; public class Hoge { public static void main (String args[]) { // チャーチ数 0 final λ zero = new λ () { λ call (final λ f) { return new λ () { λ call (final λ x) { return x; }}; }}; // チ

    Java でラムダ - IT戦記
    glcs
    glcs 2008/07/01
  • 結論:結局、Javaはクロージャを使えるの? - lethevert is a programmer

    【追記 2008/7/2】とても昔のClosureについて書いた記事が注目を集めてしまったみたいですが、ぜひ、もっと後で書いた次の記事とその関連スレッドの方も確認してみてください。このときよりも、もう少し事情が分かってから書いたものなので、より正確に状況を理解できると思います。それに、私自身、この言葉にはまだ混乱しています・・・ http://d.hatena.ne.jp/lethevert/20070524/p2 - という問いに対して、そろそろ私の結論を整理しておきます。 これは、将来の自分に対する参照の便のための整理です。 前提知識 前提知識として、こちらの内容を読んで理解しておきます。 Closure (computer programming) - Wikipedia [id:lethevert:20060119:p1] [id:lethevert:20060121:p2] また

    結論:結局、Javaはクロージャを使えるの? - lethevert is a programmer
    glcs
    glcs 2008/07/01
  • MOONGIFT: Python製のJava向けソースコードレビュー「JCR」:オープンソースを毎日紹介

    やはり熱い(と思っている)。ソースコードレビューは、とても面白い。個人的にも一日の開発作業の結果をイシュー登録し、レビューするようにした。Diffで一つ一つのファイルをチェックするよりも簡単で良い。 プロジェクトウィンドウ レビューの方法は最近の流れでいくと、やはりWebベースでやるのが良い。これを複数人でやれば生産性向上につながるのは間違いない。 今回紹介するオープンソース・ソフトウェアはJCR、Python製Webベースのソースコードレビューシステムだ。 JCRはeasy_installを使ってインストールできるシステムで、SQLite3/MySQL/PostgreSQLをバックエンドにすることができる。Python製ではあるが、なぜかJava向けを想定して作られているらしい(利用は特に言語を問わずに利用できる)。 差分表示 Diffは二つのファイルを差分を縦に並べて表示する。そしてコ

    MOONGIFT: Python製のJava向けソースコードレビュー「JCR」:オープンソースを毎日紹介
  • *「ふっかつのじゅもんがちがいます。」 Javaにvariant型を実装した

    最近Hadoopを使うために5~6年ぶりにJavaをいじっています。 そんで、ちょっとばかり耐えがたいわけです。 例えばありがちな例題を挙げると、 ["google", "検索エンジン","開発"]のようなタグ(文字列)のリスト(でも配列でもなんでもいい)を受け取って [ {tag=>"google", enc=>"google"}, {tag=>"検索エンジン", enc=>"%E6%A4%9C%E7%B4%A2%E3%82%A8%E3%83%B3%E3%82%B8%E3%83%B3"}, {tag=>"開発", enc=>"%E9%96%8B%E7%99%BA"} ] のようなハッシュテーブルのリストに変換しなさい。 ただしパーセントエンコーディングを行う関数(でもメソッドでもなんでもいい) uri_encodingは与えられているものとする。 こんなこと、Web

  • Java : クロージャ - lethevert is a programmer

    Delphiでクロージャ([id:lethevert:20060110])をやったので、次はJavaでもクロージャをやりたいと思うのですが・・・ - 実際は、Javaには、もうほとんどクロージャと読んでもよいものがあるんですよね。つまり、無名クラス。(そういえば、昔も似たようなことを書いているような [id:lethevert:20050825:p2]) interface Closure { int call(int in0); } class OuterClass { Closure add_n(int _n) { final n = _n; return new Closure() { int call(int in0) { return in0 + n; } } } }もし、final変数を経由しないで、ローカル変数にアクセスすることができれば、それはクロージャと呼んでよいものにな

    Java : クロージャ - lethevert is a programmer
    glcs
    glcs 2008/05/19
    Javaでクロージャ
  • JavaプログラマのためのC#文法講座(その1) | Club Unisys + Plus

    「称賛」によって組織のエンゲージメントが高まるPRAISE CARD 企業の風土改革と一人ひとりが成長し合える好循環な組織を実現する デジタルコモンズ イノベーション 2023年04月28日 企業と生活者をつなぎサステナブルな未来を目指す「BE+CAUS」 「いつもの買い物が社会課題の解決につながる」STYZとともに取り組む新機軸の社会貢献 デジタルコモンズ イノベーション 2023年04月26日

    JavaプログラマのためのC#文法講座(その1) | Club Unisys + Plus
    glcs
    glcs 2008/05/16
  • Javaの冗長な記法って小クラス主義の現れではないかな - 矢野勉のはてな日記

    Java以下は無駄に長い駄文です。なんか書いてみたはいいもののうまくまとまらなかった。ごく一部しか表せなかった気がする。これではInputStreamReaderとかがたくさんオブジェクトを連結しないと使えないめんどくささをなぜ許容できるか、しか表せてない... もともとは「 Java における質的でない記述がどのように大規模開発に役立つのか - kwatchの日記」がらみの話です。文中にいくつか「アクセッサが簡潔に定義できない」「FileReader に文字コードを渡せない」のような例があって、「それらが改善されたら大規模開発になにか不利益があるのかどうか」という具体的な質問があったので私はそこにコメントしときました。私はコメント欄に「不利益なんてないよ」と回答しました。実際のところ、後方互換性が維持され、言語としての統一性が維持されるなら別に不利益なんてあるわけない。あるとしたらマネ

    glcs
    glcs 2008/05/04
  • Javaの匿名インナークラスに強い気持ち悪さを感じるのに、JavaScriptの匿名関数は凄く気持ち良く感じられる理由!? 【▲→川俣晶の縁側→ソフトウェア→技術雑記】

    頭のなかでモヤモヤとわだかまっていることがあるので、趣旨だけメモっておきます。 ちなみに、用語の使い方等はかなりいい加減なので、よい子は宿題のレポートをまとめる参考などには使わないように! Javaの匿名インナークラスに強い気持ち悪さを感じる § 昔、C#とJavaを比較するという面白くもないレベルの低い議論があったときに、Java信者側から「匿名のインナークラスがあれば良いのだからdelegateなんか要らない」という意見がありました。 その時に私が感じたのは、匿名インナークラスに対する強い気持ちの悪さです。 クラス定義の中にメソッドの定義があり、その中に更にクラス定義があるのは、いかにもソースコードの見通しを悪くする俗悪な書き方に思えました。 特に、記述されたコードが、実際に実行される順序と一致しなくなるという問題は、シンプルで分かりやすいソースコードという趣旨に反するような気がしまし

    glcs
    glcs 2008/05/01
  • Java信者の宗教的情熱と@ITの記事『私がJavaからC#に乗り換えた10の理由』 【▲→川俣晶の縁側→ソフトウェア→技術雑記】

    このコンテンツの内容は、2003年7月10日付で全面的に改定されています。また、2003年7月12日付けで、Javaプログラマの中で信者にあたる人数は少数派であると、くどいぐらいに強調するように文章の一部を直しました。この文章でJava信者という言葉で想定した対象に、大多数のJavaプログラマは含まれません。念のため。 まず第1に、この記事体については、良く書いたと感心しました。いくつか誤認というような内容が含まれているようですが、それを差し引いても、よく書けていると思います。 こういう文章は、私には書けません。こういう原稿を書くためには、C#だけでなくJavaについてもきちんと調べる必要があります。私は、今更、Javaについて調べる気力も体力もありません。これは、古い言語なんて相手にする意味がないぜ、ということではありません。CやC++なら、相手にする場合があります。どうしてJava

  • 【ハウツー】即デプロイ可能なWebサービスを簡単構築、「Enunciate」を試す (1) Enunciateとは? | エンタープライズ | マイコミジャーナル

    Enunciateとは、Ryan Heaton氏により開発が進められているWebサービスフレームワークである。2007年3月にバージョン1.0が出たばかりの真新しいプロダクトだ。 Webサービス関連のフレームワークと言うと、AxisやXFireが有名だが、Enunciateはそうした「Webサービスの実行環境を提供するフレームワーク」ではない。EnunciateプロジェクトではEnunciateを「Webサービス・デプロイメント・フレームワーク」と位置付けている。 Webサービスデプロイメントフレームワークについて平たく説明するならば、「(1)完全なドキュメントを備え、(2)相互運用性に優れ、(3)すぐにデプロイ可能、という3つの条件を併せ持つWebサービスを、ソースコードを基に自動的に構築する」ためのフレームワークである。つまりは、Webサービスを構築する際に必要な作業のうち、ソースコー

  • MOONGIFT: 日本向きなWebベースのグループウェア「Aipo4」:オープンソースを毎日紹介

    フリーランスになってからはグループウェアと縁がなくなっているが、複数人で活動する場合はやはりグループウェアがあった方が良い。情報の交換もそうだが、まずは必要な情報を集約することに意味がある。 海外のオープンソースのグループウェアは数多いが、前に色々試してみたところでは何となく使い勝手に違和感を感じることが多かった。やはり日人にあったグループウェアが必要だ。 今回紹介するオープンソース・ソフトウェアはAipo4、日向けのグループウェアだ。 Aipo4はエイムラックという日の企業が開発したグループウェアで、Tomcat + PostgreSQLで動作する。配布はGPLだが、有料でのサポート契約もある。Ajaxが多用され、インタフェースも分かりやすい使い勝手の良いグループウェアだ。 カレンダーはGoogleカレンダー風にドラッグで作成できるようになっている。Todo管理はもちろん、アドレス

    MOONGIFT: 日本向きなWebベースのグループウェア「Aipo4」:オープンソースを毎日紹介
  • Java が使いにくいのは静的だからではない - kwatchの日記

    Java が使いにくい言語であるというのは、世界中の LL ファンが皆思っていることだろうから改めていうことでもないけど、使いにくいのは静的言語だからというのは間違っている。Java が使いにくいのは単に Java の設計者のセンスが悪かっただけであり、静的言語のせいではない。 たとえばこんなコード。 public Map<String, List<String>> example() { List<String> list = new ArrayList<String>(); list.add("foo"); list.add("bar"); list.add("baz"); Map<String, List<String>> map = new HashMap<String, List<String>>(); map.put("names", list); return map; }

    Java が使いにくいのは静的だからではない - kwatchの日記
  • C++ →Java→C#という進化形路は本当に正当か? いまここで問う、プログラム言語のリソース管理論

    昨夜は寝ぼけながらC++/CLIはC#を凌駕するかも知れない…… usingステートメント不要のDisposeメソッド呼び出しの衝撃という文章を書きましたが、これについて、歴史を踏まえたより分かりやすい話を書いておく価値があると思い付きました。 というか、これは私のようなプログラム言語ミーハーにとっては、ご馳走のような話題ですね。このような問題を重大視して喜ぶ人は滅多にいないのかもしれませんが、しかし多くの開発現場での生産性に直結しうるシビアな話題でもあります。 リソース管理とは何か § プログラムは様々なリソースを使いながら動作します。 リソースとは、CPU、メモリ、ファイル、通信ポート(TCP/IPのポート番号)などです。 これらのリソースは有限であるため、確保したまま解放しない場合、リソースが枯渇し、それ以上のプログラム、あるいはシステムの動作が継続できなくなります。 従って、リソー

  • HugeDomains.com

    Captcha security check igune.com is for sale Please prove you're not a robot View Price Processing

    glcs
    glcs 2008/01/26
    同じ方法でWindowsでも起動できた。助かった
  • 2006-10-09

    モデラーはいつも抽象的な現実しか語らない。 概念なんだからしょーがねーだろ っと言われるかもしれないが、 実際問題使う人たちが理解に苦しむのであれば 提供側はもちっと考えるべきである。 ユーザを苦しめるのがベンダの仕事か?ってことにYesYesYesと答えるのは ユーザをないがしろにしている事実にほかならない。 ポリモルフィズムを語る際に、必ずコードが単純になるよってことしか言わない。 再利用性が高まることを示すにはサンプルコードはあまりにも少ないのだ。 理解を促すために必要なのは前提と結論と過程の3つであり、 巷にあふれる説明には過程がカケラしかない。 ふっとぐぐったらこんなんみつかったのだが、中身はひでぇもんだ。*1 コードに落とし込む時、メソッドの役割は2種類必要になる。 ・実処理 ・実処理を呼び出すだけの処理 *1:世で見る普遍的な言葉という意味では「平均的」なのだが、 世の中の平

    2006-10-09
  • Super Technique 講座~goto 文が有用な場合

    goto 文の利用とは、神学論争ではなくて、「リソースバランス」の問題である。この視点によって goto 文という議論の多いC言語機能を検討するのが、この論の目的である。goto 文の利用は「常に不可である」とする教条主義者はこんな論は読まずに、信仰の道を歩まれるのが良かろう。 リソースバランス 多重脱出 依存するリソース リソースバランス まず、「リソースバランス」という大変重要な問題について考えてみよう。「リソースバランス」とは、平たく言えば「使ったものは片付けなさい」ということに過ぎない。オープンしたファイルは必ずクローズするし、malloc(3) したメモリは必ず free(3) する。これを確実に行わないことには、いわゆる「メモリリーク」「リソースリーク」が起きて、長時間動作したり、大量のリソースを消費するプログラムでは、性能が制限されることになったり、OSの動作に悪影響(スラッ

  • Java Mozilla Html Parser登場、ブラウザと同じクオリティを実現 | エンタープライズ | マイコミジャーナル

    21日(米国時間)、Java Mozilla Html Parserの最新版となるJava Mozilla Html Parser 0.2.0が公開された。Java Mozilla Html ParserはHTMLデータをパースしてJavaドキュメントオブジェクトに変換するためのパッケージ。Mozillaで採用されているHTML Parserに対するラッパパッケージになっており、Webブラウザと同じクオリティレベルでのパースが可能という特徴がある。 0.2.0はパフォーマンスの改善が実施されているほか、エンコーディング関連のバグが修正されている。Java Mozilla Html ParserはもともとDapperにおける開発の一部として取り組まれたもの。ラッパライブラリでありすべてJavaで開発されたわけではないのでビルドやデプロイは若干手間だが、WindowsLinuxMac OS

  • ディベート: 何故ほとんどの大規模webサイトは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が最近リリースされ、重要な変...

    ディベート: 何故ほとんどの大規模webサイトはJavaで構築されないのか?
  • 1