タグ

ブックマーク / yshibata.blog.ss-blog.jp (4)

  • ソフトウェア開発組織が持つべきカルチャー(まとめ): 柴田 芳樹 (Yoshiki Shibata)

    2011年に主に書いた「ソフトウェア開発組織が持つべきカルチャー」を表にしてみました。評価列は、みなさんの組織ではどうかを振り返って記入してみてください。 ソフトウェア開発組織が持つカルチャーが、個々のソフトウェアエンジニアに大きな影響を与えるということで、一連の記事を書きますとした「まえがき」に相当するのが次の記事です。

    ソフトウェア開発組織が持つべきカルチャー(まとめ): 柴田 芳樹 (Yoshiki Shibata)
  • オープン・クローズドの原則(OCP:The Open-Closed Principle): 柴田 芳樹 (Yoshiki Shibata)

    Bertrand Meyerによるオープン・クローズドの原則(OCP:The Open-Closed Principle)は、クラスや関数を設計するだけでなく、アーキテクチャ(システム設計)においても重要な役割を果たします。1997年に出版されたBertrand Meyerの著書Object-Oriented Software Constructionで紹介されています。 ソフトウェアの構成要素(クラス、モジュール、関数など)は拡張に対して開いて(オープン:Open)いて、修正に対して閉じて(クローズド:Closed)いなければならない。 大規模なシステムにおいて、ある機能を追加しようとする場合に、既存のモジュール群を多数修正しなければならないのであれば、この原則に反していることになります。もし、追加される機能が小さなものであっても、既存のシステムを多数修正しなければならないとなると、シス

    オープン・クローズドの原則(OCP:The Open-Closed Principle): 柴田 芳樹 (Yoshiki Shibata)
  • Java 7のArrays.sort(Object[]): 柴田 芳樹 (Yoshiki Shibata)

    Java 7のEarly Access版をダウンロードしました。昨日、Joshua Bloch氏にProject Coinへ彼が提案している言語仕様の変更はすでに実装されているのかと聞いたところ、まだプロトタイプされていないということでした。で、その話のついでに、ソートの話になり、Java 7にはTimSortが入っているということで、調べてみました。 従来、コレクションフレームワークのArraysクラスのsort(Object[])は、今まではマージソートで実装されていました。しかし、Java 7にはパッケージプライベート宣言されているTimSortクラス(TimSort.java)が追加されており、Arrays.sort(Object[])(と関連する他のsortメソッド)はデフォルトでTimSortクラスのsortメソッドを使用するように書き換えられています。 TimSort.jav

    Java 7のArrays.sort(Object[]): 柴田 芳樹 (Yoshiki Shibata)
    WhatAmILookingFor
    WhatAmILookingFor 2011/01/02
    TimSortはPython(2.3以降)の標準ソートアルゴリズムらしい
  • 柴田 芳樹 (Yoshiki Shibata)

    まったく分類・整理していませんが、ランダムにWebサービスのバックエンドのAPI仕様に関する備忘録を書いていきたいと思います。 001 該当する定義が存在しない問題:あるデータの一覧を返すエンドポイントの仕様に、「返されるデータはXXXYYYStatus順に返される」と記述されているのですが、そもそもXXXYYYStatusはどこにも定義されていない。 この記述を書いた人は分かっているつもりなのかもしれませんが、第3者が読んだら理解できなくて問い合わせることになります。これは、記述した仕様が第3者が理解できるかという視点を持たないことによるものだと思われます。その視点で、自分で記述した仕様をレビューできる必要があります。 一般的にXXXYYYStatusというのはenumとして定義されている可能性があり、その場合、「XXXYYYStatus順」というのは、具体的に何順なのかが曖昧です。e

    柴田 芳樹 (Yoshiki Shibata)
  • 1