Upgrade to Pro — share decks privately, control downloads, hide ads and more …

【入門】3時間でアプリ公開!ゼロからのプログラミングRails講座

 【入門】3時間でアプリ公開!ゼロからのプログラミングRails講座

DIVE INTO CODE では、プロのソフトウェアエンジニアとして社会で活躍できる人材を輩出することを何よりも重視しています。

「失われた20年」と言われる経済成長率の低迷や大企業の倒産、高齢化によるポスト減により、社会に出て 一生ひとつの会社に所属して安泰に過ごす年功序列の神話は崩れ去り ました。

国は迫り来る第四次産業革命に備えて活躍できる若年層を育成するために、 プログラミング教育の義務教育化 を決断。企業はITのチカラを駆使して 新規事業を興して売上を拡大する ことや 働き方改革 に躍起になっています。

プログラミング教育の義務教育化、企業の新規事業創造、リモートワークや副業解禁による働き方改革。これらのニュースは連日メディアに報道され、目にしない日はないと言っても過言ではありません。

その潮流の真っ只中にいるのが、 ソフトウェアエンジニア です。

ソフトウェアエンジニアとして社会で活躍することは、 生き抜くチカラを身につけ、日本に活力を与えること に他なりません。DIVE INTO CODE では、プロのソフトウェアエンジニアとして社会で活躍できる人材を輩出することを何よりも重視しています。

その第一歩となる入門講座として、 プログラミングに興味を持つすべての人が一歩踏み出せる ようになるために、本講座を企画開催しています。

人生で はじめてのプログラミングを体験する方でも大丈夫! 開発環境の構築とネット上へのWebアプリケーション公開を一気に体験いただけます。

Hiroyoshi NORO

September 01, 2018
Tweet

More Decks by Hiroyoshi NORO

Other Decks in Technology

Transcript

  1. 1 Copyright © DIVE INTO CODE Corp. All Rights Reserved.

    構成 1. 自己紹介 2. 開発に必要な初期知識 システム開発、開発作業、開発環境、開発言語、Ruby on Rails、作 業方法の基礎 3. 実践ワーク お試しアプリケーションの開発、Gitでバージョン管理、Herokuでネッ ト公開 4. スキルアップのコツ エンジニアになる3つの方法 5. Appendix オススメの学習教材
  2. 2 Copyright © DIVE INTO CODE Corp. All Rights Reserved.

    自己紹介 29歳ではじめてプログラミングを経験。現在、Web/機械学習エン ジニアを輩出するプログラミングスクールの代表講師。 1980年 誕生 22歳 東京農業大学 農学部農学科(学士)卒業 「昆虫生態学研究室」 22歳 すみや 「接客販売」 25歳 リクルート 「法人営業」 29歳 ワークスアプリケーションズ 「ITコンサル」 33歳 プロスタンダード 「研修講師」 34歳 グロービス経営大学院大学 経営管理科(修士)卒業 35歳 DIVE INTO CODE 創業 キャリアの軸は、未経験分野への挑戦
  3. 3 Copyright © DIVE INTO CODE Corp. All Rights Reserved.

    DIVE INTO CODE は、「プロのエンジニアになるために挑戦する人 が、チャンスをつかめる場をつくる」。 自己紹介 フルタイム就業 正社員 / フリーランス 実課題を元にした研究 リモートワークで アルバイト / 副業 政府と組み 地方&海外IT人材育成 卒業後も学び続ける 永続 勉強会 スクールで本気で学習 プログラミング初体験
  4. 4 Copyright © DIVE INTO CODE Corp. All Rights Reserved.

    Webエンジニア講師として日本全国、ベトナムやルワンダでも英語 で開催。プログラミングを学びたい人は世界中にいる。 自己紹介 誰でも過去に関係なく挑戦できる社会をつくりたい
  5. 5 Copyright © DIVE INTO CODE Corp. All Rights Reserved.

    本日のゴール Webアプリケーションをゼロから開発してネット公開までを体 験し、自力で学ぶキッカケを手に入れること。 http://dive-into-code.herokuapp.com/
  6. 6 Copyright © DIVE INTO CODE Corp. All Rights Reserved.

    できるようになること クックパッド
  7. 7 Copyright © DIVE INTO CODE Corp. All Rights Reserved.

    できるようになること クラウドワークス
  8. 8 Copyright © DIVE INTO CODE Corp. All Rights Reserved.

    できるようになること Misoca
  9. 9 Copyright © DIVE INTO CODE Corp. All Rights Reserved.

    できるようになること AirBnB
  10. 10 Copyright © DIVE INTO CODE Corp. All Rights Reserved.

    できるようになること Hulu
  11. 11 Copyright © DIVE INTO CODE Corp. All Rights Reserved.

    できるようになること GitHub
  12. 12 Copyright © DIVE INTO CODE Corp. All Rights Reserved.

    Copyright © 2015 TimeShift Corp. All Rights Reserved. 開発に必要な 初期知識
  13. 13 Copyright © DIVE INTO CODE Corp. All Rights Reserved.

    全体像 システム開発の流れ 開発作業の流れ 開発環境とは 開発言語とは Ruby on Railsとは 作業方法の基礎 システム開発の流れから、実作業のやり方まで幅広い知識 が求められる。 システム開発 開発作業 開発環境 開発言語 作業方法
  14. 14 Copyright © DIVE INTO CODE Corp. All Rights Reserved.

    開発の流れ 開発の流れは、現実で実現したい仕組みをコンピュータの仕 組みに近づけて設計・開発作業・テストする。 何が必要か? 要件定義 全体の構成は? 基本設計 画面の内容は? 詳細設計 開発作業 部分ごとに検証 単体テスト 構造ごとに検証 結合テスト できたもの検証 システムテスト 本講座 現実世界 コンピュータ内 システム開発 開発作業 開発環境 開発言語 作業方法
  15. 15 Copyright © DIVE INTO CODE Corp. All Rights Reserved.

    開発作業の流れ 開発作業の内訳 本講座で使用するもの 1.開発環境の構築  ※初回のみ ▪Codeanywhere ★ □Cloud9 □PCに直接インストール 等 2.開発言語で内部構造をつくる  (コーディング) ▪Ruby (Ruby on Rails) ★ □PHP (CakePHP) □Java 等 3.データを入れる箱をつくる  (コーディング) ▪PostgreSQL ★ □MySQL □MongoDB 等 4.ブラウザ上のUIを描く  (コーディング) ▪CSS ▪HTML □jQuery 等 5.開発したソースコードを管理 ▪Git ★  (チーム開発用) □Bitbucket  (チーム開発用) □Github 等 6.インターネット上に公開 ▪heroku ★ □レンタルサーバ契約 等 開発作業は6つに分かれる。 システム開発 開発作業 開発環境 開発言語 作業方法
  16. 16 Copyright © DIVE INTO CODE Corp. All Rights Reserved.

    2つのクラウドサービス「Codeanywhere」と「Heroku」を活用すれ ば、無料でインターネット公開までできる。 開発環境の構築 コーディング 開発したソース コードを管理 インターネット上に 公開 Codeanywhere Git Heroku ソースコード 開発作業の流れ システム開発 開発作業 開発環境 開発言語 作業方法
  17. 17 Copyright © DIVE INTO CODE Corp. All Rights Reserved.

    開発環境とは システム開発 開発作業 開発環境 開発言語 作業方法 開発環境とは、開発作業に必要な場所と道具のこと。 開発言語 フレームワーク Webサーバ データベース管 理システム バージョン管理 ツール Puma
  18. 18 Copyright © DIVE INTO CODE Corp. All Rights Reserved.

    開発環境とは 従来は PC を用意して複雑なインストール作業が必要だった が、今やボタンひとつで可能に。 従来 本講座 ・ボタン1つ + α わずか10分で完了! システム開発 開発作業 開発環境 開発言語 作業方法 Codeanywhere ・インストールするPCを用意 ↓ ・開発言語をインストール ↓ ・フレームワークをインストール ↓ ・データベース管理システムをインストール ↓ ・バージョン管理システムをインストール 等 初めての時は3日はかかる…。
  19. 19 Copyright © DIVE INTO CODE Corp. All Rights Reserved.

    開発環境とは Codeanywhere内には言語やツールが用意されているため、 ブラウザで開いて使うだけ。 システム開発 開発作業 開発環境 開発言語 作業方法 folder viewer file viewer terminal
  20. 20 Copyright © DIVE INTO CODE Corp. All Rights Reserved.

    開発言語とは 人間にもコンピュータにもわかるコトバで、プログラムを構築 しコンピュータを動かすことができるもの。 Ruby PHP システム開発 開発作業 開発環境 開発言語 作業方法
  21. 21 Copyright © DIVE INTO CODE Corp. All Rights Reserved.

    開発言語とは 開発言語は60年前に生まれ、時代の潮流と共に様々な言語 が生まれた。Rubyは1995年に誕生。 ※出典:ひつじTOWN「C言語あれこれ」 システム開発 開発作業 開発環境 開発言語 作業方法
  22. 22 Copyright © DIVE INTO CODE Corp. All Rights Reserved.

    開発言語とは 世界中にある開発言語のうち、Rubyが唯一の日本産の開発 言語。 ※開発者は、まつもとゆきひろ氏 システム開発 開発作業 開発環境 開発言語 作業方法
  23. 23 Copyright © DIVE INTO CODE Corp. All Rights Reserved.

    Ruby on Rails システム開発 開発作業 開発環境 開発言語 作業方法 Rubyは開発言語。Ruby on RailsはRubyで開発する際の「型」とな るフレームワーク。
  24. 24 Copyright © DIVE INTO CODE Corp. All Rights Reserved.

    Ruby on Rails Ruby on Rails は、デンマーク出身のDavid HeinemeierHansson氏 によって、無駄な時間を減らすために作られた。 DRY (Don't repeat yourself) CoC (Convention over Configuration) “ぼくがやろうとしていることは、自分の 時間を浪費する時間を減らそうっていう こと。どうでもいいことに時間を費やす のを減らす。” 「同じことを繰り返さない」 「設定よりも規約」 ※出典:HRナビ「「10倍プログラマ」の神話、Ruby on Railsの生みの親が語った高い生産性のカギとは!?」 システム開発 開発作業 開発環境 開発言語 作業方法
  25. 25 Copyright © DIVE INTO CODE Corp. All Rights Reserved.

    Ruby on Rails で開発されたWebサービスの例「Airbnb」 Ruby on Rails システム開発 開発作業 開発環境 開発言語 作業方法
  26. 26 Copyright © DIVE INTO CODE Corp. All Rights Reserved.

    インターネット ブラウザを通して通信が流れる。通信先のコンピュータから処理結 果が返る。ブラウザ上に画面が表示される。 リクエスト GET, POST … レスポンス HTML, images … URL Webブラウザ HTTP通信 サーバ Ruby on Rails システム開発 開発作業 開発環境 開発言語 作業方法
  27. 27 Copyright © DIVE INTO CODE Corp. All Rights Reserved.

    Webブラウザは、HTMLとCSS、JavaScriptを読み込みページを表 示する。サーバは、計算やデータの格納を行う。 HTML(骨組み) + CSS(装飾) + JavaScript(動き) レスポンス リクエスト ①Webブラウザ ②HTTP通信 ③サーバ Ruby on Rails Ruby   +  PostgreSQL Ruby on Rails システム開発 開発作業 開発環境 開発言語 作業方法
  28. 28 Copyright © DIVE INTO CODE Corp. All Rights Reserved.

    Ruby on Rails Webブラウザから送られたHTTP通信をサーバが受け取り役割に 応じて処理が順番に流れ、レスポンスが返る。 HTTP Server Controller View Model データベース管 理システム内 Database リクエスト レスポンス Router URL ① ② ③ ④ ⑤ ⑥ ⑦ ⑧ ⑨ 10 Ruby on Rails システム開発 開発作業 開発環境 開発言語 作業方法
  29. 29 Copyright © DIVE INTO CODE Corp. All Rights Reserved.

    店舗オフィス 経験したことに例えて理解する。Railsの処理の流れは、銀行のオ ペレーションの流れと一緒。 特別な場所 自動ドア 窓口担当 通帳 明細 出納係 金庫 入る 出る 案内役 ◦◦銀行 ××支店 Ruby on Rails システム開発 開発作業 開発環境 開発言語 作業方法
  30. 30 Copyright © DIVE INTO CODE Corp. All Rights Reserved.

    Ruby on Rails Ruby on Rails Ruby on Rails を理解する第一歩は、http リクエストからレスポン スまでの流れを理解すること。 HTTP Server Controller View Model データベース管 理システム内 Database リクエスト レスポンス Router URL ① ② ③ ④ ⑤ ⑥ ⑦ ⑧ ⑨ 10 システム開発 開発作業 開発環境 開発言語 作業方法
  31. 31 Copyright © DIVE INTO CODE Corp. All Rights Reserved.

    Ruby on Rails 各役割は所定のフォルダ内にファイルとして存在。その中に 開発言語 Ruby が書かれている。 http Server Controller View Model データベース 管理システム Router 役割別のフォルダ構造。 ファイル内に Ruby が書か れている。 Codeanywhere内 概念図 システム開発 開発作業 開発環境 開発言語 作業方法
  32. 32 Copyright © DIVE INTO CODE Corp. All Rights Reserved.

    Ruby on Rails 処理の流れを具体的に読み解くことができるようになると、自力で 開発ができるようになる。 http Server def index @blogs = Blog.all end <% @blogs.each do |blog| %> <% end %> class Blog < ActiveRecord::Base end /config /routes.rb URL /blogs http GET blogs#index /controllers/blogs_c ontroller.rb /models/ blog.rb PostgreSQL blogsテーブル /views/ blogs/index.html.erb h1 { } /assets/stylesheets/ blogs.css.scss “O/Rマッパー” Blog.all ↓ RubyからSQLに変換 ↓ SELECT * FROM blogs; システム開発 開発作業 開発環境 開発言語 作業方法
  33. 33 Copyright © DIVE INTO CODE Corp. All Rights Reserved.

    Railsの処理の流れ Ruby on Railsはリクエストからレスポンスまでの流れをつくる。そ の中にHTML、CSS、JavaScript、Ruby等を実装する。 http Server /config /routes.rb URL /blogs http GET blogs#inde x /controllers/blogs_c ontroller.rb /models/ blog.rb PostgreSQL blogsテーブル /views/ blogs/index.html.erb /assets/stylesheets/ blogs.css.scss システム開発 開発作業 開発環境 開発言語 作業方法
  34. 34 Copyright © DIVE INTO CODE Corp. All Rights Reserved.

    作業方法の基礎 キーボードを使いターミナルを操作する。ターミナルは、文字 でコンピュータを操作するための窓口。 システム開発 開発作業 開発環境 開発言語 作業方法 terminal
  35. 35 Copyright © DIVE INTO CODE Corp. All Rights Reserved.

    作業方法の基礎 ターミナルは、コンピュータに対して一行(プロンプト)につき 一回だけ命令ができる。 コンピュータをキーボードで操作することに慣れましょう。 システム開発 開発作業 開発環境 開発言語 作業方法 プロンプト 現在いるディレクトリ(フォルダ)
  36. 36 Copyright © DIVE INTO CODE Corp. All Rights Reserved.

    作業方法の基礎 ターミナル操作の2つの注意点。 注意点① 半角文字で操作する 注意点② どこのフォルダ上にいるかを把握する システム開発 開発作業 開発環境 開発言語 作業方法
  37. 37 Copyright © DIVE INTO CODE Corp. All Rights Reserved.

    作業方法の基礎 マニュアルを見る。コマンドをコピーする。ターミナルに入力 する。エンターで実行する。 ①マニュアルを見る ②コマンドを作成する ③ターミナルに入力する コピー&ペースト 編集してコマンドを完成 ※メモ帳では半角”や’が全角に自動 変換されることがあるため 使用禁止 システム開発 開発作業 開発環境 開発言語 作業方法
  38. 38 Copyright © DIVE INTO CODE Corp. All Rights Reserved.

    Copyright © 2015 TimeShift Corp. All Rights Reserved. 実践ワーク
  39. 39 Copyright © DIVE INTO CODE Corp. All Rights Reserved.

    実践ワーク https://diver.diveintocode.jp/semin ar_documents
  40. 40 Copyright © DIVE INTO CODE Corp. All Rights Reserved.

    実践ワーク 3ステップで、Webアプリケーションをネット公開! 【STEP0】Codeanywhereで開発環境を構築 https://diver.diveintocode.jp/seminar_documents/rails00_codeanywhere 【STEP1】お試しアプリケーションの開発 https://diver.diveintocode.jp/seminar_documents/rails01_codeanywhere 【STEP2】Gitでバージョン管理 https://diver.diveintocode.jp/seminar_documents/rails02_codeanywhere 【STEP3】Herokuでネット公開(初回) https://diver.diveintocode.jp/seminar_documents/rails03_codeanywhere ① ② ③ 1 2 3 0
  41. 41 Copyright © DIVE INTO CODE Corp. All Rights Reserved.

    実践ワーク 【図解】3ステップ ① ② ③ 0 Codeanywhere C V M DB Heroku HTTP Server C V M DB Git内(ファイル)に記録 C V M 1 2 3 HTTP Server
  42. 42 Copyright © DIVE INTO CODE Corp. All Rights Reserved.

    実践ワーク Codeanywhereで開発環境を構築 Codeanywhereを使う3つのメリット 1. 開発用コンピュータを無料で一台ゲットできる 2. 開発言語やツールのインストールが一瞬でできる 3. ネットがつながればどこからでも作業ができる ① ② ③ 0
  43. 43 Copyright © DIVE INTO CODE Corp. All Rights Reserved.

    Codeanywhereで開発環境を構築 実践ワーク ① ② ③ 0 Codeanywhere 1コンテナ 自動インストール:Git … コンテナの新規作成 アカウント登録 手動インストール:Ruby, Rails, PostgreSQL, Heroku Toolbelt PostgreSQLを起動
  44. 44 Copyright © DIVE INTO CODE Corp. All Rights Reserved.

    実践ワーク お試しアプリケーションの開発 “Railsの魔法“を使いアッと言う間に開発する ・「rails new 名前」でアプリケーションの“骨組み”、”処理の流れ”を一瞬 でつくることができる ・「rails g scaffold 画面名」で指定のURLでアクセスできる画面一式を一 瞬でつくることができる ① ② ③ 1
  45. 45 Copyright © DIVE INTO CODE Corp. All Rights Reserved.

    実践ワーク お試しアプリケーションの開発 ① ② ③ 1 Codeanywhere HTTP Server C V M DB rails new achieve -d postgresql rails g scaffold Blog title:string content:text rails db:create db:migrate rails s cd achieve
  46. 46 Copyright © DIVE INTO CODE Corp. All Rights Reserved.

    実践ワーク Gitでバージョン管理 Gitを使う2つのメリット 1. フォルダやファイル、その内容を全て覚えさせることがで きる 2. 覚えた内容をコマンドひとつでHerokuへ送信できる ① ② ③ 2
  47. 47 Copyright © DIVE INTO CODE Corp. All Rights Reserved.

    Codeanywhere 実践ワーク Gitでバージョン管理 ① ② ③ 2 HTTP Server C V M DB Git内(ファイル)に記録 フォルダ、ファイル C V M git add . git commit –m “ ” git config 〜 git log git status
  48. 48 Copyright © DIVE INTO CODE Corp. All Rights Reserved.

    実践ワーク Herokuでネット公開(初回) Herokuを使う3つのメリット 1. アプリケーションをインターネット上に公開できる 2. いくつでも無料でアプリケーションを公開できる 3. インストール作業は一切不要 ① ② ③ 3
  49. 49 Copyright © DIVE INTO CODE Corp. All Rights Reserved.

    Codeanywhere Git Heroku 新規ユーザ登録 実践ワーク Herokuでネット公開(初回) ① ② ③ 3 heroku login HTTP Server C V M DB C V M 1APP Git git push heroku master HTTP Server C V M DB C V M heroku create heroku run rails db:migrate RAILS_ENV=production
  50. 50 Copyright © DIVE INTO CODE Corp. All Rights Reserved.

    実践ワーク 着陸!!(完了) ① ② ③
  51. 51 Copyright © DIVE INTO CODE Corp. All Rights Reserved.

    本日のゴール 自力で学ぶキッカケとなる体験になりましたか? http://dive-into-code.herokuapp.com/
  52. 52 Copyright © DIVE INTO CODE Corp. All Rights Reserved.

    Copyright © 2015 TimeShift Corp. All Rights Reserved. スキルアップ のコツ
  53. 53 Copyright © DIVE INTO CODE Corp. All Rights Reserved.

    1. “習うより慣れる” 手を動かさないと絶対に身につかない。 2. “時間制限を設ける” 30分以上つまづいたら抱え込まずに質問する。 3. “守破離の守からはじめる” 書籍や教材の写経(しゃきょう)をする。 スキルアップのコツ プログラミング学習の三原則
  54. 54 Copyright © DIVE INTO CODE Corp. All Rights Reserved.

    3つの方法 独学 エンジニアになるための3つの方法 通学 就職
  55. 55 Copyright © DIVE INTO CODE Corp. All Rights Reserved.

    独学 孤独。もやもやしても、だれも教えてくれない。時 間ばかりが過ぎ去っていく。
  56. 56 Copyright © DIVE INTO CODE Corp. All Rights Reserved.

    しかし、お金は節約できる。 時間よりもお金が大事なのか、はあなたの 価値観次第・・・。 独学
  57. 57 Copyright © DIVE INTO CODE Corp. All Rights Reserved.

    通学 お金がかかる。相場、30〜100万円也。学ぶ「だ け」なら高い買い物。
  58. 58 Copyright © DIVE INTO CODE Corp. All Rights Reserved.

    通学 しかし、聞ける相手がいるから早く進む。 聞ける相手 が教える専門家であれば良いが、はたして素人集団でないことを祈るばかり・・・。
  59. 59 Copyright © DIVE INTO CODE Corp. All Rights Reserved.

    就職 応募、筆記試験、面接・・・。受かる保証はない。 「あなた、実務経験あるの?」
  60. 60 Copyright © DIVE INTO CODE Corp. All Rights Reserved.

    Webエンジニア求人 1,000社以上 確認済み
  61. 62 Copyright © DIVE INTO CODE Corp. All Rights Reserved.

    転職 「あなた、 実務経験あるの?」
  62. 63 Copyright © DIVE INTO CODE Corp. All Rights Reserved.

    就職 運良くポテンシャル採用されても・・・ それ、ググった!?
  63. 64 Copyright © DIVE INTO CODE Corp. All Rights Reserved.

    3つの方法 質問 お金 実務経験 独学 × △ × 通学 ◦ × × 就職 △ ◦ ◦
  64. 65 Copyright © DIVE INTO CODE Corp. All Rights Reserved.

    Copyright © 2015 TimeShift Corp. All Rights Reserved. たったひとつの カギ
  65. 66 Copyright © DIVE INTO CODE Corp. All Rights Reserved.

    たったひとつのカギ 独学 通学 就職 実務経験
  66. 67 Copyright © DIVE INTO CODE Corp. All Rights Reserved.

    たったひとつのカギ DIVE INTO CODE は、つくりました。 質問 お金 模擬経験 理想 ◦ ◦ △ すべてを得る道を
  67. 68 Copyright © DIVE INTO CODE Corp. All Rights Reserved.

    DIVE INTO CODE は、プロのエンジニアになるために挑戦する人 が、チャンスをつかめる場をつくる。 フルタイム就業 正社員 / フリーランス 実課題を元にした研究 リモートワークで アルバイト / 副業 政府と組み 地方&海外IT人材育成 卒業後も学び続ける 永続 勉強会 スクールで本気で学習 プログラミング初体験 ITエンジニアになるならDIVE INTO CODE プロのスタートラインに立つ https://diveintocode.jp/
  68. 69 Copyright © DIVE INTO CODE Corp. All Rights Reserved.

    オススメの学習教材 はじめるなら Progate。腕試しなら Railsチュートリアル。 Progate Railsチュートリアル https://prog-8.com/languages/ruby https://prog-8.com/languages/rails5 https://railstutorial.jp/