タグ

ブックマーク / www.infoq.com (28)

  • InfoQ: SplkskyとBobおじさんの対決

    ここ数週間、Joel Spolsky(リンク)とRobert C Martin(リンク)(Bobおじさんと呼ばれている)の間で議論が交わされている。そもそもの発端は、Jeff Atwood (リンク)とJoel Spolskyの「38:th Stack Overflow」 (リンク) というポッドキャストで、Joelの「よくユニットテスティングをJoelテストの13番目の項目に加えるべきだと言われるんだけど、それには反対なんだ」という発言だった(Joelテストとは、「Joelテスト: よりよいコードのための12のステップ」のことだ) (リンク)。Joelはこのように説明している(リンク)。 テスト駆動開発について議論されていることですが、すべてはユニットテストすべきだという意見があります……たくさんの人が私に、Joelテストを読んだ後で、「13番目の項目としてユニットテスティングを加えるべ

    InfoQ: SplkskyとBobおじさんの対決
  • 新しいC#ベースのCQRSチュートリアルが利用可能になる

    Spring BootによるAPIバックエンド構築実践ガイド 第2版 何千人もの開発者が、InfoQのミニブック「Practical Guide to Building an API Back End with Spring Boot」から、Spring Bootを使ったREST API構築の基礎を学んだ。このでは、出版時に新しくリリースされたバージョンである Spring Boot 2 を使用している。しかし、Spring Boot3が最近リリースされ、重要な変...

    新しいC#ベースのCQRSチュートリアルが利用可能になる
  • SOLIDオブジェクト指向ルールのオープン・クローズド原則への批判

    Spring BootによるAPIバックエンド構築実践ガイド 第2版 何千人もの開発者が、InfoQのミニブック「Practical Guide to Building an API Back End with Spring Boot」から、Spring Bootを使ったREST API構築の基礎を学んだ。このでは、出版時に新しくリリースされたバージョンである Spring Boot 2 を使用している。しかし、Spring Boot3が最近リリースされ、重要な変...

    SOLIDオブジェクト指向ルールのオープン・クローズド原則への批判
    t_a_o
    t_a_o 2013/05/17
  • 運用エンジニアの教育

    Spring BootによるAPIバックエンド構築実践ガイド 第2版 何千人もの開発者が、InfoQのミニブック「Practical Guide to Building an API Back End with Spring Boot」から、Spring Bootを使ったREST API構築の基礎を学んだ。このでは、出版時に新しくリリースされたバージョンである Spring Boot 2 を使用している。しかし、Spring Boot3が最近リリースされ、重要な変...

    運用エンジニアの教育
    t_a_o
    t_a_o 2013/04/09
  • 小から超大規模ウェブサイトまでのMySQL参照アーキテクチャ

    Spring BootによるAPIバックエンド構築実践ガイド 第2版 何千人もの開発者が、InfoQのミニブック「Practical Guide to Building an API Back End with Spring Boot」から、Spring Bootを使ったREST API構築の基礎を学んだ。このでは、出版時に新しくリリースされたバージョンである Spring Boot 2 を使用している。しかし、Spring Boot3が最近リリースされ、重要な変...

    小から超大規模ウェブサイトまでのMySQL参照アーキテクチャ
  • デザインパターンの自動化

    .NETで簡単な例を見てみましょう。 public Person : INotifyPropertyChanged { string firstName, lastName; public event NotifyPropertyChangedEventHandler PropertyChanged; protected void OnPropertyChanged(string propertyName) { if ( this.PropertyChanged != null ) { this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName)); } } public string FirstName { get { return this.firstName; } set { this.firstName

    デザインパターンの自動化
  • スケーリングに関する段階的考察

    Spring BootによるAPIバックエンド構築実践ガイド 第2版 何千人もの開発者が、InfoQのミニブック「Practical Guide to Building an API Back End with Spring Boot」から、Spring Bootを使ったREST API構築の基礎を学んだ。このでは、出版時に新しくリリースされたバージョンである Spring Boot 2 を使用している。しかし、Spring Boot3が最近リリースされ、重要な変...

    スケーリングに関する段階的考察
  • 12年後のCAP定理: "法則"はどのように変わったか

    設計者は分割が発生したとき一貫性と可用性のどちらかを選ぶ必要がありますが、分割の扱い方と分割の復旧には柔軟な対処方法があります。現在のCAPの目的は特定のアプリケーションが必要とする一貫性と可用性を最適化することでしょう。このような方法には分割発生中の計画や分割の復旧計画が組み込まれています。したがって、設計者はこのような方法を採用することで、従来受け取られてきたCAPの限界を超えてCAPについて考えることができます。 なぜ"3つのうち2つ"がミスリーディングなのか CAPを理解する最も簡単な方法は分割の両側にひとつずつノードがある場合を考えることです。片方のノードだけ状態を更新できるようにすると、2つのノードに一貫性がなくなります。つまり、Cが失われます。一貫性を維持しようとすれば、一方のノードは利用できない状態であるかのように動作しなければなりません。この場合、Aが失われます。一貫性と

    12年後のCAP定理: "法則"はどのように変わったか
    t_a_o
    t_a_o 2013/01/08
  • NoSQLの現状

    このため、NoSQLの知識を持つ開発者やアーキテクトに対する需要が高まってきています。最近の調査によると、最近必要とされる開発スキルは次の通りです。 HTML5 MongoDB iOS Android Mobileアプリ Puppet Hadoop jQuery PaaS ソーシャルメディア 技術的要求のトップ10の中で、NoSQLデータベースは2つあります。1つは、iOSよりも上です。これがNoSQLをほめているのでなかったら、何なのでしょう?! しかし、一見したところ、NoSQLはますます速く深いところまで適用されるようになっています。2011年の夏に、有名な報告書の中でOracleは次のように述べました。NoSQL DBがアイスクリームの味のように感じるかもしれないけれど、あまり深入りしない方がいい、NoSQLはそれほど長く残らないかもしれないから。そのわずか2、3ヶ月後、Oracl

    NoSQLの現状
    t_a_o
    t_a_o 2013/01/08
  • 現場で使えるドメイン駆動設計 : 和智 右桂 氏

    Spring BootによるAPIバックエンド構築実践ガイド 第2版 何千人もの開発者が、InfoQのミニブック「Practical Guide to Building an API Back End with Spring Boot」から、Spring Bootを使ったREST API構築の基礎を学んだ。このでは、出版時に新しくリリースされたバージョンである Spring Boot 2 を使用している。しかし、Spring Boot3が最近リリースされ、重要な変...

    現場で使えるドメイン駆動設計 : 和智 右桂 氏
  • Rubyのオープンクラス:猿のようにパッチを当てない方法

    class String def foo "foo" end end puts "".foo # prints "foo" オープンクラスの問題は明白です。我々はソフトウェア設計の古くて議論の余地のない原則であるモジュラリティを使うことが可能です。長年に渡って、ものすごい数の概念が開発されてきました。それらの概念はいずれも増え続けるコードベースを考慮したモジュラリティを得るために開発されたものです。ローカル変数対グローバル変数、レキシカルスコープ対動的スコープ、多数の名前空間システムなどなど。これはまだ進行中のプロセスです。コンポーネント指向を行うという発展中の考えと、物理的なコンポーネントを組み立てて製品を作るのと同様に、ソフトウェアはコンポーネント化可能だという考えを考慮してください。モジュラリティは、我々が理解しているように、大切なソフトウェア資産です。 従って、オープンクラスとオー

    Rubyのオープンクラス:猿のようにパッチを当てない方法
    t_a_o
    t_a_o 2012/09/09
  • バーチャルパネル: コードとテストの比率、TDD、BDD

    JB:この件について一般化するのは嫌なので、私がTDD/BDD使うときとその理由を説明させてください。 私が初めてTDDに出会ったのはミス(欠陥といってもバグといってもいいでしょう)を防ぐ方法を求めていたからです。プログラム上の多くのミスのおかげで私は完璧さの感覚を失ってしまいました。どんなことを成し遂げても仕事が完璧に近づいたと感じたことはありませんでした。そして、書いたコードをテストすれば、ばかげた小さなミスを見つけ修正できるのではないかと考えました。テストをしてミスを見つけたかったのは、愚かにみられるのを防ぐためというより、仕事に対する完璧さの感覚を失わないようにするためです。実際テストは役に立ちました。数年経って、TDDはコーディングのミスを防ぐのに役に立つだけでなく、デザインの失敗を防ぐのにも役に立つことに気づきました。そしてBDDを学び、どのような機能を実装するかについての失敗

    バーチャルパネル: コードとテストの比率、TDD、BDD
    t_a_o
    t_a_o 2012/08/03
  • Mikadoメソッド - レガシーソフトウェアのリファクタリング手法

    Spring BootによるAPIバックエンド構築実践ガイド 第2版 何千人もの開発者が、InfoQのミニブック「Practical Guide to Building an API Back End with Spring Boot」から、Spring Bootを使ったREST API構築の基礎を学んだ。このでは、出版時に新しくリリースされたバージョンである Spring Boot 2 を使用している。しかし、Spring Boot3が最近リリースされ、重要な変...

    Mikadoメソッド - レガシーソフトウェアのリファクタリング手法
  • InfoQ: 「かんばん」をソフトウェア開発に適用する: アジャイルからリーンへ

    図1 かんばんとプル生産方式 図1は、かんばんシステムの抽象的なモデルです。図1で示されているのは、上流と下流の2つのプロセスであり、上流プロセスが下流プロセスに部品を供給しています。最終的な顧客に製品を供給するために、プロセスは部品を生産し、その部品を下流に流し込まなければなりません。しかし、多すぎてはいけません。過剰生産は最悪のムダだと考えられます。そこで、過剰生産を防ぐため、上流が完成した部品を下流に押し出す(プッシュ)のでなく、その代わりに、下流が上流から自発的に部品を取ってきます(プル)。部品が置かれる場所は、「ストア」と呼ばれます。(または、「スーパーマーケット」3 - 大野耐一氏 がアメリカのスーパーマーケットに行った時にかんばんの最初の考えを手に入れました。そこでは、店の人ではなく顧客自身が店の中で必要なものを取りに行きます。) ストアは上流に置かれ、WIPの「バッファ」や

  • ふりかえりとリーン・スタートアップにおけるダブルループ学習

    Rustが再評価される:エコシステムの現状と落とし穴 In this article, we share findings and insights about the Rust community and ecosystem and elaborate on the peculiarities and pitfalls of starting new projects with Rust or migrating to Rust from othe...

    ふりかえりとリーン・スタートアップにおけるダブルループ学習
  • DRY原則の利用: コードの重複と密結合の間

    原文(投稿日:2012/05/25)へのリンク DRYは重複とそれに伴うメンテナンスの問題を軽減するものだが、誤用すると密結合を生み、可読性を損うおそれがある。教訓:ソフトウェア開発原則は、ほかの原則やパターン、プラクティスを考慮して適用しなくてはならない。 DRYは Don’t Repeat Yourself の略語であり、Andy Hunt氏とDave Thomas氏が書籍「The Pragmatic Programmer: From Journeyman to Master」(邦訳:「達人プログラマー―システム開発の職人から名匠への道」)で最初に言及したソフトウェア開発原則だ。その原則はこう述べている。 知識のあらゆる部分はそのシステムにおいて単一で、曖昧さのない、信頼できる表現でなくてはならない。 ここでHunt氏は重複による負の影響と、それゆえにDRYを利用することの重要性を強調

    DRY原則の利用: コードの重複と密結合の間
  • XobotOS: Javaの代わりにC#で構築されたAndroid

    Spring BootによるAPIバックエンド構築実践ガイド 第2版 何千人もの開発者が、InfoQのミニブック「Practical Guide to Building an API Back End with Spring Boot」から、Spring Bootを使ったREST API構築の基礎を学んだ。このでは、出版時に新しくリリースされたバージョンである Spring Boot 2 を使用している。しかし、Spring Boot3が最近リリースされ、重要な変...

    XobotOS: Javaの代わりにC#で構築されたAndroid
    t_a_o
    t_a_o 2012/05/10
  • Microsoft のブランチ・マージ作業ガイドライン

    原文(投稿日:2012/04/23)へのリンク Microsoft は新たな Branching and Merging Guide のドラフト版をリリースした。表向きの対象は TFS ユーザだが,アドバイスの大部分はソース管理プロバイダに関係なく適用可能だ。まずその基概念を紹介しよう。 ブランチとマージを扱うほとんどのガイドラインと同様に,すべてのブランチの親の役割を持つメインブランチが存在する。 "trunk" として知られることが多いが,Microsoft ではこれを MAIN と呼ぶ。MAIN には DEVELOPMENT と RELEASE という2つの主要ブランチがある。 最初のガイダンスでは開発ブランチ(DEVELOPMENT) について取り上げている。内容は比較的簡素で,基的には企業のチームや機能の構成方法に帰着する,というものだ。ただし前のバージョンから継続している独

    Microsoft のブランチ・マージ作業ガイドライン
  • Web API Design - 開発者が愛するインターフェイスを作る

    Spring BootによるAPIバックエンド構築実践ガイド 第2版 何千人もの開発者が、InfoQのミニブック「Practical Guide to Building an API Back End with Spring Boot」から、Spring Bootを使ったREST API構築の基礎を学んだ。このでは、出版時に新しくリリースされたバージョンである Spring Boot 2 を使用している。しかし、Spring Boot3が最近リリースされ、重要な変...

    Web API Design - 開発者が愛するインターフェイスを作る
    t_a_o
    t_a_o 2012/04/12
  • SOAP から REST へ - その方法と意義

    Spring BootによるAPIバックエンド構築実践ガイド 第2版 何千人もの開発者が、InfoQのミニブック「Practical Guide to Building an API Back End with Spring Boot」から、Spring Bootを使ったREST API構築の基礎を学んだ。このでは、出版時に新しくリリースされたバージョンである Spring Boot 2 を使用している。しかし、Spring Boot3が最近リリースされ、重要な変...

    SOAP から REST へ - その方法と意義
    t_a_o
    t_a_o 2011/11/10
    REST