SQL アンチパターン、落とし穴と転ばぬ先の杖
- 作者: Bill Karwin,和田卓人,和田省二,児島修
- 出版社/メーカー: オライリージャパン
- 発売日: 2013/01/26
- メディア: 大型本
- 購入: 9人 クリック: 698回
- この商品を含むブログ (46件) を見る
impression
攻撃力高いですね。
普段の仕事ではそんなに複雑な SQL を書くことはほとんど無くなってしまっているのです。
ですが、過去にやってきたことを振り返ると胃が痛くなるような、そんな内容が節々に転がっており、読んでて楽しいです。
「インデックスショットガン」とか「リーダブルパスワード」とか、そんなの自分の目の届く範囲では絶対ないわ―という内容も
あったりするんですが、きっと自分は恵まれている。
テクニカルな内容が多いのですけど、これは逆にシステムのほうで都合を悪くしてしまっている例なんだとも思えます。
業務のドメインを正しく表現するのが第一で、それをいびつにしてしまったり、制約になってしまってはいけないなとしみじみ思いました。
データベース・リファクタリングと合わせて読みたい。(積んであるんだよなぁ)
misc
- ひょんなことからレビューアの一端に加えていただくことになりありがとうございました。とても面白い体験でした。
- DBリファクタリング読書会 第四回 には参加しようとしてます(え、2/5 から 2/12 に変わったの…危ういかも)
- O'Reilly Japan - SQLアンチパターン
- 書籍:SQLアンチパターンのご紹介 (コーソル DatabaseエンジニアのBlog)
第1回:GOOS(日本語版)読書会を開催しました
第一回だけど、次もきっと第一回。
開催理由とか目的
- ボトムアップにユニットテストを書き連ねたところで、なんとなくこれじゃない感を覚えるようになり、方向性を模索していた
- そもそもがオレオレ TDD なのであって、設計成分をどこに按配すればいいのか途方にくれた
- そんな時にふと振り返ると、そこにはこの本があった
実践テスト駆動開発 (Object Oriented SELECTION)
- 作者: Steve Freeman,Nat Pryce,和智右桂,高木正弘
- 出版社/メーカー: 翔泳社
- 発売日: 2012/09/14
- メディア: 大型本
- 購入: 4人 クリック: 262回
- この商品を含むブログ (31件) を見る
- Growing Object-Oriented Software, Guided by Tests(goos_jp)読書会 - FrontPage の番外編の気持ちです。
- お仕事で一緒になった方が読んだことはないけど興味はある、ということだったので勢いで。(まぁ、その方は来なかったのですが…というか連絡取れん)
結果
- makopi さんが来てくださった!
- オンライン実(戦|践)テスト駆動開発写経会の方からいらした
- http://devtesting.jp/dbrr の方も入っておられるとか
- (実戦って、、、もしや本当に実戦なのか!?)
- それ以上増えることもなかったので、もくもく会になった
- まことに申し訳ない…
- 自分は自分で、第1章から第9章くらいまでちゃんと読み返した
- 原著は2部から5部くらいまでをみっちりと読んで頭使ったつもりだったんですが、あらためて読むといいこと書いてあるな〜と思いました。
- 第5章とか。繰り返しをするためのスケルトンが大事とか、あっさり書いてあるけど一番ときめいた
今後
- 続ける
- エクストリムなやり方は続ける
- ツッコミどころは多々ありそうではあるので議論のためにも開催のための最低人数(5人)を定める。
- 皆さま都合もあるので流局の判断は早めに…
- ゲストを見つける(http://devtesting.jp/dbrr 方式)
- 付加価値として、第3部の導入で切り捨てられている環境構築スクリプトを仕立てる
- ダメなら環境構築ガイドとかを(すでに公開されている方がおられるのは知っている)
当たり前のことを当たり前にやる人の集まる空間
スクラム道 EXPO 2012 - スクラム道 | Doorkeeperに参加してみました。
仕事で近々に求められているやり方ではないものの、隣の芝生は青く見えるのです。
id:yach さんと id:nawoto さんによる "no bull know how"(お悩み相談室)のあたりに座っていたおかげ(?)で、多くの人が自分自身と周囲の関係についての悩みを持っているのだなぁとしみじみしたりしました。
考え方に変化があったのは、無理して導入してもいいことは無いし、導入することが目的になってもしようがないのだなぁということでした。
じゃあ何時までたっても始めるきっかけはこないんじゃないか、とも思うのですが。
「なぜ」を突き詰めて、それが最善の方策であるということが確信できたなら、「どうやって」を考えればいいのかな。
なので、「どうやって」についてはしばらく考えることを止める。
「どうやって」にまつわる、あれはどうするのこれはどうするの的な疑問もとりあえず脇に置いておく。
やってる人にとっては特別な課題ではないようですし、徒手空拳で議論しても得るものは無さそうなので。
2週間先に出荷可能とするべき物事に思いを馳せつつ、後悔のないように考えられる人になる努力をしていこうと思います。
Shinjuku.rb #10 に顔を出してきました
新宿で働いているのに一度も出たことがなかったので…
コードフィッシュボールで、LRU キャッシュを実装してました。
Rails 使ってる人の普段の仕事を垣間見れたのは面白いものでした。
bundle じゃなくて b とか。
spec を仕様書として大事にしてる感じ、とか。
いちおう手元で書いてたやつをメモしてました。
とてか02 に来たのでメモ
とてか02 に来たのでメモ。
とちぎテストの会議とは
「日常、いつもの、ふつう盛りx2、小盛りx1」 - とちぎテストの会議
2010年に行われた「とちぎテストの会議(連番なし)」(通称とてか)は、
id:yoshioriのデブサミでの講演を発端としたTDD周辺の一連の炎上を受けて開
催されました。とてかはTDDとはなにか?について議論しあう、重い場と強いメッ
セージを提供しました。那須から流行のお祭りに参加する、ハレの日。2012年、とちぎテストの会議02のコンセプトは「日常、いつもの、ふつう盛り
x2、小盛りx1」です。
ということだそうです。
お題目はすっきりしてますね。
- 基調講演 「テストコンサルの日常」 秋山浩一 (富士ゼロックス (株) SS開発本部)
- ソフトウエア開発ライブ
- テストのレシピ
- ワールド・カフェ
- クロージング
オープニング
Tweet 禁止などの諸注意。
日常の様子を発表される方がおられるから、という配慮だそうです。
(ということは blog もダメなのでは…)
プロジェクタは 2 台構成でした。準備いいなぁ。
基調講演
@akiyama924 さん。
ソフトウェアテスト技法ドリルの著者の方。
「ソフトウェアテスト技法ドリルを読んでいない人挙手」→じゃあこれあげる、という驚きの導入。
SQiP研究会 (http://juse-sqip.jp) で縁あって咳さんから呼ばれました、と。
「コンサルタントは事実を元に語らなければならない」ということで、ご自身の時間別ツイート数を分析w
なんでもかんでも HAYST 法、という時期の経験から得られた、コンサルティングの NG/OK といった話をされていました。
いろんな分野の会社から呼ばれるし、都度異なる課題があるので面白い。
QA
- コンサルティングとして呼ばれる契機?
- 経営課題レベルで切迫したプロジェクトで呼ばれることもあります
- どのフェーズで入ってもあんまり変わらないですね
- 解決できない問題はどうするものなのか?
- 解決できる人を連れてくる。ハードの人、ソフトの人。
ソフトウエア開発ライブ
咳さん、佐々木さんによる
- JaSST のテスティングライブ
- 正直めんどくさい。
- TDDBC のデモ
- 見てるだけ
- 今回は、仕様変更を入れながらプログラム (メイヤーズの三角形判定) を書くので、楽しみましょう。
- 「こういうテストケースがいるんじゃない?」というのをみなさんにお願いします
- 入力された整数が、三角形かどうかを判定する
- 0 を入れる
- 負数を入れる
- 少数を入れる
- "07" を入れる
- 入力された整数を計算して、三角形かどうかを判定する
- 辺の長さを調べて、「二等辺三角形」「正三角形」「三角形」を判定する
- ちょっとかっこいい実装をお見せします
- 「三角形判定アプリを誰がどう使うのか分からないのがもやっとする」
- 2.0 は 2 とみなすのか、とか
- 漢数字ェ
- Integer と同じパースをするものになってるけど、カスタマイズするべきかもね
プログラムを書いてるときにテストも書いてることが多い。
実装が分かってるので、ブラックボックスでやるときは気にするような観点をばっさり捨てたりする。
最初の頃からテスターが一緒にやってるので、前半の段階で外部仕様として制限するとか、そんなことをしています。
QA
- TDD だとどうなのよ
- (id:t-wada) すぐに実装するので、ホワイトボックスに近いものになる。咳さんの考えとだいたい同じ
レシピ
発表者皆が咳さんと同じスタイル (中間チェックポイント入れるやつ) でした。
toRuby の特徴 ?
おいしくなかったレシピ (ソフトウェア通信簿)
なかうちさん。
- ソフトウェア通信簿
- コードがどのくらい使えるかを自己評価したもの
- 試作ソフトの出来栄えを数値化
- 技術リスク、ソフトウェア検査結果、パフォーマンス評価とか
- 知らないものにはコミットできない
- 自分で書いたコードじゃないと…評価って何?
- 通信簿パターン
- 「通信簿」も「ソフトウェアを使ってもらう」も同じ形をしていることに気付いた
- 前者は後者を解消するものではなかった
- QA
- 今の通信簿の 3 つの項目 (品質レベル) はどんなもの?
- 開発サイドと同意してるもの
- どんな当たり前バグがあるとか、どんな機能を諦めてるとか
- 今の通信簿の 3 つの項目 (品質レベル) はどんなもの?
研究開発だけを目的にするチームを作るのは駄目だ、というような議論をしたなぁ。
ワンプレートテスト
ゆりてぃさん。
- ワンプレートテスト
- テストの関心ごとを 1 枚の紙に入れる
- 階層ごとの状態遷移図にいろいろ盛り込んでいく
- UML の状態遷移図と同じ?
- 入力から考えていくと困りそう
- 1 枚に全部書く
- 俯瞰できる、スコープを明らかに
- CFD よりもシンプル
- メリット
- 全部でどれくらい、が見える
- 書くときに何をテストするかを意識しやすい
普通にオブジェクトの状態遷移として考えてることだなって思った。
ふつう、というか、ポケモン
ネットワークインフラエンジニアとして、サイトマップ網羅テストが必要になった話。
- おいしくなかった
- インフラ観点で他に見るべきものが
- メール送受信、ログ、セキュリティ診断、監視、、、
- インフラ観点で他に見るべきものが
探索的テスト
持ってない人挙手→買ってください
- 用語としての探索的テスト
- あるテストを実施し、その結果をベースにして次のどのようなテストを行えばよいか考える
- 非常にレベルの高いテスト
- テスト活動と探索的テスト
- W 字モデルっぽいプロセス
- テストは、チームの皆で考える
- 全体像は徐々に出来上がる
- わたしの探索的テスト
- 序盤 (+もや)
- テストケースはなし
- チームの心配事などを重点的に
- 中盤 (+もや)
- 設計したテストケースを使う
- テストケースに無いこともやる
- テストケースの設計にフィードバックするサイクル
- 終盤 (+もや)
- ユーザ観点のテスト
- 開発中に発生した問題についてもテスト
- 序盤 (+もや)
- もやもやが無くならない…
- 受けいれる (スピリチュアル系)
- 認めてもらう (依存系)
- テストケース設計と同じサイクルを回す
- テストケースがある場合もやもやしない
- →自分で考えてるからもやもやが残る?
- 言葉の定義にないけど、一人でやらないといけないと考えていた
- ペア探索的テスト
経験の不足を補う工夫を!
移り気な客のためのリスクベースドな下準備
熊とワルツを とか。
SEI の資料だとこういうやつのことなのかな。
http://www.sei.cmu.edu/reports/93tr006.pdf
Class として Program Constraints というのが該当しそう。
- 子供のマネジメント:職歴の庇護の元で狭い世界と向きあう
- 「単純バグ多すぎ」「仕様変更多すぎ」
ワールドカフェ
「月曜日から変わること、変わらないこと」というテーマでした。今日の振り返り的な位置付けでしょうか。
ごく雑多なことをいろいろと話してましたがあまり覚えておらず…
懇親会
会場は ダイニングバー ウニコ - ホーム | Facebookダイニングバーウニコ でした。
リジェクトレシピ+飛び入り LT、面白い発表がいろいろあったので、これだけでも懇親会参加してよかったと思います。
なんとなく自分も話したくなったので、テスト設計とフィードバックについて、なんか疑問提示してました。
初めてお会いしたのですが、@koyaman2 さんからテスト設計の目的とするところや、TABOK 面白いよみたいなことを教えていただきました。
JavaEE勉強会にも参加されていたという id:vestige さんに伺った「ふつうの開発」について、、、
設計して実装してテストする、それを繰り返すだけ、、、普通ですよね orz
Linux のパッケージ管理システムの例
社内勉強会で Dependency hell - Wikipedia を読んでいます。
Linux のパッケージ管理システムの例として挙がっているものに知っているものも知らないものもあったのでメモ。
apt
Chapter 2. Debian package management
Debian のパッケージ管理システム。
dpkg の上のレイヤで、aptitude の下のレイヤだと思います。
YUM
Chapter 14. YUM (Yellowdog Updater Modified) - Red Hat Customer Portal
Redhat のパッケージ管理システム。
RPM の上のレイヤ。
Urpmi
mandriva.com
Mandrivia Linux のパッケージ管理システム。
RPM の上のレイヤ。
ZYpp
Portal:Zypper - openSUSE
OpenSUSE のパッケージ管理システム。
RPM の上のレイヤ。
Portage
http://www.gentoo.org/doc/ja/portage-user.xml
Gentoo Linux のパッケージ管理システム。
ひたすらにビルドする系。
Packman
pacman - ArchWiki
Arch Linux のパッケージ管理システム。
自分用のお題的な何か
自分用。
これだけならn分以内に作れる、ということにしたい。
ネットワーク使うしDB使うしでいいかなって思ったので。
- 種類
- Webアプリケーション
- 内容
- 個人用オンラインブックマーク
- 機能
- ログインできる
- ログインすると、公開可否を問わず登録済のブックマークを閲覧できる
- ログインしなくても、公開可として登録済のブックマークを閲覧できる
- ログインすると、oauth 認証可能な外部サービスを登録できる
- ログインすると、外部サービスへの投稿履歴を見ることが出来る
- 外部サービスへの投稿ができる
- 外部サービスへの投稿はサーバサイドで行う
- 非同期に行なってもよい
- 投稿時は、投稿先のサービスと、投稿日時を記録する
- ブックマークを登録できる
- URL、タイトル、コメント、イメージ、タグ、公開可否を指定できる
- ブックマークを編集できる
- URL、タイトル、コメント、イメージ、タグ、公開可否を編集できる
- ログインできる