DI(Dependency Injection)について たまにDI不要論とかがネットで話題になったりしてて,ふわっとDIの考え方は知ってたんだけど実際にDIパターンみたいな実装をしたことなかったのでちょっと触ってみた. DIとは 日本語だと依存性注入みたいな小難しい訳になってしまうんだけど,概念自体は難しくはないと思う. よく車の例で紹介されてて,例えば車クラスには( Aエンジンオブジェクト と Aタイヤオブジェクト )を属性に持ってるとする この車クラスのエンジン部分をBエンジンオブジェクトにごっそり切り替えようとした場合に車クラスにはAエンジンに依存した実装があるので置き換えるのが大変だ!! という問題が発生する public class Car{ public A_Engine aEngine; public A_Tire aTire; public go(){ aEngine.s
これらの一連の実装をどうするか考えていた。 前提 REST APIを使っている APIはデータモデル+メタデータを返す モデルはメモリキャッシュ、ファイルキャッシュにも対応する モデルとレスポンスの形式 メタデータの中にはページ情報など、サーバ/クライアントでデータをやりとりするのに必要なデータが入っている。 メタデータはモデルの外に持たせたいので、モデル層をResponseクラスでラップした。ここにページネーションのしくみを持たせることにする。 public class Response<T> { private T result; private Extra extra; private Observable<Response<T>> next; public T getResult() { return result; } public Extra getExtra() { retu
社内のRxJava勉強会用の資料です。 軽く、ほんの軽くRxJavaのサブセットを20行ほどで実装してみました。 https://github.com/gfx/RxInTheBox 概要 RxJavaはPromise的なもので、連続した「イベントの発生 / 値の生成」を扱えるようにしたもの Observableは「イベントが発生するかもしれない状態 / 値の生成中」という状態を表すオブジェクト OnSubscribeはObservableの中身で、「イベントの発生 / 値の生成」をObservableに通知するためのオブジェクト SubscriberはObservableから「発生したイベント / 生成された値」を受け取るコールバック RxJavaの捉え方 まずRxJavaですが、いくつかの捉え方があります。 リスト処理の抽象化・ストリーム化 Optional的な何か Promise的な何
会員事業部の山下(@tomorrowkey)です。 RxJavaが流行ってますね。最近Android版クックパッドでもRxJavaが導入されました。この記事は私がRxJavaを使うにあたって検証用のテストコードを書いたものをベースに、RxJavaの挙動をみなさんに紹介したいと思います。 目次 リスト操作でおさらいする基本的なRxJavaの使い方 Observable Operator Observer / Subscribe 実行順序を確認するサンプルプログラム 7つのサンプルプログラム リスト操作でおさらいする基本的なRxJavaの使い方 RxJavaはAPIアクセスやイベントトリガーやリスト処理などを多岐にわたる処理に使うことができます。このエントリでは初学者に一番分かりやすいリストの処理を例に解説します。 これは1から10までの値を渡し、偶数だけにフィルタリングしたうえ、値を10倍に
新年あけましておめでとうございます。 ブログで書き初めというのも粋かなと思いまして、仕事でAndroidでのMVPパターンを調べている一環でAn MVP Pattern for Androidを意訳してみました。それではどうぞ。 An MVP Pattern for Android Separating the presentation of the application's UI from the logic of its UI is usually a good idea. This separation of concerns creates more de-coupled code, which is much cleaner, and even allows for more unit testing coverage. Android bundles the UI and U
2014/11/8 Developers.IO by Classmethod.Inc 発表資料 Androidアプリケーション開発で読みやすく、変更に強く、テストしやすいコードを書くためにはどうしたらいいか? MVPパターンを用いた設計アプローチと実装例の解説。Read less
Incremental test design 昨年度追加されたISTQBのFoundation Level Extension Syllabus Agile TesterのAgile Testing Practicesの項にはテスト設計に関する興味深い記述がある [1]。 Incremental test design: Test cases and charters are gradually built from user stories and other test bases, starting with simple tests and moving toward more complex ones. アジャイルテストのテスト設計の特徴として ユーザーストーリーをテストベースとして用いる事 シンプルなテストケースの追加から始まり、より複雑なものへと変化して行く事 Increme
スマートフォンなどのモバイル端末用UIでよく用いられる「三」のマークのアイコンは、ハンバーガーのように見えることからアメリカでは「ハンバーガー」アイコンと呼ばれています。徐々に浸透してきたハンバーガーですが、UIデザインの優劣という観点から見た場合、「劣った醜い撲滅すべきものである」という意見が出されています。なぜハンバーガーがダメなのかについて、ジェームズ・アーチャー氏がデータ分析結果を基に理論的に解説しています。 The Hamburger Menu Doesn't Work - Deep Design http://deep.design/the-hamburger-menu/ 下の画像の赤丸で囲われたのが「ハンバーガー」。モバイル端末UIだけでなくデスクトップUIでも広く普及したアイコンで、クリックすることで主にメニューなど他の追加情報を表示させられます。 ◆不親切 一般的に普及し
薬物中毒もスマホ依存も原因は同じ 多くの人が間違えている、中毒者への正しい接し方とは Everything you think you know about addiction is wrong ジャーナリストのJohann Hari(ヨハン・ハリ)氏は身近にいる薬物中毒者(薬物依存症患者)を助ける方法はないかと考え、世界中の中毒経験者や中毒について研究している研究者に会いに行きます。3万マイルを旅して、たくさんの人に会った彼が気付いたことは「中毒について知られている全てのことは間違っている」ということでした。ネズミをケージに入れ、ただの水とヘロインかコカインを混ぜた水を置いた実験では、1匹のみで孤立させたネズミはドラッグの入った水を飲み、複数の仲間とつながりあえる環境のネズミはドラッグの入った水を飲まなかったという結果が出ました。人間も生まれつき結束を必要としています。社会での繋がりを見
最近のLenovoのBIOSのアップデートに以下のものがある。 Lenovo Newsroom | Lenovo Statement on Lenovo Service Engine (LSE) BIOS この脆弱性はLenovoの一部の顧客用PCにインストールされているBIOS中に存在するMicrosoft Windows機構に関与する機能、Lenovo Service Engine(LSE)に関連したものである。 などと抽象的でわけのわからない文面で脆弱性の説明と修正した旨が案内されている。では具体的にどんな脆弱性だったのか。驚くべきバカなことが行われていた。 Lenovo G50-80 dialog box - Ars Technica OpenForum Windows 7か8をブートする前に、BIOSはC:\Windows\system32\autochk.exeがLenovoの
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く