Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
足を地に着け、落ち着いて考える
玉川竜司@Sky
本日の内容
• 少しだけ自己紹介
• 基本を抑えよう
• 新しい技術を取り入れよう
• デバイスに興味を持とう
• エンジニアの気持ち
少しだけ自己紹介
• 大阪のソフトウェア開発企業

(Sky株式会社)勤務。
• 本職の技術はデータベース中心。

パフォーマンスチューニング大好き。
• Webの情報はとても有益ですが、手間
をかけてまとめられた書籍を読むことの
価値も変わっ...
今年の本
7月 8月 年内
既刊書の一部
基本を抑えよう
いわゆる教科書的な知識
• 計算量の理論や基本のデータ構造、アルゴリズム
• リレーショナルデータモデル
• コンピュータのアーキテクチャ
• TCP/IPの仕組み



などなど・・・簡単には変わらない、長持ちする知識
APIは高レベルでも
• 下位の実装の性格は必ずにじ
み出てきます
• 実装に使われているデータ構
造やアルゴリズム、デバイスの
特性は把握しておく
• 抽象化されたAPIを提供した
り、利用したりするのはもち
ろん良いこと
• しかし下位のこ...
APIは高レベルでも
• 下位の実装の性格は必ずにじ
み出てきます
• 実装に使われているデータ構
造やアルゴリズム、デバイスの
特性は把握しておく
• 抽象化されたAPIを提供した
り、利用したりするのはもち
ろん良いこと
• しかし下位のこ...
「古典」を読みましょう!
新しい技術を取り入れよう
新しい技術はカウンターパンチ
• 2000年頃「とりまリレーショナルデータベース」
• 2005年頃「リレーショナルデータベースってスケールし
ないんじゃ?」
• 2010年頃「NoSQLならなんぼでもスケールする
ぜぇぇ」「Hadoop最高」...
One size doesn’t fit all
• Stonebrakerさんのお言葉
• 技術の長所、短所が自分の仕事にどう影響するかはケースバイケース
• 本プレゼンで取り上げる例もあくまで1つの側面に過ぎません。それぞれの技
術者は、それ...
新しい技術をきちんと理解する
• なぜその新しい技術が登場したのか
• どういった領域をターゲットとして登場したのか
• その新しい技術を取り入れることによるマイナスは何か
• こういったことを理解するためにも、基本を抑えておく
ことが非常に大切
新しい技術をきちんと理解する
• なぜその新しい技術が登場したのか:スケーラビリティ
• どういった領域をターゲットとして登場したのか:Web
界隈。比較的単純なデータ構造で、トランザクションへ
の要求が低い
• その新しい技術を取り入れること...
新しい技術をきちんと理解する
• なぜその新しい技術が登場したのか:MapReduceが遅
いから。特にI/Oが多いため
• どういった領域をターゲットとして登場したのか:イン
タラクティブな処理、イテレーティブな処理の高速化
• その新しい技...
(ちょっと宣伝はいります)読書の薦め
• まとまった情報に一通り目を通すことは大事です
• 自分の現状の技術の観点で即断すると、新しい技術に対して
ネガティブになりがち
• 背景や要求事項が変化していないか?これまでの世界ではデ
メリットに見え...
デバイスに興味を持とう
Thinking Low-Level, Writing
Hight-level
• どんなプログラムでもデバイスの
制約から逃れることはできない
• 逆に、新しいデバイスの登場がゲー
ムチェンジにつながることは多々
ある
• この5年ではメモリ...
NoSQLの場合
データ量
複雑さ
RDB
ファイル
NoSQLの場合
データ量
複雑さ
RDB
ファイル
NoSQL
インターネットの普及、「ビッグデータ」ブーム
NoSQLの場合
データ量
複雑さ
RDB
ファイル
NoSQL
デバイスの変化(メモリの増大、マルチコア)
クラスタリングの一般化
Hadoopエコシステムの例
• もともとはハードディスクの性能問題への対応という面が大きかった
• https://youtu.be/vu0n_86GiJo
• 大ききな単位でディスクアクセスすることによって、バッチ処理の性能を大
きく向上さ...
エンジニアの気持ち
地道な成長と一足飛びの成長
成果
時間
地道な改善
一足飛びの改善
地道な成長と一足飛びの成長
成果
時間
地道な改善
周りの人の注目
保守的な成長と一足飛びの成長
このあたりまではサボっ
てるように見えたりする
この時点では

ヒーローっぽい成果
時間
保守的な成長と一足飛びの成長
努力
時間
でも継続的な努力が必要なのは
どちらでも一緒
保守的な成長と一足飛びの成長
努力
時間
地味な調査期
成果が
見える
時期
地味な調査期
保守的な成長と一足飛びの成長
努力
時間
地味な調査期
成果が
見える
時期
地味な調査期
やっている本人は(もしかしたら)しんどい時期
周りはやんわり見守ってあげてほしい時期
でも、
新しいことへのチャレンジは楽しいです
まとめ
• 基礎をおさえて
• 新しいことにも興味をしっかり持って
• 地道に努力を続けましょう
ご清聴ありがとうございました。
Upcoming SlideShare
Loading in …5
×

足を地に着け落ち着いて考える

3,933 views

Published on

Devsumi関西2015でのプレゼンテーションです。

Published in: Software
  • Be the first to comment

足を地に着け落ち着いて考える

  1. 1. 足を地に着け、落ち着いて考える 玉川竜司@Sky
  2. 2. 本日の内容 • 少しだけ自己紹介 • 基本を抑えよう • 新しい技術を取り入れよう • デバイスに興味を持とう • エンジニアの気持ち
  3. 3. 少しだけ自己紹介 • 大阪のソフトウェア開発企業
 (Sky株式会社)勤務。 • 本職の技術はデータベース中心。
 パフォーマンスチューニング大好き。 • Webの情報はとても有益ですが、手間 をかけてまとめられた書籍を読むことの 価値も変わってはいないと考えています。 • ということで、技術書翻訳やってます。 • ビッグデータ、ソフトウェア開発に関す る本が中心。
  4. 4. 今年の本 7月 8月 年内
  5. 5. 既刊書の一部
  6. 6. 基本を抑えよう
  7. 7. いわゆる教科書的な知識 • 計算量の理論や基本のデータ構造、アルゴリズム • リレーショナルデータモデル • コンピュータのアーキテクチャ • TCP/IPの仕組み
 
 などなど・・・簡単には変わらない、長持ちする知識
  8. 8. APIは高レベルでも • 下位の実装の性格は必ずにじ み出てきます • 実装に使われているデータ構 造やアルゴリズム、デバイスの 特性は把握しておく • 抽象化されたAPIを提供した り、利用したりするのはもち ろん良いこと • しかし下位のことを忘れてい いわけではない foo[n]=… 挿入、更新、削除、検索の 計算量は? メモリの消費は?
  9. 9. APIは高レベルでも • 下位の実装の性格は必ずにじ み出てきます • 実装に使われているデータ構 造やアルゴリズム、デバイスの 特性は把握しておく • 抽象化されたAPIを提供した り、利用したりするのはもち ろん良いこと • しかし下位のことを忘れてい いわけではない SELECT …
 WHERE …
  10. 10. 「古典」を読みましょう!
  11. 11. 新しい技術を取り入れよう
  12. 12. 新しい技術はカウンターパンチ • 2000年頃「とりまリレーショナルデータベース」 • 2005年頃「リレーショナルデータベースってスケールし ないんじゃ?」 • 2010年頃「NoSQLならなんぼでもスケールする ぜぇぇ」「Hadoop最高」 • 2015年頃「やっぱSQLいいよね」
  13. 13. One size doesn’t fit all • Stonebrakerさんのお言葉 • 技術の長所、短所が自分の仕事にどう影響するかはケースバイケース • 本プレゼンで取り上げる例もあくまで1つの側面に過ぎません。それぞれの技 術者は、それぞれの状況に応じたものの見方ができなければなりません • 新たな長所を持つ技術を取り入れることは、多くの場合新たな短所 を受け入れることでもある • 「とりま」が通用しなくなったことこそ本質。
  14. 14. 新しい技術をきちんと理解する • なぜその新しい技術が登場したのか • どういった領域をターゲットとして登場したのか • その新しい技術を取り入れることによるマイナスは何か • こういったことを理解するためにも、基本を抑えておく ことが非常に大切
  15. 15. 新しい技術をきちんと理解する • なぜその新しい技術が登場したのか:スケーラビリティ • どういった領域をターゲットとして登場したのか:Web 界隈。比較的単純なデータ構造で、トランザクションへ の要求が低い • その新しい技術を取り入れることによるマイナスは何か :データの整合性の担保の難しさ。長期的なメンテナン ス性などなど  NoSQLの場合
  16. 16. 新しい技術をきちんと理解する • なぜその新しい技術が登場したのか:MapReduceが遅 いから。特にI/Oが多いため • どういった領域をターゲットとして登場したのか:イン タラクティブな処理、イテレーティブな処理の高速化 • その新しい技術を取り入れることによるマイナスは何か :成熟度の低さ、運用の難しさ(メモリまわり) Sparkの場合
  17. 17. (ちょっと宣伝はいります)読書の薦め • まとまった情報に一通り目を通すことは大事です • 自分の現状の技術の観点で即断すると、新しい技術に対して ネガティブになりがち • 背景や要求事項が変化していないか?これまでの世界ではデ メリットに見えることが、変化した世界ではそもそも問題に ならなかったりはしないか? • いったんきっちり、その技術の「ルール」をきちんと受け入 れてみるためにも、まとまった書籍は有効です
  18. 18. デバイスに興味を持とう
  19. 19. Thinking Low-Level, Writing Hight-level • どんなプログラムでもデバイスの 制約から逃れることはできない • 逆に、新しいデバイスの登場がゲー ムチェンジにつながることは多々 ある • この5年ではメモリ単価の低下と SSDの登場。 • 次の5年はストレージ/メモリ層の 変化?
  20. 20. NoSQLの場合 データ量 複雑さ RDB ファイル
  21. 21. NoSQLの場合 データ量 複雑さ RDB ファイル NoSQL インターネットの普及、「ビッグデータ」ブーム
  22. 22. NoSQLの場合 データ量 複雑さ RDB ファイル NoSQL デバイスの変化(メモリの増大、マルチコア) クラスタリングの一般化
  23. 23. Hadoopエコシステムの例 • もともとはハードディスクの性能問題への対応という面が大きかった • https://youtu.be/vu0n_86GiJo • 大ききな単位でディスクアクセスすることによって、バッチ処理の性能を大 きく向上させた • 後に、大容量のメモリを使うことでランダムアクセス系のデータ処理にも対 応(HBaseなど) • さらに、メモリをうまく活用できる汎用の処理系として出てきたのがSpark • SSDのバイト単価がもっと下がると、また大きな変化が起こるかも
  24. 24. エンジニアの気持ち
  25. 25. 地道な成長と一足飛びの成長 成果 時間 地道な改善 一足飛びの改善
  26. 26. 地道な成長と一足飛びの成長 成果 時間 地道な改善 周りの人の注目
  27. 27. 保守的な成長と一足飛びの成長 このあたりまではサボっ てるように見えたりする この時点では
 ヒーローっぽい成果 時間
  28. 28. 保守的な成長と一足飛びの成長 努力 時間 でも継続的な努力が必要なのは どちらでも一緒
  29. 29. 保守的な成長と一足飛びの成長 努力 時間 地味な調査期 成果が 見える 時期 地味な調査期
  30. 30. 保守的な成長と一足飛びの成長 努力 時間 地味な調査期 成果が 見える 時期 地味な調査期 やっている本人は(もしかしたら)しんどい時期 周りはやんわり見守ってあげてほしい時期
  31. 31. でも、 新しいことへのチャレンジは楽しいです
  32. 32. まとめ • 基礎をおさえて • 新しいことにも興味をしっかり持って • 地道に努力を続けましょう
  33. 33. ご清聴ありがとうございました。

×