タグ

ブックマーク / irof.hateblo.jp (21)

  • ドメイン駆動設計に関する何か - 日々常々

    2020-03-13追記: 「ドメイン駆動設計」のハードルを上げる意図はありません。そもそもそんな特殊技能でもないと思っています。「ドメイン駆動設計が合っているか」を測る材料になるかも?くらいの気持ちで読んでいただけると幸いです。 何度目か知りませんがDDDがまたブームを迎えているようで。DDD難民と言う言葉が出た頃を思うと感慨深いですね。実際難民になったわけではないので肌感覚で知らないのが残念なところですが、これはどうでもいい。 DDD、日語ではドメイン駆動設計となりますが、DDDを冠していてもドメインが語られることは少ないようです。 数ある書籍もドメインモデリングの話ではなく、ドメインモデルをいかに実装に落とし込むかにフォーカスしていると感じています。 これはこれで仕方ないと言うか、ドメインの話って広く語れないんですよね。 ドメインは領域で境界があって範囲が限定されています。特定ドメ

    ドメイン駆動設計に関する何か - 日々常々
    teracy_junk
    teracy_junk 2020/03/20
    『ドメインモデリングの力を着ける高速道路は、既存のパッケージ製品やサービスがドメインをどう捉えているかを学ぶことです』
  • モッククラスを使うべきか否か - 日々常々

    元ネタ: モッククラス、下から見るか?横から見るか? モッククラスを使うべきか否か、というネタを拾ったので書いてみます。これまでにモックについて殆ど書いてないことに気づいて驚きつつ。 Short Answer 「モックに何をさせたいの?」 質問に質問で返すなという感じですが、モックに何をさせたいか答えてみれば、モックを使うべきか否かはだいたい決まるよなーと思うのです。 モックは道具で、使うことで何かを改善するものです。 「このことをテストしたいから、モックをこう使う。」という文脈なく使用すると、無用な複雑性を作り込むことになります。 モックの使用は負債なので、十二分に利益を見込める場合にのみ使用するものだと思っています。 これはモックに限った話ではなく、何かを便利にするために道具を追加する際は必ず付いて回るトレードオフです。 Short Answer 露払い 使うべきか否か どちらでも差が

    モッククラスを使うべきか否か - 日々常々
    teracy_junk
    teracy_junk 2019/07/22
    『 「このことをテストしたいから、モックをこう使う。」という文脈なく使用すると、無用な複雑性を作り込むことになります。 モックの使用は負債なので、十二分に利益を見込める場合にのみ使用するもの』
  • Javaエンジニアからみた最近のJava事情 - 日々常々

    5/9(水) 大正GeekNight Vol.1で話しました。 https://taisho-geek.connpass.com/event/85508/ 4ヶ月前のスライドです。 Javaのサポートについては続報も出てきていますし、思い込みで騒がないのが吉です。 いよいよ今月命のJava11がリリースですね。どうなるかな。

    Javaエンジニアからみた最近のJava事情 - 日々常々
  • 「遅れ」なんてない - 日々常々

    「頑張って遅れを取り戻す」 綺麗な言葉ですが、私は嫌いです。その中でも次の言葉が特に嫌いです。 頑張る 遅れ 取り戻す 全部。これらが嫌いな理由をそれぞれ説明していきます。順番は「頑張る」→「取り戻す」→「遅れ」です。 なお、「頑張って遅れを取り戻す」に期待される結果は「他に一切の影響を与えず、遅れだけが綺麗になくなる」だと思われます。 頑張る 「頑張ってなかったん?」と言うと「頑張っていましたが、もっと頑張ります。」みたいなのが返ってきます。でもこれって多分「頑張る」と言われることが求められているからそう返してるだけで、もともと手なんて抜いていない。仮に手を抜いていたとしたら「頑張る」は「手を抜いていました」の宣言になるので、それを許容してる状態が問題になるんじゃないかな。 とか言葉遊びは置いておいて、現実の話をします。こういう文脈での「頑張る」は「長時間連続労働」に他なりません。そこで

    「遅れ」なんてない - 日々常々
  • 「あるエンジニアがプログラムを紡いでいく様を見てみる」ライブコーディング・リプレイ - 日々常々

    あるエンジニアがプログラムを紡いでいく様を見てみるでしたライブコーディングで言ったことや言わなかったことを書いてみます。 意識してるのは「コードをどまんなかに」です。 speakerdeck.com ……あ、このスライドのブログ書き忘れてた。 スライド中の「えらぶ」はだいたいIDEの機能を指します。なのでライブコーディング中に使用したIDEの機能も挙げようと思います。基的にデフォルトのつもりだけど、vimとの兼ね合いで変更してるのもあるので、そこはごめんなさい。あとMacです。今回はメソッド抽出とかクラス間移動とかダイナミックなのがなくて地味だけど、便利な子たちなので使ってあげてください。 リプレイ 今日の公開コーディングはスゴい新鮮だった🎵 コミット後のソースには、どこに悩んだのか、どこにこだわったのかは残らないのですね。 実際のコーディングを見させて頂く事で、気づかされる事が多かっ

    「あるエンジニアがプログラムを紡いでいく様を見てみる」ライブコーディング・リプレイ - 日々常々
  • "ふつうのJavaコーディング"を話しました - 日々常々

    2017/5/20にあったJJUG CCC 2017 Springで登壇させていただきました。 8回目の参加です。 毎回パワーアップしているなーと言うのは前回のブログでも書きましたが、今回は目に見えて参加人数が増えたんだなーと体感しました。 入れないセッションもありましたし、懇親会も超満員でした。運営の皆様に当に感謝です。 今後も楽しみにしています。 話したもの ごくふつうの話、のつもり。ふつうって一体なんだとか思わなくはないですが、ただの枕詞なので意味はないです。 結局のところ九段に集約されるんですが、強い意思を持つには色々必要で、まあそんな感じです。 「coming soon」となっている61スライド目 先日(6/24)発売のWEB+DB PRESS Vol.99 で書いてます。 WEB+DB PRESS Vol.99 作者: ?橋健一,谷口禎英,井大登,山崎勝平,大和田純,内村元

    "ふつうのJavaコーディング"を話しました - 日々常々
    teracy_junk
    teracy_junk 2017/06/29
    ふつうだけどふつうにできてないなぁと痛感
  • DIコンテナのインジェクション方法の使い分けについて - 日々常々

    DIコンテナを使う時にどのインジェクションを使うかって話です。 たぶん誰かがどこかで同じようなことを書いているだろうけれど、気にせず書くよ。 「他の誰かが書いている」なんてのを書かない理由にしてると何も書けなくなるし。 コンテナ DIコンテナのこと。 コンテナ管理 インスタンスのライフサイクルをコンテナが管理していること。雑に言えば、使う側で new しないってこと。 インジェクション Dependency Injectionのこと。 Short Answer コンストラクタインジェクションを使いましょう。使い分けなくていいです。 3種類のインジェクション インジェクションには3種類ありますね。他あっても知らない。 フィールドインジェクション セッターインジェクション コンストラクタインジェクション フィールドインジェクション 一番よく見るかな。 class Hoge { @Inject

    DIコンテナのインジェクション方法の使い分けについて - 日々常々
    teracy_junk
    teracy_junk 2017/04/17
    普段AndroidでDIするとき、Fragmentだけフィールドインジェクション使ってて、それ以外はコンストラクタ略を使ってるんだけど、なんとなく気持ち悪さ感じてる
  • WeldとJava SEとGradleとIDEAと - 日々常々

    Weldを使ってみようと思いました。普段DIはSpring一槍なのですが、それもどうかと思ったので。 opengl-8080さんやKazuhiraさんのようないつもの方々が既にやられていることだし、すぐできるだろうと思ってました。 qiita.com d.hatena.ne.jp やるまでは。甘かったです。すぐできなかった。でも、あーだこーだとやってたら一応解決したので書いておきます。 結論からいうと、*.classがあるディレクトリにbeans.xmlさんがいる必要があります。Gradleとかでclassesとresourcesとかディレクトリが分かれてると、resourcesにbeans.xmlさんが行っちゃうので、動かない。 気づいてみればよくある話なんだけど、だいたいそんなもんだよね(´・ω・`) やったこと とりあえずドキュメントの通りにやってみる なんか動かない CDIわかっ

    WeldとJava SEとGradleとIDEAと - 日々常々
  • TimeUnitという物体 - 日々常々

    小ネタ。 java.util.concurrent.TimeUnit というクラスはご存知だろうか。ご存知?なら回れ右してください。お疲れさまでした。またの機会によろしくお願いします。 ... さて、読み進めているならばご存知でないはずなので、まずJavadocのリンクをば。 TimeUnit (Java Platform SE 8) J2SE 5.0 からいらっしゃるので、別段目新しくないどころか古参とも言えるクラスです。 クラスというかenumです。定義されている列挙はナノ秒、マイクロ秒、ミリ秒、秒、分、時、日の7種類。名前の通りTimeのUnitです。できることはその時間に応じた何かしら。 TimeUnitを使えば、3日が何時間かとかすぐに出せます。忘れがちな「1日が何秒か?」とかにも答えてくれます。 long 三日の時間数 = TimeUnit.DAYS.toHours(3); l

    TimeUnitという物体 - 日々常々
    teracy_junk
    teracy_junk 2015/06/02
    『なんで今回こんな記事を書いているか?それはこんなコードをなるべく見たくないからです。 // 3分スリープする Thread.sleep(3 * 60 * 1000);』まれによく見る
  • Theoriesさんの可読性をなんとか - 日々常々

    mike、mikeなるままに…: Spockで例外のテスト ということなので、いろふさん早くSpockについてブログ書いて下さい。 mike、mikeなるままに…: Spockで例外のテスト とか言われたのでTheoriesネタで書きます。 Theoriesさん? JUnit実践入門 8章 パラメータ化テスト をご参照下さい。 JUnit実践入門 ~体系的に学ぶユニットテストの技法 (WEB+DB PRESS plus) 作者: 渡辺修司出版社/メーカー: 技術評論社発売日: 2012/11/21メディア: 単行(ソフトカバー)購入: 14人 クリック: 273回この商品を含むブログ (68件) を見る ……ざっくり言うと、パラメータ化テストは「一つのテストメソッドにパラメータを与えて複数のテストをするもの」です。テストメソッドの引数に入ります。色々方法はあるんですけど、シンプルな形だと

    Theoriesさんの可読性をなんとか - 日々常々
  • 匿名クラスとかローカルクラスとか - 日々常々

    Java入門では割愛としていたローカルクラスと、ついでに関連の強い匿名クラスについて書いておきます。ネストしたクラスとかインナークラス(内部クラス)とかはそこそこしっかり書いたつもりなので、読んでいただけると嬉しいです。 Javaエンジニア養成読 [現場で役立つ最新知識、満載!] (Software Design plus) 作者:きしだ なおき,のざき ひろふみ,吉田 真也,菊田 洋一,渡辺 修司,伊賀 敏樹技術評論社Amazon 言語仕様とか読んでもいいと思いますし、この辺りも参考に見てみるといいと思います。 ローカルクラスの意義 - ぐるぐる~ 2009/3/14 Javaのクラス宣言5種+α - プログラマーの脳みそ 2012/3/8 Javaのクラスの使用 - ひしだま's 技術メモページ 2010/1/9 みなさまにはいつもおせわになってます。 宣言とか呼び方とか それぞれど

    匿名クラスとかローカルクラスとか - 日々常々
  • JUnit4.12に追いつこう(周回遅れで) - 日々常々

    JUnit4.12がでました!……2014/12/4に。なんと6ヶ月経ってる。まぁいいや。 JUnit 4.12の新機能紹介まとめ / うさぎ組(2014/8/5) JUnit 4.12から入ったTestRuleを軽く見てみる / 裏紙(2015/2/28) JUnit4.12時代のParameterized Test / mike-neckのブログ(2015/5/6) ググっても4.12の情報があまり引っかからなかったので書いてみますね。 リリースノート斜め読み とりま、Summary of changes in version 4.12 を斜め読み致して、気になるところ(★)は後でもう少し詳しく書く事にします。なお、バグフィックス、メッセージ変更、挙動の統合などの特にテストコーディングに影響を与えないものはスルー。 Assersions floatのassertNotEquals →

    JUnit4.12に追いつこう(周回遅れで) - 日々常々
  • Javaであまりしないコーディング - 日々常々

    Java Advent Calendar 2014 - Qiita の9日目です。9日ったら9日です。 なんか難しいエントリが多い中ですが、空気を読まずに軽めでいきます。 Javaでは色々なコードの書き方ができるけど、実際あまりやらないよなーって思うコーディングについて、やらない理由を無理矢理書いてみた。 決して「やってはいけないコーディング」と言う意味ではないです。単に「私はあまりしない」程度で、一般的な(?)業務開発でもあまり見ない、くらいの位置付け。理解した上でやる分には全く問題無いですし、そう言うもんだと思って使っても良いとは思います。 複数変数を同時に宣言する int i, j = 2, k; 同じ型の変数(フィールドでもローカル変数でも)は同じ文で宣言できます。 けど、あまり使ってるのは見ません。 同じ型でしか使えないし、フィールドだとJavaDocコメント書き辛いし、初期化式

    Javaであまりしないコーディング - 日々常々
  • 「Javaエンジニア養成読本」が出るのです - 日々常々

    Javaエンジニア養成読 [現場で役立つ最新知識、満載!] (Software Design plus) 作者: きしだなおき,のざきひろふみ,吉田真也,菊田洋一,渡辺修司,伊賀敏樹出版社/メーカー: 技術評論社発売日: 2014/11/11メディア: 大型この商品を含むブログ (6件) を見る Javaエンジニア養成読の特集の1つを書かせてもらいました。 まさかの名プレイ。みんな名だったから……(流されるスタイル)あ、どれかは内緒です。バレバレでしょうけど内緒です。 エンジニア養成読シリーズみたいな感じで、少し大きめの雑誌。モックムックって言うらしい。読って"どくほん"って読んでたんだけど"とくほん"って読むんだね。どっちでも良いみたいで"どくほん"で通ってるみたいだけど。 Java入門と言うことで 内容は普通の入門書のように、簡単な構文の解説とか、変数とは云々とか。そんな

    「Javaエンジニア養成読本」が出るのです - 日々常々
    teracy_junk
    teracy_junk 2014/11/04
    『内容は普通の入門書のように、簡単な構文の解説とか、変数とは云々とか。そんなことを書いてません。初心者向けの導入はクリアしている前提です。』
  • Eclipseのアレ、IntelliJ IDEAでどうやんの? - 日々常々

    Mac OS X 10.7.5 IntelliJ IDEA 12.0.1 community edition どうしてもオシゴトでは固定でEclipseさんを使うことが多いため、なかなか他のIDEさんに手を出しづらいのが悩みの種だったりする今日この頃。今日この頃と言いつつここ数年。正直Eclipseさんで困ってないってのもありました。 しかし、GroovyさんをEclipseさんからゴニョゴニョしてると、たまに不機嫌になってそっぽ向いたりして萌えるいまいちイケてなくて、IntelliJ IDEAさんのお力を借りねばならんかなーと思いはじめた次第です。 さて掲題の話は既出もいい所。公式にもあるくらいだし、日語訳してくれてる方もいる。 IntelliJ IDEA:: FAQ for Eclipse users (公式) Eclipseユーザの為のIntelliJ IDEA Q&A - 砂漠の

  • JUnitでテスト名の制約を取っ払う - 日々常々

    2020-06-11追記 稿の対象はJUnit4です。JUnit5で同等のアノテーション`@DisplayName(value)` が追加されているため、このような小細工は必要ありません。 発端は[twitter:@ayato_p]さんのツイートでございます。「JUnitのテストメソッド名を日語で書く」のはそれほど奇異な話ではありません。 メソッド名を日語にする話 - 日々常々 JUnit実践入門でも「日語のメソッド名を使うメリット」と言うコラムがあり、サンプルコードのテストメソッド名は平然と日語で書かれています。 [isbn:978-4774153773:detail] しかし日語メソッド名なので、当然のようにメソッド名に由来する問題が幾らかあります。よく詰まるのは「そもそも使えない」ですが、これはVM引数などで解決出来ます。 JUnitのテストメソッド名に日語を使ったとき

    teracy_junk
    teracy_junk 2014/03/18
    『それGroovyで』Androidのテストをgroovyで、はalterakeyさんが勉強会でやってのを今更思い出した http://www.slideshare.net/alterakey/groovyandroid
  • JUnitのテストメソッド名に日本語を使ったときの問題と対処 - 日々常々

    メソッド名を日語にする話 - 日々常々とかにも書いてるんですが、テストメソッド名に日語を使うのはザラです。むしろ使わない理由がありません。こんなのですね。 import static org.hamcrest.CoreMatchers.is; import static org.junit.Assert.assertThat; import org.junit.Test; public class HogeTest { @Test public void ほげはほげのはず() throws Exception { assertThat("hoge", is("hoge")); } } 例が悪い?そこは気にしないでくださいませ。 さて、メソッド名に日語を使った時に、一部IDEでは問題が起こることがあります。一部と言いつつ私はEclipserなのでEclipseの話です。 Eclipse

    JUnitのテストメソッド名に日本語を使ったときの問題と対処 - 日々常々
  • NUnitのTestCaseが羨ましいのでJUnitでできるようにしてみた - 日々常々

    車輪の再発明万歳。 https://github.com/irof/junit-case-runner こんな感じ。(若干予定含む) @Tests({ @Case({"str1", "str1"}), @Case(value = {"str2", "str2"}, name = "hoge"), @Case(value = {"str3", "str3"}, expected = Exception.class), @Case({"str4", "str4"}) }) public void parameterTestsCase(String actual, String expected) { assertThat(actual, is(expected)); } アノテーションとかJavaの制約が地味にめんどくさい。 同じアノテーションが複数書けない。 だからラップする Tests の

    NUnitのTestCaseが羨ましいのでJUnitでできるようにしてみた - 日々常々
  • 「淡路島の電車の運行状況を聞いた話」をシステム開発に置き換えてみる - 日々常々

    気象庁の地震情報|平成25年04月13日05時48分 気象庁発表 4/13のAM5:33にM6.0らしい地震がありました。各地で大きな被害が無いことを祈りつつ。 フジテレビのアナウンサーさんが淡路島の電車の状況を聞いたと言う話 【放送事故】フジテレビが淡路島民に「電車動いてますか?」と質問 「淡路島は電車ありません」 - NAVER まとめ だいたい見てると「電車無いのを知らずに聞いてしまった」のを叩く向きに思えます。実際のところ、聞いたこと自体はNGなのでしょうが、これをシステム開発の話に置き換えると見えるものがある気がしました。 以降はJavaの語彙で書きますが、これって NullPointerException っぽいなと。 コードっぽい何かで書いてみる こんな感じ。 運行状況 = 淡路島.get路線().get運行状況(); get路線() が何を返すのか知らないけど、これが nu

    「淡路島の電車の運行状況を聞いた話」をシステム開発に置き換えてみる - 日々常々
  • 変更前をコメントアウトして残す習慣は未だ根強い (2012年現在) - 日々常々

    2020-03-11追記: タイトルの「未だ」がいつなのかわかりづらいので「2012年現在」を追加しました。 バカバカしい話ですが、ソースコードをSubversionなどでバージョン管理しているにもかかわらず、未だ修正前をコメントアウトして残す習慣は残っているところも多々あります。こういうのです。 // 2012/08/15 irof 修正開始 // hoge = fuga(1); hoge = fuga(2); // 2012/08/15 irof 修正終了 見た事無い方は、そのまま見ないままで生きていかれることを切に願います。 コメントの修正がある場合 2012/07/21にあった、SCMBCでこんなツイートがありまして。 この時点でお見せしたのはこんな感じ。 // 2012/07/21 削除開始 // // 間違ったコメント // 2012/07/21 削除終了 someMethod

    変更前をコメントアウトして残す習慣は未だ根強い (2012年現在) - 日々常々