Build a website. Sell your stuff. Write a blog. And so much more.
思いのほか前回のRailsプチ・デザインパターンの紹介に反応があったので、こういう小ネタも出していったほうがいいのかな、ということで第二弾。 ソーシャル系アプリだと、ユーザとユーザを関連付ける多対多のモデルがたくさんでてきます。たとえば、一般的なところではフォローとかブロックとか足あととか。さらにデーティングサイトになると、ウィンクだったり、Secret admirer(こっそりlikeするけど両思いだったらおめでとうって通知がくるってやつ)だったり、いろいろなモデルがこのパターンにあてはまります。 この場合、「AがBをフォローしている」「BがAをフォローしている」「AとBがお互いにフォローしている」という3つの状態があるわけですが、相互フォローの状態は「AがBをフォローし、かつBがAをフォローしている」と読み替えてSQLでも記述可能なので、以下ではシンプルに単方向のグラフで全てを扱うもの
ISO 5218は、言語に依存しない1桁のコードによるヒトの生物学的な性別の表記に関する国際規格。正式な題は「Information technology — Codes for the representation of human sexes」(情報技術 — ヒトの性別の表記のためのコード)である。データベースアプリケーションなどの情報システムで使用される。 国際標準化機構(ISO)の Data Management and Interchange Technical Committee(データ管理と交換技術委員会)が、この国際規格の作成に携わり、1976年11月に勧告し、2004年7月に更新された。 ヒトの生物学的性別のコードを要求するほとんどのアプリケーションの要件を満たしているとする。一方で、特定の医学的・科学的用途、またはヒト以外の性別のコードが必要となるアプリケーションにおい
TL;DR コーディングやシステムは分かるけど、最終的に使いやすい設計やクライアントさんが納得するようなデザインにならない。納品後に使いにくい箇所があると言われる。そうなる前に「何となく進めない」ようにサイト制作やサービス・アプリを作成する前の段階で知っておきたい知識。UX・UI・IA の違いが漠然としているときに。 IA(情報アーキテクチャ) 1.基礎知識 情報アーキテクチャとは Web サイト全体の設計図、情報を分かりやすく伝えること。主にIA(インフォメーションアーキテクト)が担当します。国内ではディレクターが担当する会社も多いと思います。情報アーキテクチャはサイトを見た目の印象だけでなく、目に見えないサイト構造をデザインすることで、わかりやすいサイトにする技術。 [スライド] 社内の IA(情報アーキテクチャ)研修の講師をしてみた。:そのフォローアップ | future-proof
ドメイン駆動設計というのはソフトウェア工学のおしゃれな本で,Kindleで買えたので読んだ.ドメインを軸に戦略的に設計しましょうという本.2週間くらいで読めて良い体験できてよかった. ソフトウェアを,ユーザーインタフェース,アプリケーション,ドメイン,インフラストラクチャという4つの層に分けて,一番重要なのがドメイン層で,ドメイン層にアプリケーションが存在し得る理由がある.銀行システムだったら,口座とか利子みたなやつがドメイン層で,口座がよくできてると銀行としてうまくいく.ATMのタッチパネルというのはユーザーインタフェースで,どんなにATM押しやすくても,ドメイン層に,口座という概念がなくて,ただのハッシュだったりすると,銀行を運営して金を儲けるとか,新たな金融商品とか作るのが困難になる.インフラ層は永続化とかするのだけど,インフラ層がいかによくても,意味ないデータを保存していては銀行倒
アプリを作っていてありがちなこと Android には、画面を構成するための Activity というコンポーネントがあり、概ね MVC フレームワークの Controller に相当する機能を持っています。 MVC といえば、肥大化する Controller というのがよくある問題として挙げられますが、Activity も例に漏れず、往々にして肥大化しがちです。 また、Model も、その責務を詰め込んでいくと肥大化しやすいレイヤと言えます。 この投稿では、Controller や Model の肥大化を極力防ぐためのレイヤわけを、Android アプリ向けに書いていきます。 Activity を綺麗に保つ Activity は、Controller として、様々な UI から受けるイベントを受けて、適切にハンドリングする役割を持っています。 OptionsMenu や ContextM
意外と知られていない構造化プログラミング、あるいは構造化プログラミングはデータも手続きと一緒に抽象化する、あるいはストロヴストルップのオブジェクト指向プログラミング史観 書いた人: ると 猫型プログラミング言語史観(1) 〜あるいはオブジェクト指向における設計指針のひとつ〜という記事がありました。手続き型からの発展としてのオブジェクト指向という史観を書いた記事です。しかし、そこで次のように述べられている史観は少々単純化しすぎです。 手続き型プログラミングでは手続きを抽象化することで保守性を挙げることに成功したが、データを守ることには失敗してしまった。そこでオブジェクト指向はデータと手続きをひとかたまりにすることでデータを外から守るというコンセプトを打ち出した。 手続き型プログラミングの時代は、少なくとも思想的にはそこまで暗黒的ではありませんでしたし、「データと手続きをひとかたまりにする」の
今回は、性能要件を具体化するポイントを紹介します。皆さんは、性能要件に何を定めればよいと思いますか。 システムの性能要件で、「Webアプリケーションの画面レスポンス時間は3秒以内であること」「バッチアプリケーションは毎日午前0~午前5時の間に終了すること」としか定義していないプロジェクトを見かけます。この場合、以下のような問題が潜んでいます。 (1)全機能の処理時間を同じレスポンス時間に収めなければならない 全機能に対して同じレスポンス時間を目標とするのは現実的ではありません。なぜなら、機能によって求められるレスポンス時間と処理の複雑度は異なるからです。 例えばコールセンターのシステムで、「(a)電話オペレーターが操作する画面」と「(b)管理者がマスターデータをメンテナンスする画面」があるとします。レスポンスの悪化が直ちにビジネス機会の損失につながる(a)の方が、求められるレスポンス時間は
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
1999/09/03 更新 石井 勝 さて,このセクションではデザインパターンを統一的に理解するために,「 Open-Closed Principle (OCP) 」 という設計ルールに基づいてパターンを眺めてみることにします.まず OCP の意味と解説を行い,その後デザインパターンを OCP の観点から見てみます.実は,デザインパターンのうちの多くは OCP を満たすために用意されたものと考えることができるのです.このセクションでは, OCP を理解し,数あるデザインパターンの中からどういう場合にどのパターンを使うのが一番効果的なのかを考えます. GoF のデザインパターンは,全部で 23 個ものパターンがあります.このデザインパターンは,多くの局面で繰り返し現れる設計を抽出したものですから,オブジェクト指向のエッセンスを集めたものだと言えるでしょう.オブジェクト指向には,カプセル化,継
ドラゴンボールといえば、大変に人気の高い国民的、いや世界的な漫画、アニメですが、昨日匿名ダイアリーでドラゴンボールをネタにしたオブジェクト指向の解説がホッテントリに入っていました。 ドラゴンボールで学ぶオブジェクト指向 多くの人に親しみやすい題材でオブジェクト指向の考え方を解説するというのは非常に興味深い試みなのですが、オブジェクト指向の説明としては不適切なところがあり、ちょっと残念な内容になっています。私自身ドラゴンボールの専門家(ドメインエキスパート)ではないため、不正確なところがあるかもしれませんが、ストーリーを思い出しながら、私なりにドラゴンボールをネタとしたオブジェクト指向の解説にリトライしてみたいと思います。 なお、オブジェクト指向でもプログラミング言語によって表現できる内容が異なるため、当然設計技法は違ってきます。ここではJava、C++、C#、Visual Basicといっ
1 はじめに Javaプログラミングを行っていくうえで、大きな関門となるのはオブジェクト指向分析/設計でしょう。「クラスとオブジェクトの違いは」といった初歩的なものから、「再利用性を高めるためのフレームワークとコンポーネントの責任の配分の度合」といった高度なものまで、Javaプログラミングの要諦(ようてい)はオブジェクト指向分析/設計との関係の中にあるに違いありません。 Javaプログラマという立場からオブジェクト指向分析/設計を取り巻く状況を整理してみるのが本稿の目的です。 業界標準のオブジェクト指向モデリング言語であるUMLと、代表的なオブジェクト指向分析/設計プロセスであるユニファイドプロセス、そして最近発展が著しいパターン技術をベースにJavaプログラマに取ってのオブジェクト指向分析・設計の枠組みを総括してみました。 2 オブジェクト指向とは何か オブジェクト指向といえばクラスやイ
stop using numbers as IDs. just use UUIDs. seriously — Postgres: The Bits You Haven’t Found by pvh UUID の違い v1 Generate a UUID from a host ID, sequence number, and the current time. v3 Generate a UUID from the MD5 hash of a namespace UUID and a name. v4 Generate a random UUID v5 Generate a UUID from the SHA-1 hash of a namespace UUID and a name. この内、ID として利用できるのは v1 と v4 の2つ。v1 は最後 48 ビットがハード固有のノー
あけましておめでとうございます。 新年になり、すこしゆったりとした時間を過ごす事ができました。せっかくなので、去年からずっと思っていたUIデザイナーについて思った頭の中のことをまとめたいと思います。 WEBのUI設計よりも、明らかにゲームの方が難しい これは結構何度も言ってますが、ゲームの設計(ゲーミフィケーションのアプリ含む)の方が明らかに「やることが多い」です。 もっとプレイしてもらうには?ゲームが終わったときに、どのような設計になればもう一度やってくれる? チュートリアルは必要?やりこみ要素はどうする?ソーシャルとどうやって連携する?ポイント加算の条件は?アクショナブルフィードバックは?日常で使ってくれるような設計には何が必要?盛り込みすぎではないか? などなど、考えることが多いです。 このあたりは、ソーシャルゲームが本当に上手にできてるなーと思っているので、日々勉強しています。 ゲ
著者:アラ・コルマトヴァ(Alla Kholmatova) 翻訳者:浅野 紀予 インターフェース上のアイコンを、ただの装飾要素ではなく、その価値を高める要素にするのはどんなポイントでしょうか? 直感的であること、美的価値があること、記憶しやすいこと、それとも文化の違いを超えて知覚できること? 効果的なアイコンはそれらの特徴をいくつも持ちあわせていますが、私はあるひとつの尺度に注目したいと思います — それは認識速度、つまりそのアイコンをどれくらいの速さで発見し識別できるか、という尺度です。 単純な暇つぶしアプリなら、認識速度の違いは大した問題ではなく、体験全体を揺るがすほどの影響を与えはしないかもしれません。 でも、複雑なトレーディングアプリでは事情が異なるでしょう。その場合、アイコン表現に求められる要件は、一段とスピード優先の傾向を強めます。個々の要素の処理時間が、インターフェース全体
和田卓人さんによるテスト駆動開発問題解説の寄稿です! バグのないよいコードを書くには、よいテスト設計が重要です。今回は現在時刻に関する問題と、その問題で提出された実際の解答コードを紹介しながら、どのようにテスト設計し開発していくのかを解説していきます。 ゲスト解答による解答コードも公開中! by CodeIQ運営事務局 はじめに こんにちは、和田(@t_wada)です。今日は先日出題させていただいたTDDに関する問題の総評を行いつつ、テスト容易性設計について考えてみたいと思います。 問題文 私が出した問題は、以下のようなものでした。 問1. 下記の仕様をテスティングフレームワークを使ってテストコードを書きながら実装してください。 【仕様1】 「現在時刻」に応じて、挨拶の内容を下記のようにそれぞれ返す機能を作成したい。 (タイムゾーンはAsia/Tokyoとする) 朝(05:00:00以上
http://steps.dodgson.org/?date=20090705より。 Google社員によるWebKitのWeb Socketに関するdesign docがchromeの開発ML上で公開されている事を知った。 WebKit Web Socket design doc http://docs.google.com/View?id=dfm7gfvg_0fpjg22gh 鵜飼さんなど日本人Googlerによるdesign docらしい。 Googleの講演などでdesign docをよく書く文化があると言う事は知っていたが、実際に見るのははじめて。このdocの場合だいたい以下のような構成になっている。 目的 Web Socketでブラウザ=サーバー間双方向通信のための新しいAPIを定義するよー 背景 Ajaxとかでブラウザ=サーバーの双方向通信をよくやっているけど、httpを無理
日本での開発プロジェクトのほとんどではウォーターフォール型の開発手法が採用されており、アジャイルソフトウェア開発手法の採用はまだ数%程度といわれています。12月8日に都内で開催されたイベント「Agile Conference tokyo 2009」では、米国でアジャイルソフトウェア開発のコンサルタントなどを行っているThoughtWorksのマネージングディレクター、Xiao Guo氏が会場からの質問に答えるトークセッションが行われました。 このセッションでは、多くのエンジニアが現場でアジャイル開発ソフトウェア手法の導入や運用で悩んでいること、疑問に思うことを率直にGuo氏に投げかけています。セッションでやり取りされた質問と回答の一部を紹介しましょう。 意志決定を先延ばしすること 質問 日本のSIerに務めています。日本では、設計書をエクセルを使って画面や処理などの書類を作成しています。海
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く