サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
衆院選
blog.sojiro.me
某先輩の書評を読んで気になったので 『現場で役立つシステム設計の原則』 という本を読んだ。 とあるプロジェクトでその先輩に自分の書くコードについて色々ご指摘をいただいていたタイミングであり、自分としてはかなり参考になった点があるので備忘も兼ねて書いてみる。 今回は特に「値オブジェクト」と「コレクションオブジェクト(ファーストクラスコレクション)」について。 値オブジェクト 値オブジェクトはアプリケーションに登場する様々な値に対してその値を扱うための専用クラスを作るという考え方。 値ごとにクラスを定義する 値オブジェクトの考え方をルール化すると、「プリミティブ型や String 型は使わない」という方針となる。 例えば、先述のプロジェクトのコードでは登場する様々な値を String 型で表現していた。 userId nickname address etc... これらはサーバーリクエストの
GAE の Task Queue についてざっくり。 具体的な実装に関しては別エントリに書こうと思います。 Overview アプリケーションの処理(task)を Task Queue API に渡す(queue)ことでユーザーからのリクエスト外で非同期に処理させることができる task はスケーラブルな GAE の Worker モジュールによってバックグラウンドで処理される Task Queue には以下の2つのタイプがある Push queues queue を処理する間隔をあらかじめスケジュールすることができる queue は GAE のモジュールへのリクエストとして処理される task の処理には期限がある 自動的にスケーリングするモジュールで処理するものは 10 分以内 そうでないモジュールで処理するものは 24 時間以内 Pull queues GAE は queue を処理
同一 kind の entity でも違う property を持ちうる それぞれの entity は同名の property でも型の違うデータを持ちうる Other storages 複数の table の join や 複数のカラムに対する不等号比較など、すべての SQL 操作が必要なら Google Cloud SQL ACID transaction を必要としないスキーマレスなデータを扱うなら Google Bigtable オンラインで分析されるデータを扱うなら Google BigQuery 画像や動画などの変更がない大きなデータを扱うなら Google Cloud Storage Entities ひとつの entity は1つ以上の property をもつ property は1つ以上の値を取りうる Keys key は entity を特定する key は以下を含む
Vimでは <TAB> やインデントについてその挙動を設定することができる。いくつか設定方法があるが、これまでこれらに関する .vimrc の設定は何も考えずにただコピペしていたので記述を見直してみた。 tabstop tabstop で <TAB> にいくつのスペースを設定するか決めることができる。 set tabstop=4 これで <TAB> に半角4つ分が設定される。 <TAB> の挙動 そもそも <TAB> はどのような挙動をするのか。 何となく、指定した数の分だけ半角スペースを入れてくれるもの、と思っていたが、 正確には行頭からの文字数が<TAB> に指定された半角数の倍数になるようにスペースを補完するもの、というのが正しいかもしれない。何を言っているかわからないと思うので以下で実験する。 set tabstop=4 set list set listchars=tab:>.,
Redisで扱えるデータ型 String List Set Sorted Set Hash String 文字列型 文字列や数値など、Keyに対して1つに定まる値。 値のset set [key_name] [value] # 1つのkey-valueをsetする mset [key_name_1] [value_1] [key_name_2] [value_2] # key-valueの組を複数setする 値のget get [key_name] # 1つのkeyに対するvalueをgetする mget [key_name_1] [key_name_2] [key_name_3] # 複数のkeyに対するvalueをgetする 使用例 redis> set name Steven OK redis> get name "Steven" redis> mset number 8 color
コンポーネント間のやり取りにはステートフル/ステートレスという考え方がある。FTPではステートフルなやり取りが、HTTPではステートレスなやり取りが採用されいるが、それぞれの特徴についてまとめてみる。 セッション状態(アプリケーション状態) システムにログインしてからログアウトするまでの一連の操作をセッションと呼ぶ。その一連の操作の中のそれぞれの状態をセッション状態と呼ぶ。 ステートフル ステートフルなやり取りではサーバーはクライアントのセッション状態を保持している。 メリット やり取りが完結に済む それによりネットワークの帯域を節約できる デメリット クライアントの状態を都度把握しておかなければいけないのでクライアントが増えると負荷も増える サーバーを複数台設置する場合にはそれぞれのサーバー間でクライアントの状態を同期しなければいけない これらの理由によりスケールアウトには向かない ステ
SlackにBotを入れたいと思い、少し調べてみたところHUBOTがやはり簡単らしいのでやってみた HUBOT用のAPI Tokenを取得する まずはSlackのチームメニューからConfigure Integrationsを選択 {% img /images/slack_hubot/team_menu.png %} 様々な外部サービスとの連携メニューからHUBOTを選択する {% img /images/slack_hubot/add_hubot.png %} 追加するbotの名前を入力 {% img /images/slack_hubot/set_botname.png %} ここまでのステップを踏むとAPI Tokenが記されたページが表示される そしてこの段階でbotがSlackにjoinする {% img /images/slack_hubot/join_bot.png %} H
このページを最初にブックマークしてみませんか?
『blog.sojiro.me』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く