タグ

Architectureに関するyterazonoのブックマーク (18)

  • あなたのエラーコードは何ですか?

    システムにおいて必ずといっていいほど存在するエラーコード。 このエラーコードってプロジェクトによってさまざまな形式だったりします。 そんなエラーコードとそのハンドリングで比較的上手くいっているパターンについてご紹介します。 具体的には列挙体を使ったエラーハンドリングです。 エラーコードの型は何ですか? ソフトウェアやハードウェア、およそコンピュータに関わっていれば必ずといっていいほど目にするエラーコード。 皆さんが作っているシステム、日々携わっているシステム、それらのエラーコードってどのようなものでしょうか。 より具体的に言えばどんな型のエラーコードを取り扱っていますか? 例えば数字です。 80011 こんなエラーコードがあるでしょう。 例えば文字列です。 'E1000' こういったエラーコードもあるでしょう。 色々なエラーコードが存在する世の中で今挙げたエラーコードを取り扱っている方もい

    あなたのエラーコードは何ですか?
  • WebサービスにおけるCSS再設計で考えたこと

    なぜこの記事を書こうと思ったか 配属されてからは、業務でCSSを書くといったら、Bootstrapのclass名を付与したり、機能追加の際にちょっと書くといったことだったのですが、大幅にサービス全体のCSSを見直さなきゃいけない機会があったので、どんなことを考えたのか書いておきます。 CSSのリファクタリングや再設計は工数がかかる上に、そこまで対価がない結構辛いことだと思います。また運用していて数年が経てば大体の場合がCSS設計は崩壊していきます...。 特に途中で気づいた、最初に決めておけばよかったということも多々あったので参考になればと思います。 前提条件 下記のような時に、この記事は役に立つのではと思って書いてます。 すでにあるWebサービスの大幅なデザイン改修がある 新しくCSSを書かなきゃいけないページが5ページ以上ある 既存のCSS設計を見なさなきゃいけない(CSSファイルが6

    WebサービスにおけるCSS再設計で考えたこと
  • その設計、変更に強いですか?単体テストできますか?...そしてクリーンアーキテクチャ - Qiita

    はじめに アーキテクチャや設計の書籍や記事、これまでの経験も踏まえ、学んだ事をここにまとめたい。(まだ、勉強中なので微妙なところもあるかもしれません。お気付きの点があればご指摘いただけるとありがたいです。) 参考文献や参考記事は、当に良書、良記事で非常に参考にさせていただきました。 生意気なタイトルにしてしまいましたが、自分への戒めということもあってこのタイトルにさせていただいたので、ご容赦ください。 ある共通した話題 設計やアーキテクチャについて書かれた書籍や記事を読んでいく中で、言葉は違えどかなりの高確率で共通するテーマが存在した。 そう、それが 「変更に強くなろう」 といった趣旨のテーマだ。 アーキテクチャや設計に関する書籍や記事は様々な方法論で、これを実現しようとしていた。 今回のテーマと記事の構成 今回は、「変更に強くなろう」というテーマの中で重要だと感じた概念や考え方をまとめ

    その設計、変更に強いですか?単体テストできますか?...そしてクリーンアーキテクチャ - Qiita
  • Clean ArchitectureでAPI Serverを構築してみる - Qiita

    この記事では、アーキテクチャを採用する理由、次にClean Architectureの概要、最後にアプリケーションの構築をしていきます。 この後詳しく見ていきますが、Clean architectureの概念は比較的シンプルでわかりやすいものだと思います。しかし実際コードに落とし込んだ時、これってどう実装すればいいのかな?と迷うことがあったので、自分の理解も深めるために実際にAPI Serverを構築していきたいと思います。 また、サーバーサイドでの採用事例をあまりみないので誰かの参考になればいいかなと思います。 サンプルコードは、Go言語です。 アーキテクチャを採用する理由 アーキテクチャに期待することは、関心の分離です。 関心の分離を正しく行うことで、次のようなメリットがあると思います。 再利用性の高い設計になり生産性が向上する コードの可読性が上がり、メンテナンスが容易になる 変化に

    Clean ArchitectureでAPI Serverを構築してみる - Qiita
  • クリーンアーキテクチャの書籍を読んだのでAPIサーバを実装してみた - Qiita

    はじめに クリーンアーキテクチャの書籍を読んだので、実際にクリーンアーキテクチャの考え方を採用したREST APIGO言語で実装してみた。 ↓↓↓↓ソースコード↓↓↓↓ https://github.com/yoshinorihisakawa/sample-api-hoop/tree/develop この記事ではクリーンアーキテクチャの説明というよりかは、実装ベースの実践的な内容にしている。 対象読者 ・クリーンアーキテクチャで実装されたソースコードを理解したい人 ・クリーンアーキテクチャの右下の図がよくわからない人 ・アーキテクチャについて勉強を始めた初心者 クリーンアーキテクチャとは? クリーンアーキテクチャとは、8th Light, Inc.のブログ記事で提案されている。 一言で言うと、依存関係をコントロールし持続可能なソフトウェアを実現するための体系的な手法である。 ※ DIやD

    クリーンアーキテクチャの書籍を読んだのでAPIサーバを実装してみた - Qiita
  • 書籍「Clean Architecture 達人に学ぶソフトウェアの構造と設計」を読んだので大事なポイントを自分のためにまとめてみた - Qiita

    書籍「Clean Architecture 達人に学ぶソフトウェアの構造と設計」を読んだので大事なポイントを自分のためにまとめてみたGo初心者まとめアーキテクチャCleanArchitecture はじめに Clean Architecture 達人に学ぶソフトウェアの構造と設計を読んだ。 なぜソースコードを綺麗に書くのかから始まり、オブジェクト指向、コンポーネントの原則、アーキテクチャと体系的にまとまっている良い内容だった。 この記事では、書の内容の引用を踏まえながら自分の考えの振り返りをまとめたものである。 実際にGoで実装したりしたので、なにか間違いなどあれば指摘していただきたい。 クリーンアーキテクチャの書籍を読んだのでAPIサーバを実装してみた 対象読者 ・Clean Architecture 達人に学ぶソフトウェアの構造と設計を読むか迷ってる人 ・Clean Architec

    書籍「Clean Architecture 達人に学ぶソフトウェアの構造と設計」を読んだので大事なポイントを自分のためにまとめてみた - Qiita
  • ぼくがかんがえたさいきょうのMvc

    2. だれ? かるぱねるら(karupanerura) Perl, JS, Java, elisp, zsh ソーシャルゲーム開発者 Mobile Factory, Inc. Chiba.pm 13年9月20日金曜日

    ぼくがかんがえたさいきょうのMvc
  • 第3のモバイルOS狙うFirefox OSとTizen、何が違う?

    先週スペイン・バルセロナで開催された世界最大級のモバイル関連の展示会「Mobile World Congress 2013」では、ここ数年存在感を示していた米グーグルの不在もあってか(関連記事)、第3のモバイルOSを狙う「Firefox OS」(関連記事、写真1)と「Tizen」(関連記事、写真2)の動きが大きな注目を集めた。 日の携帯電話市場からの視点で見ても、NTTドコモがTizen支持、KDDIがFirefox OSサポートと真っ二つに分かれており、興味は尽きない。いずれもWebアプリに最適化されたモバイルOSといわれるが、何が違うのか。アーキテクチャ面からその特徴に迫り、さらには現地で取材したからこそ感じた両陣営の今後について占ってみよう。

    第3のモバイルOS狙うFirefox OSとTizen、何が違う?
  • CAP定理 - Wikipedia

    CAP定理はブリュワーの定理とも呼ばれ、分散コンピュータシステムのマシン間の情報複製に関する定理。ウェブサービスを想定して作られた定理。 ノード間のデータ複製において、同時に次の3つの保証を提供することはできない[1][2]。 一貫性 (Consistency) すべてのデータ読み込みにおいて、最新の書き込みデータもしくはエラーのどちらかを受け取る。 可用性 (Availability) ノード障害により生存ノードの機能性は損なわれない。つまり、ダウンしていないノードが常に応答を返す。単一障害点が存在しないことが必要。 分断耐性 (Partition-tolerance) システムは任意の通信障害などによるメッセージ損失に対し、継続して動作を行う。通信可能なサーバーが複数のグループに分断されるケース(ネットワーク分断)を指し、1つのハブに全てのサーバーがつながっている場合は、これは発生しな

  • CAP定理を見直す。“CAPの3つから2つを選ぶ”という説明はミスリーディングだった

    分散システムにおいては以下の3つの要素のうち2つしか同時に満たすことができない、というCAP定理を提唱したのは、Eric Brewer氏でした。 C:Consistency(一貫性) A:Availability(可用性) P:Tolerance to network Paritions(ネットワーク分断への耐性) 一般にリレーショナルデータベースでは、一貫性(C)と可用性(A)をできるだけ保証する代わりに、ネットワーク分断への耐性(P)を犠牲にしています。ネットワークが途中で切れたり大きく遅延した場合、動作が保証されなくなってしまうわけです。 一方でNoSQLでは一貫性(C)よりも可用性(A)とネットワーク分断への耐性(P)を優先させるものが多く、分散システムでの動作に向いていると説明されます。このようにNoSQLの説明にこのCAP定理がしばしば引用されることになり、NoSQLの普及とと

    CAP定理を見直す。“CAPの3つから2つを選ぶ”という説明はミスリーディングだった
  • リソースモデリングパターン

    Webアプリケーションについて、RESTfulなURL・リソース設計のパターンを見出すことで、 どのパターンかを判断するだけで、既存の Good Practice が適用できる 名前をつけて呼べるようにしたい Railsなどのフレームワークで簡単に適用できるようにしたい ということを目指しています。 ほんとうに役立つか これはパターンと言えるのか もっと他にもある だいぶ粒度がバラバラ 名前の付け方(パターンは名前重要) など、ぜひご意見をください。 パターン Collection & Member Resource パターン Singular (Singleton) Resource パターン Filtered Collection パターン Filtered Subresource パターン Multi-member Resource パターン Partial Resource パター

    リソースモデリングパターン
  • AmazonクラウドのCTO「クラウドネイティブなアーキテクチャには4つの戒律がある」。AWS re:Invent基調講演(Day2 AM)

    AmazonクラウドのCTO「クラウドネイティブなアーキテクチャには4つの戒律がある」。AWS re:Invent基調講演(Day2 AM) クラウド時代のアーキテクチャは、それ以前の時代のアーキテクチャとは異なる。Amazon.com CTOのWerner Vogels氏は、Amazon Web Servicesが先週ラスベガスで開催したイベント「AWS re:Invent」2日目午前中の基調講演で、新しい時代のアーキテクチャとはどういうものなのか、聴衆に向けてたっぷりと解説しました。 クラウドによってリソースの制約から解放され、サーバやネットワークを含む冗長性までプログラミング可能になった新しい世界では、どのような考えによってソフトウェアを構築すべきなのか。 Vogles氏の話を紹介しましょう(記事と、後編の「Amazonは1時間に最大1000回もデプロイする。クラウドネイティブなデ

    AmazonクラウドのCTO「クラウドネイティブなアーキテクチャには4つの戒律がある」。AWS re:Invent基調講演(Day2 AM)
  • Amazonは1時間に最大1000回もデプロイする。クラウドネイティブなデプロイとはどういうものか? AWS re:Invent基調講演(Day2 AM)

    Amazonは1時間に最大1000回もデプロイする。クラウドネイティブなデプロイとはどういうものか? AWS re:Invent基調講演(Day2 AM) クラウドによってリソースの制約から解放され、サーバやネットワークを含む冗長性までプログラミング可能になった新しい世界では、どのような考えによってソフトウェアを構築すべきなのか。 Amazon.com CTOのWerner Vogels氏は、Amazon Web Servicesが先週ラスベガスで開催したイベント「AWS re:Invent」2日目午前中の基調講演で、新しい時代のアーキテクチャとはどういうものなのか、聴衆に向けてたっぷりと解説しました。 (記事は「AmazonクラウドのCTO「クラウドネイティブなアーキテクチャには4つの戒律がある」。AWS re:Invent基調講演(Day2 AM)」の続きです。 戒律その2「リジリエ

    Amazonは1時間に最大1000回もデプロイする。クラウドネイティブなデプロイとはどういうものか? AWS re:Invent基調講演(Day2 AM)
  • Architecture of the World Wide Web, Volume One

    W3C Recommendation 15 December 2004 This version: http://www.w3.org/TR/2004/REC-webarch-20041215/ Latest version: http://www.w3.org/TR/webarch/ Previous version: http://www.w3.org/TR/2004/PR-webarch-20041105/ Editors: Ian Jacobs, W3C Norman Walsh, Sun Microsystems, Inc. Authors: See acknowledgments (§8). Please refer to the errata for this document, which may include some normative corrections. Se

    Architecture of the World Wide Web, Volume One
  • Twitterがページ表示時間を5分の1に高速化。どのようなテクニックを使ったのか?

    Twitterフロントエンドのアーキテクチャを見直し、Webページの読み込み速度を改善したことをブログで明らかにしています。 新しいアーキテクチャでは、これまでWebブラウザ上でJavaScriptの処理によって行ってきたWebページのレンダリングを見直し、サーバ側でレンダリング済みのHTMLページを送信し表示することにしています。これによってWebページの読み込みから最初のツイートの表示までの時間が大幅に短縮されることになりました。 When we shipped #NewTwitter in September 2010, we built it around a web application architecture that pushed all of the UI rendering and logic to JavaScript running on our users’

    Twitterがページ表示時間を5分の1に高速化。どのようなテクニックを使ったのか?
  • アーキテクチャではトレードオフは避けられない - プログラマの思索

    小川 明彦, 阪井 誠 : チケット駆動開発 日のソフトウェア開発の現場で生み出された「チケット駆動開発」という概念を、数多くの実例を元にモデル化・体系化を試みた最初の。 小川 明彦, 阪井 誠 : Redmineによるタスクマネジメント実践技法 Redmineによるチケット駆動開発の実践技法に関する最初のアジャイルなソフトウェア開発への適用方法、TestLinkによるテスト管理手法についても言及。 清水 吉男: 「派生開発」を成功させるプロセス改善の技術と極意 組込システム開発をベースとして、ソフトウェア開発特有のスタイルである派生開発、特にXDDPについて解説した世界でも稀な。既存製品を保守するのではなく継続的に機能追加していく昨今の開発では、派生開発特有の問題を意識しなければならない。XDDPはプロセス論だけでなく、要件定義などの上流工程の品質改善にも役立つので注意。 Le

    アーキテクチャではトレードオフは避けられない - プログラマの思索
  • 「クラウドアーキテクティング原則」。クラウドデザインパターンの背後にある、システム設計の原則とは

    Amazon Web Serviceのエバンジェリスト 玉川憲氏は、先週開催されたイベント「JAWS Summit 2012」の「AWSクラウドデザインパターン」(略称CDP)を紹介するセッションで、「シナリオに沿ってデザインを適用していく、ということを考えていく中で大事な原則に気がついた」と話しています。 その大事な原則をまとめたものが「クラウドアーキテクティング原則」です。 玉川氏はセッションの中でそれぞれの原則について口頭で説明しています。ここではその内容をまとめてみました。 できるだけ既存のサービスを利用する 例えばAmazon S3というクラウドストレージのサービス。これは耐久性が高くて便利なオブジェクトストレージなので、Amazon EC2を使って似たような機能を実装するよりもS3を使った方がいい。キューイングも、Amazon SQSというサービスがあるので、自分で実装するより

    「クラウドアーキテクティング原則」。クラウドデザインパターンの背後にある、システム設計の原則とは
  • MVVMパターンの常識 ― 「M」「V」「VM」の役割とは?(1/5) - @IT

    .NET開発者中心 厳選ブログ記事 MVVMパターンの常識 ― 「M」「V」「VM」の役割とは? ―― 「the sea of fertility」より ―― 尾上 雅則 2011/05/18 「.NET開発者中心 厳選ブログ記事」シリーズでは、世界中にある膨大なブログ・コンテンツの中から、特にInsider.NET/.NET開発者中心の読者に有用だと考えられるブログ記事を編集部が発掘・厳選し、そのブログ記事を執筆したブロガーの許可の下、その全文を転載・翻訳しています。この活動により、.NET開発者のブログ文化の価値と質を高め、より一層の盛り上げに貢献することを目指しています。 MVVM(Model-View-ViewModel)パターンに関する知見があちこちに散らばっているように見えるので、そろそろまとめてみることにしました。この記事は、MVVMの基的な考え方・実装方法などを把握されて

  • 1