Coder Social home page Coder Social logo

1705circle_sinatra's People

Watchers

 avatar  avatar  avatar

1705circle_sinatra's Issues

SQLを使ってデータを操作してみましょう。

目的

SQLを使ったデータの操作の理解の確認

やること・ゴール

MySQLを使って

  • テーブルの作成

をし、さらに下記のデータ操作をして見ましょう。

  • Insert
  • Select
  • Update
  • Delete

成果物としては

  • 実行したSQLのスクショ
  • SQLのダンプファイル
    です。

スクショはここに貼っていただくかDrag&DropしてSlackへ。
ダンプファイルはSinatraのルートディレクトリ( app.rb があるディレクトリ )かSlackにDrag&Dropで送ってください。

備考

  • テーブル名、構造は任意です。
  • Insertやほかの操作するデータはどんなデータでもOKです( name や email など何でもよいです )。
  • Mysqlの操作はターミナルかMAMPをインストールしていただいてphpMyAdminを使っていただくなどやりやすい形で任意になります。

新サービスを作成しよう。

元々予定していた3週間の確認項目ですが今の時点で既に全てDoneということで(相当スムーズでしたね 笑)
次に7月末を予定していた新サービスの作成に入りたいと思います。

やること

  • ソースコードの管理が面倒になるためこのリポジトリとは別のリポジトリをたててもらい
    当初の予定通りそこに1からサービスを作成していこうと思います。
  • リポジトリを立てて頂いたら招待お願いいたします。
  • まずは rails new するところまで作成しましょう。作成したものはPushしてください。

備考

  • 新サービスに関する新しいIssueは今後そのリポジトリに立てていきます。
  • 問題なければ以下の環境で作成していきたいと思います(問題ありそうでしたら相談お願いいたします)。
Ruby : 最新 2.4.1だと思います( https://www.ruby-lang.org/ja/downloads/ )
Railsの環境: 最新
DB: PostgreSQL
テスト: Rspec
Rubyの管理: Rbenv
Bundler を使ったGemのダウンロード先: vendor/bundle (できれば、わからなければGemのダウンロード先は気にせず作成して良いです。)

セキュリティ対策について調べてみましょう。

目的

Webサービスを作る上での最低限のセキュリティ対策をおさえること

やること・ゴール

Webサービスを作る上で
セキュリティの大きなテーマには下記の3つが上げられます。

  • SQLインジェクション
  • XSS
  • CSRF

これらをWebでざっくり調べて見ましょう。

備考

  • このIssueに関しては決まった成果物を用意する必要はありません。

SinatraからSQLを操作。CRUD機能を作ろう。まずはCreate、Readを作ろう。

今度はSinatra側からSQLを操作してみましょう。

目標

Active Recordの確認と調査してものを作る勘所の確認。

やること

  • SinatraからMigrationでのテーブルの作成、ActiveRecordを使ってデータを操作するためにGemが必要になります。それを調査して導入してみましょう。
  • Gemの管理のために bundler を導入しましょう。
  • Migrationしてテーブルを作成しましょう。
  • データの作成(Create)と一覧表示(Read)機能を作りましょう。

備考

  • テーブル名や作成するデータの内容は任意です。
  • 作成するファイル名は任意(適切でない場合は指摘いたします)です。
  • データベースは sqlite を使いましょう(Gemだと sqlite3 )。

PUT と PATCHの違いを調べてみよう。

Railsでは更新時にHTTPのPATCHメソッドを使っています。

PUT と PATCHの違いを調べてみましょう。
なぜRailsではPATCH を使うのかも調べてみましょう。

リダイレクトした時の動きを把握しよう。

#3
Formで「送信ボタン」を押した時の「クライアント とサーバー間の(通信を含めた)動き」を図にしてもらいました。

今回はリダイレクトが含まれた時にどのような図になるか図示してみましょう。

ちょうど下記のコード内で、

https://github.com/ochiait/1705circle_sinatra/blob/master/app.rb

post '/new' do
  Message.create({:content => params[:content]})
  redirect '/'
end

としているので、インデックス画面からFormボタンを押した時の一連の流れをリダイレクトも含めて図を書いてみましょう。

HOGEFUGA問題

目的

プログラミングの基礎ロジックの確認

やること

以下の課題をRubyを使って解いてください。

  • 基本的には1~100までの数字を画面に表示します。
  • ただし3の倍数の時は数字の代わりに「HOGE」と表示します。
  • 7の倍数の時は「FUGA」と表示してください。

できたファイルはSinatraのルートディレクトリに置いてPUSHしてください。

備考

  • ファイル名は任意です。
  • 3と7の倍数の時は「HOGE FUGA」と表示してください。

RbenvでRubyを管理しよう。

Rubyのバージョン管理をRbenvでやってみましょう。
Rbenvの調査から初めてください。

すでにRbenvで管理されている場合はこのIssueはやらなくてOKです。

HTTPのリクエストとレスポンスの確認をしよう。

目的

  • リクエストとレスポンスの理解の確認

やること・ゴール

#2 のFormで「送信ボタン」を押した時の

「クライアント とサーバー間の(通信を含めた)動き」

を「図」としてイメージできるようになることです。

オフラインで理解を確認するのが難しいので対面で理解を確認します。
ホワイトボードにイメージしている図を書いてもらうかもしれません。

備考

  • イメージが難しい場合は以下ようなワードで検索すると良いでしょう。
    • HTTP
    • リクエスト レスポンス
    • HTTP GET
    • HTTP POST

Formから送信された値を表示してみよう。

Sinatraを使って作成します。

目的

  • 簡単なForm作成の理解の確認

やること・ゴール

form.erb を作成し、form.erbから送信された値を画面に表示してみましょう。
終わったらこのリポジトリにPush&メンションしてください。

備考

  • 表示用のファイルを新たに用意するかは任意 (例: result.erb を新たに作成して表示。または新たにファイルは作成せず form.erb に値を表示する など)
  • 表示する値は任意です。
  • データを保存する必要はありません。
  • form.erb を作成し、form.erbから送信された値を画面に表示」できればOKです(あんまり難しく考えずにやりましょう〜)。

find(1) と find_by(id: 1) の違い は何か調べてみよう。

【Rails findとfind_byの違い】
・findメソッド⇒引数に取るのはid(属性は取らない)
・find_byメソッド⇒引数に取るのは属性(idは取らない)
http://udemy.benesse.co.jp/development/rails-find.html

実はもうひとつ違いがあります。
find(1) と find_by(id: 1) の違いに着目してみましょう。

GitHub-Flowについて調べてみよう。

Gitを使ったチーム開発手法には

Git-flowGitHub Flow が有名です。

今回のトレーニングでも Pull Request などの操作をしてもらうことになるので、手が空いたときに調べてみましょう。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.