SlideShare a Scribd company logo
1 of 31
Download to read offline
あなたはなぜ問題が
解決できないのか?
2015-03-12 urakawa@SD
一言でいうと
一言でいうと
ググレカス
Motivation
• なんでもかんでも聞くな
– そんなに暇じゃない
• お前の目の前にあるのは何だ
– 聞く暇があるなら調べられるだろ
なんて愚痴ってても仕方ないので変えたいね、って話です。
Google
• みんな大好き
• 集合知
Google
• でも馬鹿
• 言われたことにしか答えない
• 適切な言葉で話かけてあげないとダメ
• Don’t be evil
ググラビリティ
• http://en.wiktionary.org/wiki/googleability
• 検索されやすさのことです
– SEOとかSEOとかSEOとか
今日の話はこれではありません
ググり力(仮)
なんかあった時に事例を見つける力
• ライブラリが意味不明なエラー吐いた
– すげー長いスタックトレース
– 何言ってるのか分からないメッセージ
• DBが不機嫌
– 強制終了、、、?
– つながらないし
• 意図した通りに動かない
– 取れるはずのものが取れない、あれ?
– 取れないはずのものが取れる、あれあれ??
– 謎の設定項目
ではググりましょう
まず前提として
だいたいの地雷は先に踏まれてる
自分より先に不幸になった奴が
世界のどこかにいる
除去もだいたい終わってる
自分より先に幸福になった奴も
世界のどこかにいる
それでも見つからないのは
• だいたい探し方が悪い
–検索ワードを限定しすぎている
–検索ワードが不適切である
• 一般的に使われないワード
• ワードが足りてない
• 実は見つけていた、、、
–英語読むのがだるいと思ってますよね
あと勘違い
• Google検索万能!
– 自分の周辺では通用するワードであって
もGoogleは結果を返してくれないことが
ある
– あくまで出てくるのは、公開者が公開した
い(する必要があると考えている)情報で
ある
例題
例1
mysql> select * from customeruserlink;
+----------------------------------+------------+
| CustomerID | SerialID |
+----------------------------------+------------+
| 00000642b2528e064d34dfb17598e4c9 | C143957488 |
| 00000642b2528e064d34dfb17598e4c9 | C151483697 |
| 00000642b2528e064d34dfb17598e4c9 | C159191025 |
+----------------------------------+------------+
上記のようなデータの入ったテーブルに対して、hibernateを使って
customerId='00000642b2528e064d34dfb17598e4c9'のserialIdを取ると
結果が想定と違う
Criteria criteria = session.createCriteria(CustomerUserLink.class)
criteria.add(Restrictions.eq("customerId", customerId));
List<CustomerUserLink> list = criteria.list();
//--> [C143957488 , C143957488 , C143957488 ]
どう調べますか?
進め方
1.特徴となるワードを抽出
2.ワードを組みあわせる
3.スコープを小さくする
4.追加のワードを考える
5.ぐぐる&最初に戻る
1.特徴となるワードを抽出
• hibernate
• mysql
• criteria
• restrictions
• customeruserlink
• customerId
• serialId
• C143957488
2.ワードを組みあわせる
• hibernate mysql
• hibernate criteria
• mysql criteria
• criteria restrictions
3.スコープを小さくする
• hibernate mysql • hibernate criteria
hibernateはORMです。
それがMySQLと相性悪
いみたいな話になると
すごく大変です。
なのでいきなりそんな
ことは考えないほうが
良いです。
hibernateの使い方が
悪い、のほうが、正し
い使い方を見つけれ
ば良いだけなのでお手
軽!
4.追加のワードを考える
• 問題は何か?
– hibernateによる取得結果がSELECT結果と異なる
– まったく異なるわけではない
– 取れてる行数は正しそう
– まったく見当違いのものが取れるわけでもない
みたいなことを考えまして・・・
ぼくの検索ワード
• hibernate criteria same values
• hibernate criteria duplicate
• hibernate criteria mysql trouble
• hibernate mysql duplicate
• …
5.ぐぐる&最初に戻る
• 一回の検索で答えに辿り着くの
はほぼ無理!
–ドメイン知識を補充しながら
• 組み合わせを見直す
• ワードの候補を増やす
• ワードの候補を見直す
例2
北極 [11:20]
@group: どなたか、エアコンのスイッチ
の場所を教えていただけないでしょう
か、、、さぶい。。。
南極 [11:22]
凸凹ビル エアコンスイッチ 場所
でぐぐりましたがだめでしたw
注:関数はファンクションですが、この会話はフィクションです。登場人物は実在の人物とは無関係です。
何がイケてないのか
• 凸凹ビル
– どこの?
– 自分の周囲にのみ通じるワードの可能性
• エアコンスイッチ 場所
– 何が欲しいのか?図面?詳細ページ的な?
– 公開される情報なんでしょうかそれは
どうすれば良かったか
• そもそもオフィスビルです
– 各フロア様々な企業が入ってるしレイアウトも様々
• エアコンのスイッチ入りのレイアウト図面を公
開してる企業なんてない
新宿 凸凹ビル 空調
不動産情報からセントラル空調であることが分
かる→あとは、、、ねぇ。
効率よく探すために(ツール)
• 古すぎる情報には価値が無いことが多い
– 検索ツール→期間指定
• stackoverflowだけ探したい
– site:stackoverflow.com つけよう
• pdfだけ探したい
– filetype:pdf つけよう
• AutoPatchWorkとか使おう
– いちいち「次の10件」を押さない
– 検索結果を100件表示にするのはアリ
効率よく探すために(検索ワード)
• エラーコードとかメッセージがあればまず!
– 可変部分に注意
• エラー時の変数の値が含まれてたり
• 行番号が出ていたり
– 固定っぽいところは “ダブルクォート” で囲もう
• エラーは出ないが意図しない動作は辛い
– trouble / problem / wrong / duplicate …
練習
まとめ
• 何が欲しいのかを想定しておく
• ツールを活用する
– 検索クエリ
– ブラウザのプラグイン
• より適切そうな単語の組み合せを考える
• 検索結果をちゃんと見る
– でも無駄っぽいなと思ったらさっさとやり直す
– 一見無関係に見えても答えはそこにある可能性

More Related Content

Viewers also liked

図解で学ぶ「U理論」
図解で学ぶ「U理論」図解で学ぶ「U理論」
図解で学ぶ「U理論」Katsuhito Okada
 
ワークショップ 明日からはじめるアジャイル
ワークショップ 明日からはじめるアジャイルワークショップ 明日からはじめるアジャイル
ワークショップ 明日からはじめるアジャイルESM SEC
 
Yahoo! JAPANにおけるアジャイル開発の普及戦略 #SPIJapan2016
Yahoo! JAPANにおけるアジャイル開発の普及戦略 #SPIJapan2016Yahoo! JAPANにおけるアジャイル開発の普及戦略 #SPIJapan2016
Yahoo! JAPANにおけるアジャイル開発の普及戦略 #SPIJapan2016teyamagu
 
ノマドワーキングと創造性・生産性の向上
ノマドワーキングと創造性・生産性の向上ノマドワーキングと創造性・生産性の向上
ノマドワーキングと創造性・生産性の向上Kenichi Nakaya
 
人生をより豊かにする人間関係 第1回:すぐに学べるコミュニケーションの価値とコツ
人生をより豊かにする人間関係 第1回:すぐに学べるコミュニケーションの価値とコツ人生をより豊かにする人間関係 第1回:すぐに学べるコミュニケーションの価値とコツ
人生をより豊かにする人間関係 第1回:すぐに学べるコミュニケーションの価値とコツYusuke Narawa
 
人生をより豊かにする人間関係 第2回:全ての人間関係に当てはまる会話の目的とは
人生をより豊かにする人間関係 第2回:全ての人間関係に当てはまる会話の目的とは人生をより豊かにする人間関係 第2回:全ての人間関係に当てはまる会話の目的とは
人生をより豊かにする人間関係 第2回:全ての人間関係に当てはまる会話の目的とはYusuke Narawa
 
IoTビジネスのフレームワーク、ロードマップ
IoTビジネスのフレームワーク、ロードマップIoTビジネスのフレームワーク、ロードマップ
IoTビジネスのフレームワーク、ロードマップKatsuhito Okada
 

Viewers also liked (9)

図解で学ぶ「U理論」
図解で学ぶ「U理論」図解で学ぶ「U理論」
図解で学ぶ「U理論」
 
ワークショップ 明日からはじめるアジャイル
ワークショップ 明日からはじめるアジャイルワークショップ 明日からはじめるアジャイル
ワークショップ 明日からはじめるアジャイル
 
Yahoo! JAPANにおけるアジャイル開発の普及戦略 #SPIJapan2016
Yahoo! JAPANにおけるアジャイル開発の普及戦略 #SPIJapan2016Yahoo! JAPANにおけるアジャイル開発の普及戦略 #SPIJapan2016
Yahoo! JAPANにおけるアジャイル開発の普及戦略 #SPIJapan2016
 
ノマドワーキングと創造性・生産性の向上
ノマドワーキングと創造性・生産性の向上ノマドワーキングと創造性・生産性の向上
ノマドワーキングと創造性・生産性の向上
 
仕事って何?
仕事って何?仕事って何?
仕事って何?
 
人生をより豊かにする人間関係 第1回:すぐに学べるコミュニケーションの価値とコツ
人生をより豊かにする人間関係 第1回:すぐに学べるコミュニケーションの価値とコツ人生をより豊かにする人間関係 第1回:すぐに学べるコミュニケーションの価値とコツ
人生をより豊かにする人間関係 第1回:すぐに学べるコミュニケーションの価値とコツ
 
人生をより豊かにする人間関係 第2回:全ての人間関係に当てはまる会話の目的とは
人生をより豊かにする人間関係 第2回:全ての人間関係に当てはまる会話の目的とは人生をより豊かにする人間関係 第2回:全ての人間関係に当てはまる会話の目的とは
人生をより豊かにする人間関係 第2回:全ての人間関係に当てはまる会話の目的とは
 
高生産性社会
高生産性社会高生産性社会
高生産性社会
 
IoTビジネスのフレームワーク、ロードマップ
IoTビジネスのフレームワーク、ロードマップIoTビジネスのフレームワーク、ロードマップ
IoTビジネスのフレームワーク、ロードマップ
 

あなたはなぜ問題が解決できないのか?

Editor's Notes

  1. ちょっと優雅に
  2. 問題解決力がどうのとか、プロセスがどうのとか、論理的思考がどうのとか、そんな高尚な話ではないです 普通勉強会は話す人/聞く人ともに有意義なものであるほうが良いと思うのですが、今日の話に関しては「当たり前じゃん」「いや、違うでしょ」みたいに感じていただけるほうが、僕にとっては有意義、、ということになるよくわからない回です。
  3. 今日なんでこの話をしようと思ったか→とくにict。。。
  4. Google使ってますよね?べつにyahooでもなんでも良いんですが 田中さんリスペクト
  5. 良く言われますが、ググラビリティは。。。
  6. 適切なワードを見つけられませんでした。
  7. ググりたくなるケースはいろいろあるかと思いますがとりあえず。よくあるケース
  8. 自分より先に不幸になったやつが世界のどこかにいる
  9. 自分より先に幸福になったやつも世界のどこかにいる
  10. 限定しすぎ→自分のユースケースでそのままググろうとしている(ex:行番号が入ってしまってたりとか) 一般的でない→結果がそもそも出ない(たとえば、DBのテーブルからレコードを消すのはdeleteですが、これをclearにしても意図した結果はたぶん出ない) 足りてない→結果がノイズだらけになって目的となるものが埋もれてしまう 英語にかんしてはそうでない人もいると思いますが、、、
  11. 意図しない流出騒ぎとかありますがそれは置いといて、、、
  12. ちょうどよかったんでもってきました
  13. 自分がぐぐるまでの思考順序はこんな感じだろうか、、、かならずしもこの順番で考えてるわけじゃないと思いますし、無意識にやってる/やってないときもあると思いますが。 1:生のエラーメッセージとか状況説明から自動で特徴となる単語を抽出できるサービスがあれば教えてください。なければ専門家の原囿さんと小野さんが何とかしてくれるでしょう 2:検索でヒットしそうな組みあわせをイメージする 3:スコープを小さく=問題はなるべく簡単に解決できたほうがいい 4:さらに情報を与えられないか考える
  14. ORM変え、、、→いやいや DB変え、、、→いやいやいや
  15. ワードの組みあわせが悪いことはままあります。 候補を増やす→ぐぐってみると「そのドメインにおける専門家の単語の選び方」がわかることがあります。それにならって候補を増やしたり見直したりします
  16. 酷い例:ある日の北極さんと南極さんの会話
  17. 野村ビルとぐぐればだいたい新宿のを指すみたいです。有名ですね!でも付けてあげるとほぼ限定されます。
  18. ちなみに「新宿(しんじゅく)」は千葉県千葉市中央区にもあります。 あと神奈川県相模原市中央区田名(たな)にも「新宿(しんじゅく)」という集落があったそうです。しらんがな。 こちらには野村ビルはないはず、、、なのでこれで十分でしょう。 仮にあったとすれば「東京 新宿」とか「日本・・・」とか「地球・・・」とか付ければいいんじゃないでしょうか。 こういう「有名なものと同じ名前の マイナーなほう」は調べにくいですね、、、 セントラル空調もぐぐりました
  19. 期間→だいたい1年とか見れば十分なんじゃないの? 次の10件って押しだすとキリなくならないですか?次の10件の中にはあるはず、、、みたいな変な願望を抱いてしまう。気づいたら16ページ目とか。。無駄。。。 件数→100件も見て目的のものが出てこなければそれ以降で出てくる可能性なんて無い filetype:xlsx にすると顧客リストが〜みたいな話もありましたが
  20. ダブルクォートで囲って見つからなければgoogleさんが自動で外して検索してくれます お決まりワードくん
  21. 発注しといてくれって言われたら? クッションドラム/クッションバンパー http://ja.wikipedia.org/wiki/%E8%A1%9D%E7%AA%81%E8%A1%9D%E6%92%83%E7%B7%A9%E8%A1%9D%E5%85%B7 衝突衝撃緩衝具(しょうとつしょうげきかんしょうぐ)とは道路の分岐部分や事故多発地点・簡易閉鎖具として設置されている、衝突・接触事故時の衝撃を緩和し、ドライバーの安全を守る装置。一般的には、クッションドラム、クッションバンパーなどと呼ばれている。
  22. 何がほしい?→あるていど想定がないと見逃しの原因になる ツールはどんどん活用しよう(filetypeとかsiteとか、もっとあったはず。検索補助してくれるやつとか、検索結果内の目的箇所にアクセスしやすくしてくれるやつとかあります) もっと適切なワードないかな?と自問しましょう でてきた結果は素直に受けいれるのです あと、ちゃんと見ることで、良いサイト/悪いサイトの判別も付くようになってきます。