タグ

ブックマーク / yojik.hatenablog.jp (9)

  • Java8でDuckTyping的なこと - yojikのlog

    Javaのラムダ式のついでに導入されたメソッド参照がなかなか便利な感じです。メソッド参照をつかってDuckTyping的なことができます。 HasName という関数型インタフェースを受け入れるGreeterクラスの定義*1 public class Greeter { /** 関数型インタフェースの定義 */ @FunctionalInterface interface HasName { String getName();} /** 「名前を持っているオブジェクトに挨拶をしてもらう」メソッド */ public void greet(HasName... targets) { for(HasName it : targets) { System.out.println(it.getName()); }; } } 「HasNameの関数型インタフェースと同じシグネチャを持つメソッド」を持

    Java8でDuckTyping的なこと - yojikのlog
    terazzo
    terazzo 2013/03/11
  • イケてるしヤバい言語 REBOL - yojikのlog

    ある日ふと思い立って調べてみた、イケてるしヤバい*1言語REBOLについて紹介します。 REBOLは、 Relative Expression Based Object Language 「相対的な表現をベースにするオブジェクト言語」の略です。よく意味わからん。 Wikipediaによると、 1997年にリリースされたREBOLは、カール・サセンラスが20年に渡って設計したものである。サセンラスは AmigaOS の主要アーキテクトであり、REBOLの設計にあたっては、表示的意味論の知識に基づいて、LISP、Forth、LOGO、Self といったプログラミング言語の概念を利用した。 引用元:REBOL - Wikipedia 大雑把にいうと、LispやForthやLOGOやSelfに似たスクリプト言語です。ここからダウンロードできます。最新バージョンはオープンソースライセンスになっていま

    イケてるしヤバい言語 REBOL - yojikのlog
    terazzo
    terazzo 2013/01/26
  • 開発プロセスとしての伽藍とバザール - yojikのlog

    わかりやすく、21世紀現在の言葉で、伽藍とバザールという対比を現実社会に当てはめると、もっとも近いものは、ウォーターフォールvsアジャイル だ。 artonさんが述べているように、伽藍とバザールは、OSSのアジテーション文書とかハッカー賛美の書ではなく、実際にはESRがFetchMailの開発をすることによって得たバザール方式開発プロセス*1のプラクティスを紹介するエッセイです。 コードをオープンにすることは必要条件であって十分条件ではない。コードをオープンにすることは、それ自体が目的じゃなくて素敵なソフトウェアを自然につくるための手段にすぎない*2。一般的な開発者の数百倍の生産性をたたき出すハッカー賛美などはどこにも無い。 いくつか興味深い部分をピックアップしてみましょう。 6. ユーザを共同開発者として扱うのは、コードの高速改良と効率よいデバッグのいちばん楽ちんな方法。 これは、XPな

    開発プロセスとしての伽藍とバザール - yojikのlog
    terazzo
    terazzo 2012/04/10
  • [book]ヴィクトリア朝時代のインターネット - yojikのlog

    19世紀にはテレビも飛行機もコンピュータも宇宙船もなかったし、抗生物質もクレジットカードも電子レンジもCDも携帯電話もなかった。 でもインターネットだけはあった。 ヴィクトリア朝時代のインターネット 作者: トム・スタンデージ,服部桂出版社/メーカー: エヌティティ出版発売日: 2011/12/21メディア: 単行(ソフトカバー)購入: 4人 クリック: 45回この商品を含むブログ (14件) を見る ちょっとSFめいた導入から始まりますが、このは19世紀の電信ネットワークの発明から衰退までを追った一冊です。 電信は、依頼主が電信局でメッセージの伝達を依頼、電信局側でモールス信号に符号化して有線で伝達、届け先の電信局でモールス信号を聞き取ってメッセージに復号化し、最後に配達員が相手に届ける、という仕組みです。小さい頃エジソンの伝記なんか読んでた人はイメージしやすいかもしれません。これは

    [book]ヴィクトリア朝時代のインターネット - yojikのlog
    terazzo
    terazzo 2012/01/04
  • Simple-Build-Toolが素敵すぎる件 - yojikのlog

    (追記:2010/03/29 jerseyのバージョンが古かったので上げています) (追記:2011/11/25 sbtは執筆時より大幅にバージョンアップされています。0.10系列からは全く別物なので、他の参考文献に当たってください。後日新規記事をアップします。) ScalaのビルドツールSimple-Build-Toolが非常に便利で、しかもJavaプログラマにも使えそうな気がしてきたのでメモっておきます。特にちょっとしたプログラムを試すときにIDEが面倒なタイプの人、エディタでいきなりmainメソッドつきの.javaファイル作ってコンパイルして実行するタイプの人にはお勧めです。 前提 たとえばJavaでちょっとしたREST-APIを持つプログラムを作りたくなったというユースケースを想定します。Simple-Build-Toolを使いながらもJavaでという所がミソです。 参考文献 ht

    Simple-Build-Toolが素敵すぎる件 - yojikのlog
    terazzo
    terazzo 2011/10/11
  • DCI on Java について考えました - yojikのlog

    先日アレグザンダー祭りに行って色々感銘を受けたのですが、いまさら感想を書くよりはコードを書いた方が良いよねと思いました*1。以下はDCIアーキテクチャをJavaで実装したメモです。まだ聞きかじりなので間違いもあるかも。 といっても、元ネタはあるので、写経に近いですね。 http://www.markn.org/blog/2009/06/dci-on-scala.html (Scalaによる実装) http://www.jroller.com/sebastianKuebeck/entry/object_oriented_programming_2_0 (←こちらの例は余りに無駄な実装が多すぎる。。) 概要 DCIの例題によく出てくる銀行の送金処理を考えて見ます。この例って実は全然リアルじゃないんだけど、まあわかりやすいですよね。。 結論からいうと、Taitsもmixinも無いJavaでDCI

    DCI on Java について考えました - yojikのlog
    terazzo
    terazzo 2010/01/22
  • 典型的なプログラマは、ソフトウェア工学に何の疑問ももっていない - yojikのlog

    典型的な Java屋 は JSP を使うことに何の疑問も持っていない ↑このエントリ自体はよくあるカテゴリ批判なので、俺自身は「そうともいえるし、そうともいえない」みたいな意見しか持てないですね。自分に実害があるときは、もう少し意見が変わるのでしょうけど。 ただ思ったのは、JSP使う/使わない、とか、Java使う/LL言語使うとかは、結構些細な問題かなーということです。 開発の現場は、どんなツールを使っていても、結構優秀な人が配属されてても、いつでもつまらないバッドノウハウに埋もれています。自作のソフトウェアは何重ものレイヤーの上で動いていて、プログラムの動きを完全に見渡すようなことはできない。もちろんWebアプリやフレームワークのレイヤという話だけではなくて、OSやらサーバまで含んだソフトウェアスタック全体のことです。 現代のソフトウェアは、アップデートするたびに肥大化、複雑化、陳腐化し

    典型的なプログラマは、ソフトウェア工学に何の疑問ももっていない - yojikのlog
    terazzo
    terazzo 2008/05/21
    (サービスのリリースなどで)実装言語やプラットフォームばかりが話題になってると本当にゲンナリする。早く次のステージに行きたい。
  • オブラブ夏イベント LT資料「JavaからJavaへ」 - yojikのlog

    すぐにおく!おいた JavaからJavaへ〜プログラマのための移行ガイド〜 あとで補足書く! (まとまった奴はあとでオブジェクト倶楽部のページからダウンロードできるようになるはずです)

    オブラブ夏イベント LT資料「JavaからJavaへ」 - yojikのlog
    terazzo
    terazzo 2007/06/22
    自作フレームワークでもチーム内での学習コストが掛かるし、学習したからといって履歴書に書けるようなスキルにならないので強要するのに躊躇しませんか。沢山コピペする方が楽みたいだし。
  • いまさらFizzBuzz問題を[[OO厨]]がやるとどんなことになっちゃうのか - yojikのlog

    ちょっと気を取り直してプログラミングな話題を。 Lisp脳でやってみよう -- Schemeプログラマの発想をJavaでやるとどんなことになっちゃうのか こちらを読んでて、逆に純度100%のOO厨気分で考えるとどうなるか考えてみた。 まずOO厨な考え方では「結果」を先を求める。1から100まで並んでるんだけど3の倍数の所は「Fizz」で、5の倍数のときはBuzzで、両方の倍数の場合はFizzBuzzが並んでる、FizzBuzzな仕様の「シーケンス」があればいい。シーケンス=繰り返し。ならばIteratorだ。 while(fizzBuzz.hasNext()) { System.out.println(fizzBuzz.next()); } こんな感じのIteratorがあればいい。過程や!方法なぞ!どうでもよかろうなのだッ! (中略) ググってもそういうIteratrorがみつからないの

    いまさらFizzBuzz問題を[[OO厨]]がやるとどんなことになっちゃうのか - yojikのlog
    terazzo
    terazzo 2007/05/29
    1から100までを表すクラスと3と5と15の倍数を表すインタフェースがあって多態(Visitor?)で……いやむちゃくちゃだ
  • 1