RDBMSとNoSQLの特徴、メリット・デメリットについて調べたのでそのメモです。今まで言葉の表面的な部分ばかりを見てきていたことを反省中。自分の頭の中にあるキーワードをしっかりと構造化していくように、基礎固めを頑張ります! 🎳 RDBMS概要 1件のデータを複数のフィールドの集合として表現する。データの集合をテーブルで表す ACID属性をもつ => ACID (コンピュータ科学) - Wikipedia 強み* トランザクションによってデータの一貫性を保証 * 正規化(キーに基づいて複数テーブルを連鎖させることでデータ管理) => 更新コストの削減 * SQLを使うことができ、複雑な条件での検索や集計を行う事ができる * 運用実績が豊富で、ノウハウが蓄積されている 弱み(1) データの読み込み部分に関してはレプリケーションによってスケールさせることができる。 一方で、書き込み部分におい
2016年5月27日追記 こんにちは。共同開発部 開発担当の戸澤です。 2012年に書かれた以下の記事内容に関しては、ApplicationContextの使用を推奨する点で不適切であるとご指摘をいただいています。 詳しくは http://ytrino.hatenablog.com/entry/2016/05/26/033936 をご覧ください。 誤解を招かないよう、この追記分ではみなさんのご指摘を踏まえた Context の使い方について追記しています。オリジナル記事は後半に残しています。みなさまのご指摘に感謝します。 Contextの使い方 AndroidにおけるApplicationContextとActivityContextの使い分けについてですが、 Application全体のライフサイクルでcontextに依存する必要がある処理以外は、基本的にActivityContextを
Android Studioでプロジェクトを作ると、 androidTestが自動的に生成されるので、 Android Studio で Unit Testを試してみました。 準備 public class Sample { //めっちゃ適当ですみません。 public boolean isTest(){ return true; } public boolean isNotTest(){ return false; } } alt + enterで、 Create Testメニューを実行すると、 このようなダイアログが表示されまして、 必要に応じて、setUp/tearDownにチェックを入れます。 またすでに実装されているメソッドの一覧が表示され、 チェックを入れると、自動的にtest用メソッドが追加されます。 OKを押し進めると、 Test用クラスが生成されます。 Test実行 メニ
2016 - 05 - 23 Rubyにインターフェース機能が存在しないわけ Ruby プログラミング言語 にはインターフェースを定義する機能を持つものが多いが、 Ruby にはそれに準ずるような機能がない。 Ruby がなぜインターフェース機能を備えていないか、経験的になんとなく分かるものの改めて言語化しようとすると難しいもので、文章にして何度も同じことに思考を巡らせないよう明らかにしておく。 *1 他言語ではインターフェースをどのように扱っているか 他言語のインターフェース定義にあたる機能を見てみる。 C言語 のヘッダファイルや、 PHP のinterface 演算子 、Swiftの プロトコル など。 このうち C言語 のヘッダファイルは コンパイラ が必要とするものであるため、除外する。 Swiftの プロトコル Swiftの プロトコル は強力なインターフェース機能である。 例え
基本情報 SharedPreferencesはデバイス内にデータを保存するための仕組みです。 保存されたデータはActivityが終了しても保持されるので、基本的にはアプリの設定を保存するために用いられます。 保存できるデータは以下の5つです。 String型 boolean型 int型 long型 float型 インスタンスの取得方法 インスタンスの取得方法には以下の3つのメソッドがあります。 Context#getPreferences(int) Context#getSharedPreferences(String, int) PreferenceManager#getDefaultSharedPreferences(Context) ではそれぞれの使い方について見ていきましょう Context#getPreferences(int)
Google Cloud Messagingの使い方が少々変わっていたらしい 以前弊社の記事で、 Google Cloud Messaging(以下GCM)のセットアップから使い方について紹介しました。 ※GCMとは、AndroidでPush通知を利用するための仕組みです 最近仕事でGCMを使う機会があり、記事を参考にセットアップしようとしたのですが、 どうやら最近はセットアップ方法が前と少し変わっているみたいだったので、ここにあるサンプルと以前の記事を参考にして、 最近のGCMセットアップ&実装をあらためてやってみます。 環境構築方法 今回使用した動作環境は以下のとおりです。 OS : MacOS X 10.9 Eclipse : 4.2 ADT Pluginはインストール済み、GCMを実装するサンプルのAndroidプロジェクトは作成済みとします。 サンプルプログラムの作成 1.API
SharedPreferenceの基本 SharedPreferencesはアプリの設定データをデバイス内に保存するための仕組み。XML形式で保存されます。 (要するにAcitivityが破棄されてもCommitさえされていれば保存されている、ということ) キー・バリュー形式で保存され、主にテキストや数値の保存を得意とします。 (Gsonを使うことで無理やり(?)オブジェクトなどのデータの保存も可能にすることができます。後半に解説) 基本的には String int long float boolean を保存します。 インスタンスの取得 まずはインスタンスを取得します。 取得には Context#getSharedPreferences()メソッドを用います。
はじめまして。 6/1より入社いたしましたAndroidエンジニアの釘宮です。よろしくお願いいたします。 今日はAndroidの設計について語ってみようと思います。 その前に 「良い設計とはなにか」という議論が「正義とはなにか」という議論のようにいつまでたっても結論がでないのは、環境やチームメンバのスキルセット、ステークホルダーによって目指すべきゴールが変わるためだと考えます。 つまるところ、設計に正解はありません。 そのため以下で話すことは、「これが設計の正解だ!!」というわけではなくて、「こういう設計の仕方するとうまくいくっぽい」くらいのノリです。 あと、特にMVCとかDDDとか人によって解釈のズレが起きやすいところなどは、冗長になるのを嫌って自分の解釈で言い切っています。ご了承ください。 設計の目的について ハードルが下がったところで、早速。 まず設計の目的ってなんでしょうか? この
Javaのアクセス修飾子protectedで少しハマったので、調べた内容をメモしておきます。 通常、protectedと指定されたフィールドやメソッドは「同一package内と、そのクラスを継承したサブクラス内からアクセスできる」と説明されます。私自身も同様の理解だったのですが、次のようなケースで予想外の挙動となりました。 クラスBaseとChildが別のpackageに属する場合、 package base; public class Base { protected void baseMethod() { System.out.println("Base method."); } } package child; import base.Base; public class Child extends Base { public void childMethod(Base base)
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く