タグ

2016年10月16日のブックマーク (2件)

  • バージョン番号の付け方

    バージョン同士をどのように比較するのかは優先度によって決まります。優先度はメジャー、マイナー、パッチ、プレリリース識別子の順番(ビルドメタデータは優先度に関して考慮しない)で分けて評価されなければなりません(MUST)。優先度は、各識別… このセマンティック バージョニングはライブラリの場合はとても良いのだけれど、パッケージ製品に採用するにはずーっとしっくり来なかった。 割り切ってしまえば、ひたすらメジャーバージョンアップだけ上げていったっていいわけで、だとしたらあまりバージョン番号は関係ないなと。 もっとシンプルなのは無いのだろうかと模索していたのだが、結構身近に YY.MM.patch というバージョン番号を付けている Ubuntu というのがあった。 Ubuntu は 16.04.1 のように年と月そしてセキュリティパッチという形でバージョニングをしている。これとてもわかりやすい。U

  • golang で regexp パッケージを使うときに気をつけること - at kaneshin

    golang の Regexp は初期化の Compile コストがそこそこありますが、実は正規表現のパターンと対象となる文字列によって、初期化コストが無視できる(パターンと文字列に支配される)くらい遅くなります。よく言われる regexp の初期化コスト問題が無視できると言われても、正直、全く嬉しくないですね。 ただ、コーディング中に regexp パッケージを使わなければいけない場面は出てくるため、なるべくコストの掛からない実装を心がけています。 Compile/MustCompile 初期化コストはなくすため、グローバルに保持するようにします。 定義 var re = regexp.MustCompile("[a-z]{3}") func main() { fmt.Println(re.FindAllString("foobarbazqux", -1)) // => [foo bar

    golang で regexp パッケージを使うときに気をつけること - at kaneshin