【Sinatra】Sinatraフレームワーク実践【DIVE INTO CODE】

更新日:

「DIVE INTO CODE」学習記録 8日目

こんにちは。

8日目。Sinatraのフレームワークでお問い合わせフォーム作成。

学習内容

【Think Like an Engineer 】

  • プログラミングの良いコードとは
  • Markdownとは
  • コーディング規約の重要性
  • ペアプログラミングとは
  • エラーログの解決方法
  • DRY(Don't repeat yourself)

【ATOM・開発環境入門】

  •  ATOMカスタマイズ、パッケージのインストール

【Rubyアルゴリズム・データ構造入門】

  • 線形探索法(リニアサーチ)
  • 二分探索法(バイナリサーチ)
  • 単純選択法(選択ソート)
  • 単純交換法(バブルソート)
  • クイックソート
  • 再帰処理について
  • エラトステネスのふるい(素数アルゴリズム)
  • トランプゲームアルゴリズムの作成

【Web技術入門】

  • IPアドレスについて

【Sinatra入門】

  • フォームの作成について
  • リクエスト送信
  • HTTPメソッド(getとPOSTの違い)
  • パラメータの取得(paramsメソッド)
  • インスタンス変数への変換、HTTPへのパラメータの表示方法
  • お問い合わせフォームの作成
  • パスワード隠蔽機能作成
  • バリデーションの作成
  • エラーメッセージの作成

 

感想

今回の内容は主に古典的なアルゴリズム(バブルソートやクイックソート、素数を求めるアルゴリズム)などの理解と、Sinatraのフレームワークでした。

古典的アルゴリズムは、なんかものすごい数学っぽいやつで、

古典的アルゴリズム数式

この数式がいきなりテキストに出てきたときは、どうしようかと思いました。

数学もちょっとはやってましたけど、文系ですから。こんなのわかんない。

 

数学者ってすごいんだなと。

どう頭ひねったらこんなアルゴリズム発見できるんだよみたいな。

数学者への道を閉ざされた日でした。

 

昔のすごい人が解法色々考えてくれてるから、凡人の私は甘んじてその恩恵を受けようと思います。

 

多分プログラミングの世界って先人がこういうの色々考えてくれてるおかげでこういう考え方あるよ、っていうのがたくさんあって、

それをとりあえず理解して、作りたいアプリに必要な部分を引っ張ってくっつけてとかやればなんとか作れるようになるのかなとか。

 

実際0からプログラミング勉強してると考えるのに必要な道具すらないというか。

課題と戦うための武器があまりにもなくて。

 

なんとなく浮かんだアルゴリズムでコード書いてみるんですけど、

考え方あってても結局書き方でつまることが多いです。

 

模範の書き方みると「これで反映されるのかよ」ってなります。

 

例えばSinatraのフレームワークでお問い合わせフォームをリクエスト送信機能つけて作ったんですけど、

 

完成物がこれです。(css一切使ってないので質素です。)

sinatraリクエスト送信1

 

新規登録画面に出ている各欄に入力します。

sinatraリクエスト送信2

送信ボタンを押すと、

sinatraリクエスト送信3

登録確認画面に移ります。

 

新規登録画面で入力が無い項目があると、

sinatraリクエスト送信4

エラーメッセージが出ます。

sinatraリクエスト送信5

 

こういうのをSinatraで作りました。

 

話戻しますが、登録確認画面でのパスワード確認のところ、

元々は「*」アスタリスクではなく、入力した数字がそのまま出てきてます。

 

設定してアスタリスクに変えるんですけど、

 

これどういう仕組みかというと、

 

入力者が入れたパスワードの長さを確認

→パスワードの長さ分「*」を表示する。

 

っていう簡単な流れです。

まあ考え方はすぐ出てきます。

 

ただこれをコードにどう書いたら反映されるのか、っていうのが

やっぱり調べないとわかりません。

 

調べてみるとものすごい簡単な書き方で反映されるんですが。

知らないとやたら複雑に書いてしまう。

 

私の頭が硬いだけかもしれませんが。

その分時間食うのでさっさと調べりゃよかったよ、ってなります。

 

こうゆうのをこれからもずっとやってくんだろうなって。

 

まあ今回はこんな感じで終わりました。

以上、ありがとうございました。

-DIVE INTO CODE
-, , , ,

Copyright© s u p ? , 2019 All Rights Reserved.