Se ha denunciado esta presentación.
Utilizamos tu perfil de LinkedIn y tus datos de actividad para personalizar los anuncios y mostrarte publicidad más relevante. Puedes cambiar tus preferencias de publicidad en cualquier momento.

非エンジニアのためのこれだけは押さえておきたいWEBサービスの基礎技術

73.804 visualizaciones

Publicado el

本スライドはTECH::CAMP主催で2015年4月11日、4月19日に200名以上を動員して開催された「非エンジニアカンファレンス」の勉強会資料です。
※本資料は説明のため簡易に表現している箇所があります。

TECH::CAMP: https://tech-camp.in/

Publicado en: Tecnología
  • Doctor's 2-Minute Ritual For Shocking Daily Belly Fat Loss! Watch This Video ●●● https://tinyurl.com/y6qaaou7
       Responder 
    ¿Estás seguro?    No
    Tu mensaje aparecerá aquí
  • How can I improve my memory book? How can I improve my memory recall? visit to learn...➤➤ https://bit.ly/2GEWG9T
       Responder 
    ¿Estás seguro?    No
    Tu mensaje aparecerá aquí
  • Protect your brain from memory loss with brain pill. find out more... ■■■ https://bit.ly/2GEWG9T
       Responder 
    ¿Estás seguro?    No
    Tu mensaje aparecerá aquí
  • Odd carb trick burns up to 1LB per DAY.. How?? .. ♥♥♥ https://tinyurl.com/poundinc11
       Responder 
    ¿Estás seguro?    No
    Tu mensaje aparecerá aquí
  • Who Else Wants To Cure Their Acne, Regain Their Natural Inner Balance and Achieve LASTING Clear Skin? Click Here ■■■ https://bit.ly/2SaU9sk
       Responder 
    ¿Estás seguro?    No
    Tu mensaje aparecerá aquí

非エンジニアのためのこれだけは押さえておきたいWEBサービスの基礎技術

  1. 1. 非 エンジニアのための これだけは押さえておきたい WEBサービスの基礎技術 株式会社we-b 代表取締役 真子 就有
  2. 2. 今日の最後にテストをします。
  3. 3. 自己紹介&プロローグ
  4. 4. 自己紹介 真子 就有
 (まこ ゆきなり) 
 株式会社we-b 代表取締役
 TECH::CAMP Founder
  5. 5. 未経験から1ヶ月でサービスを作れるエンジニアになる
 プログラミングキャンプ、TECH::CAMPを運営しています。 https://tech-camp.in/
  6. 6. これまで500名以上の
 未経験者にプログラミングを教えてきました。
  7. 7. 今は「エンジニアを育てる」
 お仕事をさせて頂いておりますが、
  8. 8. 過去は、1日16時間×週7でコードを
 書き続ける数年間送っていました。
  9. 9. 大企業の開発案件をこなしたこともあります。
  10. 10. プロデューサー、ディレクター、営業の方と
 何度もやりとりする中で気づいたこと
  11. 11. エンジニアと非エンジニア の間にある大きな壁
  12. 12. ディレクターAさん:
 「仕様変更をお願いしたいけど、
 どのくらい大変なのかわからないから頼みにくい…
 的外れなことを言って怒らせてしまったらどうしよう」
  13. 13. エンジニアBさん:
 「仕様変更頼まれたけど、技術的に難しいな…気持ち 分かってもらいたいけど、説明のしようがないから『無 理』と言うしかない。」
  14. 14. なぜ壁ができてしまうのか?
  15. 15. 言語の壁と まったく同じ
  16. 16. 言語の壁 = 文化の壁 = 心の壁
  17. 17. ①エンジニアが分かりやすく伝える
 ②非エンジニアが技術を学ぶ 壁をなくす方法:
  18. 18. エンジニア側も歩み寄りが必要です
  19. 19. しかし、IT業界にいる限り、
 技術から離れることはできません
  20. 20. ネイティブ(エンジニア)になる必要はありませんが、
 日常会話(基礎技術)くらいは分かるように
 なることをおすすめします。 非エンジニアの皆様
  21. 21. さらにいうと、 今日をきっかけに自分でサービスを作れるよう
 になってしまえば、良いなともおもっています。
  22. 22. さっそく勉強を始めていきましょう
  23. 23. 今日の勉強会のゴール WEBサービスに関連した基礎技術が
 それぞれどのような役割を持っているか
 イメージできるようになること
  24. 24. ※本勉強会では、
 「イメージをつかむ」ことが目的のため
  意図的に簡略化して説明している箇所があります。
  25. 25. 目次 1. リクエストとレスポンス 2. サーバーとは何か 3. ウェブサイトの仕組み 4. サーバーサイドスクリプトとデータベース
  26. 26. 目次 1. リクエストとレスポンス 2. サーバーとは何か 3. ウェブサイトの仕組み 4. サーバーサイドスクリプトとデータベース
  27. 27. ウェブサービスや、スマホアプリなど
 インターネットを使ったサービスは、
 サーバーと通信をしています。 ※サーバーについては後程、詳しく解説します
  28. 28. PC、スマホからサーバーに情報を
 要求することをリクエストと呼びます http:://tech-camp.in
 を見せて!
  29. 29. リクエストに応えて、サーバーからPC、スマホ側
 に情報を返すことをレスポンスと呼びます。 OK! サイトの情報渡すね!
  30. 30. ちなみに情報を要求する側は、クライアントサイド
 情報を返す側をサーバーサイドと呼ばれます 「いろいろ要求するのはお客さん(クライアント)」
 と覚えてしまいましょう。 クライアントサイド サーバーサイド
  31. 31. WEBサービスは、リクエストとレスポンスの
 連続で成り立っています。
  32. 32. 手紙のように往復でやりとりをするので
 住所にあたるものが必要になります。
  33. 33. IPアドレス IPアドレス:
 54.248.81.201 住所:
 渋谷区桜丘町29番24号 リクエストを送る際に必要なサーバーの住所
  34. 34. 例えばfacebookのIPアドレスはこちらです 「31.13.82.1」
 こんな数字を打ち込んだことはないですよね?
  35. 35. ちなみに「31.13.82.1」と打ち込んでも
 ちゃんとアクセスできます。
  36. 36. http://facebook.com よく知っているのはこっちだと思います。
  37. 37. ドメイン 数字の羅列であるIPアドレスに人間が分かりやすい
 ようにつけられた紐付けられたIPアドレスの別名 31.13.82.1 わかりにくい! facebook.com わかりやすい! この変換を名前解決と呼ぶ
  38. 38. リクエストを送る時、
 http://facebook.comだけではIPアドレスがわからな いので、名前解決を行なおうとします。 facebookのサーバー http://facebook.comの
 IPアドレスを知りたい! IPアドレス:????
  39. 39. どうやって名前解決しているのか?
  40. 40. DNS(ドメインネームシステム) インターネット上のドメイン名を管理するシステム。
 複数のDNSサーバーによって成り立っている。 facebook.com? 54.248.81.201 DNSサーバー
  41. 41. 普段は意識することはありませんが、
 リクエストを送る前には、
 まずドメインの名前解決をして
 IPアドレスを取得しています。
  42. 42. ドメインを購入したことはあるでしょうか?
  43. 43. ドメインを買うと、サーバーのIPアドレスと
 紐付ける設定を行ないます。 ドメイン IPアドレス ※サーバーを借りるとIPアドレスを教えてもらえます
  44. 44. 復習:リクエストとレスポンス •WEBサービスは、リクエストとレスポンスの
 連続で成り立っている •情報を要求する側は、クライアントサイド、情報を返 す側をサーバーサイドと呼ぶ •IPアドレスはサーバーの住所をしめす数字の羅列 •ドメインは人間が分かりやすいようにつけられたIPア ドレスの別名
  45. 45. 目次 1. リクエストとレスポンス 2. サーバーとは何か 3. ウェブサイトの仕組み 4. サーバーサイドスクリプトとデータベース
  46. 46. 先ほど、サーバーとはリクエストに対して
 レスポンスを返すものだと学びました。
  47. 47. サーバーと聞くとなんだか凄いものだと
 思ってる方は多いようです。
  48. 48. こんなごついイメージですか?
  49. 49. ざっくりいうと電源つけっぱで
 ネットに繋がった画面のないパソコンです。
  50. 50. みなさんのお持ちのパソコンでも
 設定をすればサーバーにできます。
  51. 51. 必要な設定の1つがIPアドレスを固定する
 ということです。
  52. 52. みなさんのお持ちのPCはIPアドレスが
 コロコロ変わる住所不定の状況にあります。 ✕ 自分のPCがリクエストを
 受けることはないので固定されたIPは必要ない
  53. 53. IPアドレスを固定するには、
 プロバイダーと別途契約が必要です。
  54. 54. ところで、
 みなさんのお持ちのパソコンの OSはなんですか?
  55. 55. デスクトップOSの世界では
 未だwindowsのシェアが圧倒的です。 Linux 2% Mac 7% Windows 92% 2015年2月デスクトップOSシェア/円グラフ - Net Applications報告 OSシェア:デスクトップ
  56. 56. ちなみにモバイルOSだとiOSとAndroidが二強です。
 このあたりはご存知の方も多いと思います。 その他 11% Android 36% iOS 53% OSシェア:モバイル/タブレット 全体 - NetMarketShare 2014年2月 OSシェア:モバイル/タブレット
  57. 57. サーバーも普通のPC・モバイル端末と
 同じようにOSが入っています。
  58. 58. UnixというOSを聞いたことがあるでしょうか。
 サーバー用OSのシェアではwindowsは少数派です。 その他 10% Windows 32% Unix(Linux含む) 59% 参照URL: http://w3techs.com/technologies/details/os-unix/all/all OSシェア:Webサーバー
  59. 59. Unix ざっくり言うと、OSの元祖のようなもの
 1969年にAT&Tのベル研究所で開発開始 http://ja.wikipedia.org/wiki/UNIX#/media/File:Unix_history-simple.svg UNIX
  60. 60. さらにUnixの内訳をみると、
 LinuxというOSが大半を占めています。 その他 10% Windows 32% Unix(Linux含む) 59% 参照URL: http://w3techs.com/technologies/details/os-unix/all/all Linux:60%
 Unknown:40% UNIXの内訳
  61. 61. Linux UNIXをベースにしたOSの一種
 サーバーOSとして世界的に大きなシェアを占めている
 Linuxをベースとして様々なバージョンが存在している ■代表的なLinuxベースOS
  62. 62. 例:CentOSのデスクトップ画面 WindowsとMac以外の画面を見る機会は少ないですが
 LinuxOSもPCにインストールすれば普通に使えます。
  63. 63. 少しややこしいですが、 サーバー用のOSはLinuxがよく使われていると 理解できれば大丈夫です。
  64. 64. なぜエンジニアは、Macを使っているのか?
  65. 65. 「単純にかっこいい、つかいやすい。」
 というのもありますが、
  66. 66. OSXがUNIXをベースとしたOSで、実際に動かすサー バーの環境と近いというのも理由のひとつです OSXはUnixがベースになっている
 WindowsはUnixベースではありません
  67. 67. サーバーとOSについて学んだので
 それに関連した話をします。
  68. 68. エンジニアが黒い画面を開いて
 カタカタしてるのを見た事ありませんか?
  69. 69. 表示されているのは得たいのしれない文字だけ
  70. 70. マウスやトラックパッドを使って直感的に
 パソコンを操作できるのは今や当たり前です
  71. 71. 昔のパソコンは文字を打つことしかできませんでした。 これはCUI(character-based user interface)と 呼ばれます。
  72. 72. クリックだけで誰もが使える
 今のGUI(グラフィカルユーザーインターフェイス)を
 普及させようと推し進めたのは、
 故スティーブジョブズ氏だったりします。
  73. 73. エンジニアはいつも黒い文字だけの画面を
 開いている理由は、開発はCUIを中心に行なうこ とが多いからです。
  74. 74. すごい勢いでタイピングしてるように見せて、
 実はただフォルダを移動してるだけだったりします。
  75. 75. 復習:サーバーとは何か • サーバーは特定のリクエストに対してレスポンスを 返す電源ネットつけっぱのコンピューター • サーバーのOSはLinuxが使われていることが多い • 直感的にマウス等で操作ができるGUIに対し、開発 はコマンド操作のみのCUIが中心である
  76. 76. 目次 1. リクエストとレスポンス 2. サーバーとは何か 3. ウェブサイトの仕組み 4. サーバーサイドスクリプトとデータベース
  77. 77. みなさんは、
 ブラウザを使って多くのウェブサイトを
 見ていると思います。
  78. 78. ウェブサイトの画面は
 どのような技術で表示されているのか
 学んでいきましょう。
  79. 79. HTML ウェブページを作成するために開発された言語。
 文書の構造を明確にしたり文書の中に画像や動画を配 置できる。 HTMLファイル ブラウザの画面
  80. 80. 世の中のあらゆるウェブサイトは
 HTMLで書かれています。
  81. 81. こちらはTECH::CAMPのウェブサイトです

  82. 82. HTMLを表示するとこのようになります。

  83. 83. しかし、注意すべき点としては
 HTMLはあくまでサイトの文章、画像の構造を
 決めるためのものだということです。
  84. 84. いわゆるデザインに関する情報は
 CSSという言語で指定していきます
  85. 85. CSS ウェブページのスタイル(見た目)を指定するための言 語です。文章構造とデザインを切り分けることができ ます。 CSSファイル HTMLファイル 実行結果
  86. 86. 見た目に関する情報はCSSで
 まとめて管理することができます。

  87. 87. 例えばウェブサイトの見出しの色だけ変えたい時、 HTMLが見た目の情報を持っていると、
 全てを編集しないといけないので骨が折れます。 修正 修正 修正
  88. 88. CSSでまとめて管理していると
 1つのファイルを編集するだけで済みます
 修正
  89. 89. ウェブサイトをつくりたいとおもったら、サーバーに HTMLとCSSファイルをアップロードしておきます。 アップロード
  90. 90. レスポンスでHTMLファイルとCSSファイルを
 返すことでウェブページを表示することができます。
  91. 91. 復習:ウェブサイトの仕組み • HTMLはウェブページを制作するための言語で、文 章の構造を決めることができる。 • CSSは、ウェブページのスタイル(見た目)を指定す ることができる • レスポンスでHTMLとCSSを返すことでウェブペー ジを表示することができる

  92. 92. 目次 1. リクエストとレスポンス 2. サーバーとは何か 3. ウェブサイトの仕組み 4. サーバーサイドスクリプトとデータベース
  93. 93. 次に、サーバーがリクエストを
 受け取ったときの処理について考えていきます。 http:://tech-camp.in
 を見せて!
  94. 94. 最後はレスポンスを
 返すことがゴールです レスポンス OK! サイトの情報渡すね!
  95. 95. サーバー内部でどんなことが
 行われているか見ていきましょう!
  96. 96. あらゆるプログラムは、先ほど解説した
 LinuxOSの上で動作します リクエスト レスポンス
  97. 97. ここにただHTMLファイルを置くだけでも
 ウェブサイトは作れます リクエスト レスポンス
  98. 98. そのかわり、いつ見ても
 まったく同じページが表示されます。
  99. 99. ただのブログなら良いかもしれませんが
 サービスをつくることはできません。
  100. 100. サービスをつくるには、
 ①データを保存する仕組み
 ②サービスの仕様を反映したロジック
 が必要です。
  101. 101. サーバーサイドスクリプト
 (ruby/java/PHP) データベース ロジックはサーバーサイドスクリプト、
 データの保存はデータベースが担当します。 リクエスト レスポンス
  102. 102. データベースから解説していきます サーバーサイドスクリプト
 (ruby/java/PHP) データベース リクエスト レスポンス
  103. 103. facebookのようなウェブサービスには
 多くの情報がのっています。
  104. 104. これらのデータを保存しておく場所が必要です。
  105. 105. データベース データを保存するシステム。通常エクセルのような
 表形式で保存され、1つの表をテーブルと呼ぶ。 id 名前 性別 年齢 住所 1 真子 男性 25 東京 2 木村 女性 21 神奈 3 鈴木 男性 22 栃木 4 小林 男性 23 群馬 ユーザーテーブル id 本文 日時 投稿者id 1 おはよう 14/1/1 1 2 こんにちは 14/1/2 2 3 おやすみ 14/1/3 3 4 さよなら 14/1/4 4 投稿テーブル
  106. 106. データベースを操作するための言語も存在します
  107. 107. SQL(エスキューエル) データベースを操作するための言語。
 テーブルの読み出し、追加、更新などの操作ができる id 名前 性別 年齢 住所 1 真子 男性 25 東京 2 木村 女性 21 神奈 3 鈴木 男性 22 栃木 SELECT * FROM USERS WHERE ID = 1; 例:ユーザーテーブルからIDが1のレコード(列)を取り出す
  108. 108. 次にサーバーサイドスクリプトについて説明します サーバーサイドスクリプト
 (ruby/java/PHP) データベース リクエスト レスポンス
  109. 109. データベースはただデータが
 保存されているだけなので、
 それだけでサービスをつくることはできません。
  110. 110. サービスの仕様にもとづいたロジックや
 実際に返すHTMLの情報をプログラムしておく
 必要があります。
  111. 111. サーバーサイドスクリプト Ruby、Java、PHPを始めとするサーバー
 での処理を担うプログラム。これらを用いてロジック
 を書くことで動的なアプリケーションを作成できる
  112. 112. サーバーサイドスクリプトは、必要に応じて
 SQLを用いてデータベースから情報を取得します サーバーサイドスクリプト
 (Ruby/Java/PHP) データベース SELECT * FROM USERS 
 WHERE ID = 1;
  113. 113. サーバーサイドサイドスクリプトは、データベースから 取得したデータを利用して HTML/CSS を生成します。 サーバーサイドスクリプト
 ( Ruby / Java / PHP ) データベースから取得したデータ
  114. 114. Ruby、PHP、Javaなど複数のサーバーサイドス クリプトの言語がありますが、書き方が違うだけ で役割は変わりありません。
  115. 115. サーバーサイドスクリプト
 (Ruby/Java/PHP) データベース 最後は、サーバーからクライアントサイドに
 HTML/CSSを返して終了です。 リクエスト レスポンス
  116. 116. ブラウザが理解できるのは HTML/CSS だけです。
 データベースやサーバーサイドスクリプトは、ブラ ウザとは全く関係ありません。
  117. 117. 復習:
 サーバーサイドスクリプトと データベース • データベースは、データの保存するシステムで
 テーブルとよばれる表形式で保存される • SQLはデータベースを操作するための言語 • サーバーサイドスクリプト(Ruby、Java、PHP等)は
 ウェブサービスのロジックを担当する • サーバーサイドスクリプトは、データベースから必要な
 データを取得する

  118. 118. おまけ ライブコーディングによる
 Rubyプログラミング基礎講座
  119. 119. 最後にTECH::CAMPについて
 ご紹介させてください。 https://tech-camp.in/
  120. 120. TECH::CAMPとは? 未経験から最短1ヶ月でサービスを作れるエンジニア を育てるプログラミング学習キャンプです。 未経験から急成長 短期集中キャンプ いつでも質問可能
  121. 121. TECH::CAMPで急成長できる理由 土日祝日含む12∼24時で 即疑問解消する 手厚い質問サポート × わかりやすさにこだわった 完全オリジナルの オンライン学習システム
  122. 122. オリジナル学習システム TECH::MASTER Ruby HTML・CSS Ruby on Rails わかりやすさにこだわり抜き、既に900回以上の アップデートを重ねています。用語集や練習問題も 充実、他に教材を用意する必要はありません
  123. 123. 12時∼24時まで質問し放題の質問サポート体制 桜丘のキャンプでメンターが質問に即回答 します。オフィスは土日を含め12時∼2 4時まで開放 キャンプで直接質問 オンライン質問対応 自宅や職場で学習していても画面共有し ながらメンターに質問する事ができま す。オンラインは土日を含め12時∼2 4時まで受付。
  124. 124. 学習コース①:WEBアプリケーションコース 124 Ruby on Rails を中心に、Webアプリケーションを つくるために必要な技術力を身につけます。 Ruby & Ruby on Rails Rubyは近年で最も伸びている プログラミング言語の1つです。 世界的なフレームワークRuby On Railsを使いWEBアプリケー ション開発を学びます。 ソースコード管理Git Gitはプログラマーにとって 必須のソースコード管理ツール です。Gitを使いチーム開発を どのように行っていくかも 学んで頂きます。 HTML5 & CSS3 SQL Webブラウザの表示で必要な マークアップ言語の基礎です。 モバイル、タブレッドあらゆる デバイスでも美しくに描画できる コーディング技術を身につけます。 SQLはデータベースを扱うため の言語で、データベースを 絡めたアプリケーションを 構築するには必須の知識です。
  125. 125. 学習コース②:iPhoneアプリコース 125 Swift・Xcodeを中心にiPhoneアプリをリリースする ために必要な技術力を身につけます。 iPhoneアプリコースは5月30日よりスタート予定(初回は招待制)
  126. 126. 実施予定と参加要項 ■次回実施 5/30 ∼ 6/30 ※締め切り5月24日(日)18時 5/30(土)夕方にキックオフ会を予定 ■参加要項 • 期間内に合計100時間以上、学習時間を確保できる方
 (受講期間は1ヶ月か2ヶ月をお選びいただけます。) • Mac(PC)を持参できる方
 ※月額5000円(税抜)でMacのレンタルを行っています • キャンプ終了後も継続的に学習を続け、技術を活かして活躍してい く意志のある方

  127. 127. 復習テスト!!
  128. 128. 全問正解すると TECH::CAMPノート もしくはペン お好きなほうを プレゼント!!
  129. 129. サーバーのOSは ??? が 使われていることが多い B:RelaxA:Linux
  130. 130. サーバーの住所をしめす数字の 羅列のことを ?? と呼ぶ B:ITアドレスA:IPアドレス
  131. 131. 開発はコマンド操作のみの ?? が中心である B:CUIA:GUI
  132. 132. データベースを操作するための 言語は ??? である。 B:SSLA:SQL
  133. 133. 次のRubyコードの出力結果は? B:8A:4
  134. 134. 本日はありがとうございました。

×