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アプリケーション公開を一気に体験いただけます。

Kazuki Saito

November 11, 2018
Tweet

Other Decks in Programming

Transcript

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

    1. Introduction ( 5分) 2. 開発に必要な初期知識 ( 50分) システム開発、開発作業、開発環境、開発言語、Ruby on Rails、作 業方法の基礎 3. 実践ワーク (110分) お試しアプリケーションの開発、Gitでバージョン管理、Herokuでネッ ト公開 4. スキルアップのコツ ( 10分) エンジニアになる3つの方法 5. Appendix お薦めの学習サイト、書籍、ツール等 構成
  2. 2 Copyright © DIVE INTO CODE Corp. All Rights Reserved.

    Introduction 24歳で初めてプログラミングを経験。 それまでは留学やカフェで働くなど、PCを使用する事はほとんどな かった。 • 1993年 誕生 • 2011年 高校卒業 • 2012年 留学 • 2015年 帰国 • 飲食店勤務 • 2017年 DIVE INTO CODE入社
  3. 3 Copyright © DIVE INTO CODE Corp. All Rights Reserved.

    Introduction DIVE INTO CODE は、「プロのエンジニアになるために挑戦する人 が、チャンスをつかめる場をつくる」。 就業 研究 リモートワーク 政府 永続 勉強会 本気で学習 初体験
  4. 4 Copyright © DIVE INTO CODE Corp. All Rights Reserved.

    講師として日本全国、ベトナムやルワンダでも英語で開催。プログ ラミングを学びたい人は世界中にいる。 Introduction
  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.開発環境の構築  ※初回のみ ▪Cloud9 ★ □PCにVagrant + CentOSをインストール □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つのクラウドサービス「Cloud9」と「Heroku」を活用すれば、無料で インターネット公開までできる。 開発環境の構築 コーディング 開発したソース コードを管理 インターネット上に 公開 Cloud9 Git Heroku システム開発 開発作業 開発環境 開発言語 作業方法 ソースコード
  17. 17 Copyright © DIVE INTO CODE Corp. All Rights Reserved.

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

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

    開発環境とは Cloud9内には言語やツールが用意されているため、ブラウ ザで開いて使うだけ。 フォルダビューワ ファイルビューワ ターミナル システム開発 開発作業 開発環境 開発言語 作業方法
  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 Basecamp創業者 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 Ruby on Rails で作られたWebサービスの例 「AirBnB」 システム開発 開発作業 開発環境 開発言語 作業方法
  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.

    Ruby on Rails Webブラウザは、HTMLとCSS、JavaScriptを読み込みページを表 示する。サーバは、計算やデータの格納を行う。 システム開発 開発作業 開発環境 開発言語 作業方法 HTML(骨組み) + CSS(装飾) + JavaScript(動き) レスポンス リクエスト ①Webブラウザ ②HTTP通信 ③サーバ Ruby on Rails Ruby   +  PostgreSQL
  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 が書か れている。 Cloud9内 概念図 システム開発 開発作業 開発環境 開発言語 作業方法
  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.

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

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

    作業方法の基礎 コマンドを入力してエンターで実行する。一度に複数の命令 はできず、一行ずつ進める。 コマンド「cd achieve」で、achieveフォルダ に移動 ※マウスで画面操作してフォルダを開くのと同様の意味合い システム開発 開発作業 開発環境 開発言語 作業方法
  37. 37 Copyright © DIVE INTO CODE Corp. All Rights Reserved.

    作業方法の基礎 コマンドを入力してエンターで実行する。一度に複数の命令 はできず、一行ずつ進める。 コマンド「cd ..」で、achieveフォルダの上の 階層のcodeフォルダに移動 ※マウスで画面操作してフォルダを開くのと同様の意味合い システム開発 開発作業 開発環境 開発言語 作業方法
  38. 38 Copyright © DIVE INTO CODE Corp. All Rights Reserved.

    作業方法の基礎 コマンドを入力してエンターで実行する。一度に複数の命令 はできず、一行ずつ進める。 元のcodeフォルダに戻った ※マウスで画面操作してフォルダを開くのと同様の意味合い システム開発 開発作業 開発環境 開発言語 作業方法
  39. 39 Copyright © DIVE INTO CODE Corp. All Rights Reserved.

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

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

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

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

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

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

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

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

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

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

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

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

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

    Cloud9 Git Heroku 新規ユーザ登録 実践ワーク Cloud9で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 rake db:migrate RAILS_ENV=production
  53. 53 Copyright © DIVE INTO CODE Corp. All Rights Reserved.

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

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

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

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

    3つの方法 独学 エンジニアになるための3つの方法 通学 就職
  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.

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

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

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

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

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

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

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

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

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

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

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