タグ

関連タグで絞り込む (0)

  • 関連タグはありません

タグの絞り込みを解除

Javaとstudyとrefactoringに関するraimon49のブックマーク (11)

  • 隊長、Androidアプリのソースがぐちゃぐちゃであります!! - Qiita

    複数の責務をFragmentやActivityに押し込めてるのが原因です。 公式サイトに書いてあるようなこともありますが、今一度まとめてみました。 -- Activityの長さが10000行を超えました!!とても保守できません!!隊長!! 初期のAndroid開発は手探りでした。Activity、Intent等、大きな枠組みでは優れてましたが、その上の層に関してはノータッチでした。 皆Activityが単位として大きすぎるのは理解してましたが、多くの人はActivityにコードを詰め込む道を選びました。フレームワークを 使う ことに慣れすぎて、 作る ことには不慣れだったのです。 とはいえ、そんなコードはすぐ破綻します。それではまずいということで、GUIフレームワークの知見のある人達は、各々、オレオレフレームワークを内部で抱え込むことになりました。暗黒時代です。 しばらくして、開発が追いつ

    隊長、Androidアプリのソースがぐちゃぐちゃであります!! - Qiita
  • 要するに DI って何なのという話 - 猫型の蓄音機は 1 分間に 45 回にゃあと鳴く

    友人から「しんぺいさん DI について書いてほしい」みたいな話をだいぶ前からされてたんだけど書く気力ずっとなかった。でも仕事の気分転換にちょっとずつ書いたやつがいい量まとまったので公開するです。たいしたことは書いてないっていうか知ってるひとにはあたりまえのことしか書いてない。サンプルコードはわたしの趣味Scala で書いてあるが、Java が読めればなんとなく読めると思います。 DI ってなに Dependency Injection、日語で言えば依存性の注入です。おしまい。 で記事を終えてもいいんだけど、そもそも依存性とはなんなのか、それを注入するとはどういうことなのか、なぜ DI が必要となるのかみたいな話をこれからします。 そもそも依存性ってなあに 例を出します。入力された文字列をもとにおみくじをひいて、その結果を twitter に投稿するプログラムにしましょう。 まずは普通

    要するに DI って何なのという話 - 猫型の蓄音機は 1 分間に 45 回にゃあと鳴く
    raimon49
    raimon49 2014/02/13
    コンストラクタインジェクションの解説をScalaで
  • やさしい設計 〜 Android 編 - Qiita

    アプリを作っていてありがちなこと Android には、画面を構成するための Activity というコンポーネントがあり、概ね MVC フレームワークの Controller に相当する機能を持っています。 MVC といえば、肥大化する Controller というのがよくある問題として挙げられますが、Activity も例に漏れず、往々にして肥大化しがちです。 また、Model も、その責務を詰め込んでいくと肥大化しやすいレイヤと言えます。 この投稿では、Controller や Model の肥大化を極力防ぐためのレイヤわけを、Android アプリ向けに書いていきます。 Activity を綺麗に保つ Activity は、Controller として、様々な UI から受けるイベントを受けて、適切にハンドリングする役割を持っています。 OptionsMenu や ContextM

    やさしい設計 〜 Android 編 - Qiita
    raimon49
    raimon49 2014/02/06
    onOptionsItemSelectedを例にした処理の委譲
  • これであなたもテスト駆動開発マスター!?和田卓人さんがテスト駆動開発問題を解答コード使いながら解説します~現在時刻が関わるテストから、テスト容易性設計を学ぶ #tdd|CodeIQ MAGAZINE

    和田卓人さんによるテスト駆動開発問題解説の寄稿です! バグのないよいコードを書くには、よいテスト設計が重要です。今回は現在時刻に関する問題と、その問題で提出された実際の解答コードを紹介しながら、どのようにテスト設計し開発していくのかを解説していきます。 ゲスト解答による解答コードも公開中! by CodeIQ運営事務局 はじめに こんにちは、和田(@t_wada)です。今日は先日出題させていただいたTDDに関する問題の総評を行いつつ、テスト容易性設計について考えてみたいと思います。 問題文 私が出した問題は、以下のようなものでした。 問1. 下記の仕様をテスティングフレームワークを使ってテストコードを書きながら実装してください。 【仕様1】 「現在時刻」に応じて、挨拶の内容を下記のようにそれぞれ返す機能を作成したい。 (タイムゾーンはAsia/Tokyoとする) 朝(05:00:00以上

    これであなたもテスト駆動開発マスター!?和田卓人さんがテスト駆動開発問題を解答コード使いながら解説します~現在時刻が関わるテストから、テスト容易性設計を学ぶ #tdd|CodeIQ MAGAZINE
    raimon49
    raimon49 2013/12/04
    「現在時刻」を扱うお題で、いかに疎結合なテストを書くか。設計まで踏み込んでいて勉強になる。
  • from old Java to modern Java

    ピュアJavaだと思った?残念androidでした~いつからAndroidJavaだと錯覚していた?~

    from old Java to modern Java
    raimon49
    raimon49 2013/06/29
    Java 7 Objects.hash() Java 8 lambda
  • 若作りするためのJavaコード - 谷本 心 in せろ部屋

    このエントリーは Java Advent Calendar 2012 の10日目として書きました。 なんか色々あって、公開が2日ぐらい遅れてしまってごめんなさい(><) 前日は、Hideki Kishida (@quicy) さんの「Xtend の Lambda とストリーム処理」です。 http://legacy-style.blogspot.jp/2012/12/xtend-lambda.html 翌日は、Katsumi Kokuzawa (@kokuzawa) さんの「WiiRemoteJで遊ぼう on OSX 10.8.7」です。 http://kokuzawa.github.com/blog/2012/12/11/wiiremotejdeyou-bou-on-osx-10-dot-8-7/ どちらも今風ですね! そんな中、若干、加齢臭が気になり始めたこの頃の私としては、 若さアピ

    若作りするためのJavaコード - 谷本 心 in せろ部屋
    raimon49
    raimon49 2013/01/09
    モダンJava Pythonのwith文みたいいなtry-with-resources構文というのがあるらしい(しかし、この可読性は……
  • Java の語彙で Maybe を説明してみる - ぐるぐる~

    java-jaで例外処理の話をしてきました - 西尾泰和のはてなダイアリー を読んで。 Maybe は値があるかないかを型で表すことができます!そう、直和型なんです!とか言われてもイミフだと思うのです(リンク先のエントリがそう説明してるわけではないですが)。 Java の語彙で Maybe の説明をできたら嬉しい人もいるんじゃないかなぁ、とかなんとか。 ただし、書いてたら結構長くなりました。時間がある人はどうぞ。 Maybe? null より安全に「値がないこと」が扱えるものだよ スタート地点としてはこれでいいでしょう。 以降で、「なんで安全なの?」という全うな疑問に答えてみたいと思います。 問題点 int で説明すると煙に巻いてしまうような気がしたので、User クラスを見てみます。 import java.util.*; class User { final String name;

    Java の語彙で Maybe を説明してみる - ぐるぐる~
    raimon49
    raimon49 2012/06/29
    >Maybe は汎用的な Null Object / nullかも知れない型として表現することでコンパイル安全を保証する。ラムダ入ってからがC#みたいで表現力が高い。
  • ProxyパターンとProxyクラスと黒魔術 - プログラマーの脳みそ

    Java Advent Calendar 2011 の18日目です。 17日目の記事は JavaEE使ってウェブアプリケーションつくろうよ - 水まんじゅう2、 19日目はJavaエバンジェリストの寺田さんですよ。乞うご期待。 プロローグ 後:「先輩、いまさらなんですけど上からSQLの遅いところを調査してくれって依頼がきてて、全クエリの実行時間を実データで集計とれと言ってるんですけど。これ、SQL発行前後で時間計測するしかないですかねー。このプロジェクトどんだけクエリ発行してるところあるんだろ…。簡単にやれないですかね。とりあえず調査に1週間かかるって返答しちゃいましょうか」 先:「まぁまて。全部のクエリにもれなく時間計測のコードを挿し込むとかやってられんし、手作業で漏れも発生するだろ。こういうのはオブジェクト指向で解決するのがスマートだ。あ、とりあえず調査に1週間かかるとは返答しておけ」

    ProxyパターンとProxyクラスと黒魔術 - プログラマーの脳みそ
    raimon49
    raimon49 2011/12/18
    「ここからダサくなる」
  • 2011年度生物情報科学演習 リファクタリングとデザインパターン

    コードのリファクタリングとデザインパターン C++, Javaなどオブジェクト指向の考え方、クラスを上手に使うとコードをよみやすく整理できる場合が多くあります。 プログラムの動作を変えずにコードを整理することをリファクタリングと呼びます。 最初からコードを上手に設計するのは、熟練のプログラマでも難しいものです。少人数で開発する場合は、むしろ積極的にコードをリファクタリングし、アルゴリズムの見通しをよくするとよいでしょう。コードを修正する際にはversion管理ツールを使えるようにしておくと安心です。以前のソースコードの状態にいつでも戻せます。 ソースコードの版管理ツール Mercurialの使い方 http://www.xerial.org/wiki/lecture/2010/Mercurial デザインパターンに関しては、GoFや結城浩さんのなどを読むと理解はできると思いますが、

    raimon49
    raimon49 2011/12/03
    ScalaならVisitor patternは組み込みの構文で
  • Javaプログラマが知るべき9のこと - @katzchang.contexts

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

    Javaプログラマが知るべき9のこと - @katzchang.contexts
    raimon49
    raimon49 2011/02/09
    千里の道も一歩から。Javaに限らず普遍的なアンチパターンとして良い記事。
  • Javaプログラミング能力認定試験課題プログラムのリファクタリングレポート(その1) - 達人プログラマーを目指して

    昨日書いたSI業界(日)のJavaプログラマーにはオブジェクト指向より忍耐力が求められている? - 達人プログラマーを目指してが予想以上に大きな反響があり驚いています。特に、あの有名なひがさんにもSI業界の現状と未来に関してコメントをしていただきました。(SI業界からはさっさと抜けだしたほうがいい) ただし、SI業界の今後がどうかということや新しいサービスを使ったビジネスのことについては、私自身最先端技術に十分にキャッチアップできておらず、自分の考えを整理できていないため、一旦考えないことにして、ここでは例の試験問題の設計とリファクタリングについて考察してみたいと思います。具体的な例に基づいて説明することで、オブジェクト指向がSI業界の多くの方々に考えられているほど理解不能なものなのではなく、問題を単純化し、プログラムの保守性を桁違いに向上させるうえできわめて重要な役割を果たすということ

    Javaプログラミング能力認定試験課題プログラムのリファクタリングレポート(その1) - 達人プログラマーを目指して
    raimon49
    raimon49 2011/01/16
    試験問題にマジレス
  • 1