キュアセブン技術ブログ

考えたこと,学んだことを書きます

teamLabインターン事前課題まとめ

こんばんは.明日から東京です.なんとか事前課題が形になったので仕様をまとめる

github.com

 目次

=============

=============

 

課題は3→2→1の順にクリアした.4はできていない.やれたらやる

RESTfulなAPIの設計,実装

1. 下記情報を持つ商品データの登録・検索・変更・削除を行う、RESTfulなAPIの設計・実装をしてください。

  • 商品画像
  • 商品タイトル(最大100文字)
  • 説明文(最大500文字)
  • 価格

レスポンスの形式はJSONで、内容はお任せします。

 RESTfulAPIはapiコントローラを作り,JSONを返すことで実装した.

中身はproductコントローラ(最初に作った同期アプリに使用したコントローラ)とほとんど一緒だったのでコピペした.

CRUDの詳細は前回のエントリに書いたので省略.以下の関数で実装

  • 一覧 product_getAll
  • 登録 product_create
  • 検索 product_search
  • 変更 product_update
  • 削除 product_delete

shiningcureseven.hatenablog.com

 

 

非同期登録,非同期検索

 2. 課題(1)で作成したAPIを使用して、商品登録や検索などが行える(非同期だと◎)webインターフェースを、Viewとして実装してください。

 まずproductコントローラで,同期のシステムを作っていた.非同期に手を出せそうだったのでRESTfulAPIを使用したシステムを作ることを今日行った.

RESTfulAPIを使用した商品登録はそれ用のViewを用意した.

http://ec2-18-220-5-204.us-east-2.compute.amazonaws.com:8080/product/restnew

RESTfulAPIを使用した検索もフォームを作った.

teamLab ECshop

jQuery(java script)で非同期処理を実装した.検索をするたびに検索結果が付け足されてはダメなので初期化するようにした.

 

削除のViewなんてない,listのページ上でRESTful APIを使って削除するようにした.

編集のViewはあればいいよね,でもやってない.

 

おなじみBootstrapを使ってそれっぽくした.Viewについて言うことはそれくらいかな?

 

webに公開

3. 上記課題で制作したアプリケーションをIaaSまたはPaaSを利用してweb上に公開してください。

AWSのEC2を利用し公開した.止まって焦ったりした思い出。

teamLab ECshop

私の作ったECショップアプリ,どうぞ使ってみてください.別に売ることも買うこともできないけど.

開発環境もクラウド化(Cloud9)した.OSはAmazon Linuxを使った.

 

店舗の概念

4. 上記アプリケーションに店舗の概念を追加してください。例えば、店舗ごとに管理している商品を閲覧できる機能など。

 実装できていない.データベースに店舗idのフィールドを設ければ終わりそう.店舗と商品名で検索できるようにしたら良さそう.

 

MVCの仕組みを理解しているか

MVCとはModel,View,Controllerのこと.RailsMVCで書くしかないので理解したつもり.


適切なコード、コメントを書けるか

コメント書いてません.すみません.今からインターンまでにかけるだけ書く.


RESTfulなAPIを理解しているか

なんとなく.私の見解はrails日誌(6)に書いています

shiningcureseven.hatenablog.com


Git & Githubを使えるか

今回はpushしただけ.addのタイミングわからないので教えてください.一気に実装してaddじゃぁcommit comentになんて書けばいいかわからないし少なすぎてもpushのlogが多すぎてわけわからなくなる.

オクトキャットは大好き.


DBの基礎(正規系やリレーション)を理解しているか

そこまでできませんでした.それなりに動くようにした.


バリデーション、エラーハンドリングを考慮しているか

バリデーションできていません.価格のところにstring入れたらrubyのエラー出ます.新規登録で画像ないとエラー出ます.

ごめんなさい.

 

 

エピローグ

苦労したこと

開発環境構築.DockerとDocker-composeの概念はなんとなくわかったけど導入しようとすると勝手がわからず苦しんだ.これに1ヶ月精神をやられた.

Ruby on railsMysqlとDockerの相性が悪かったみたいで,Mysqlがよくつっかかってきたので反抗期の子を持つ親の気持ちがわかった.

 

学んだこと

  • エラーを読むということ.なんでだよ!とふて寝する前に,エラーの英語をGoogle翻訳に通すなりして理解しようとする姿勢を習得した.それでも分からない時はふて寝した
  • エラー文そのままググるということ.同じエラーでつまずいた先人が解決策を書いてくれていたりした.
  • 本を読むということ.今まで人に教えてもらってという形で書いていた(C,Java,HTML,CSS)けど,Ruby on railsは本から学んだことで大体進んでいった.嬉しいな
  • 何回もエラーにぶち当たってこそわかるものがある.師匠はいちばん頑張ってたとき一日15時間勉強したっていってた.それくらいの経験があって初めて,これはここがおかしくてエラー吐いてるな,っていう勘が身につくわけで,そのエラーを克服できる.私は今回がwebプログラミング初めてだといってもいいのでエラーで泣き寝入りするのも当たり前なんだと思った.

プログラマとして当たり前の,独学の仕方,姿勢とかそういうことさえも知らなかったので,それは大きな学びでした.

できたこと

  • Dockerとruby on rails,その周辺ツールについてややわかった.
  • teamLab ECshopができた.目に見えてわかるできたもの.
  • GitHubは前から使っていたのでpushはすんなりできた.環境が変わってSSHをgenerateするあたりも流れは知っていたので問題なし.
  • もがく様子をブログに書き留めておく事.黒歴史として嘲笑いたい.
  • サーチする事,ドキュメントを読む事.
  • 師匠とその仲間たちとの繋がり.
  • 年齢は1つ下のマチョマチョプログラミングガールとの出会い
  • 教授にcommit(取り合ってくれたとは言っていない)

 

できなかったこと

  • 開発環境のことでエラーが出たら自分で解決できたことは少なかった.ほとんど師匠にやってもらってしまった.環境に関するたくさんのツールに関しては,これからゆっくり学んで行く必要がありそう.
  • まだ実装できていないところがある.それは上に示した通り.時間がなかった.というか近くにWebプログラミングし慣れている人がいないのは相当困った.最後1週間で師匠に出会えたので師匠の職場に長居させてもらい度々聞いた.
  • scaffoldは後で気付いたので実装できなかった.

 

感想

webアプリ,どれにもCRUDが必須な気がした.全部軸はCRUDで,拡張機能として検索とか認証とかがあったり色々.

SUCCESSの文字は嬉しい.環境構築もうやりたくないけどSUCCESSが異常にアドレナリンでるのでプログラマになった感じがした.

Ruby on railsは楽しい.私は仕事でこういうこと(Webプログラミングであってる?)がしたいんだと思った.今人生楽しい.ぼんやりしか掴めてないところ,分からないことだらけだけど楽しい.形になった,動いた.エラーが出ない.

 webプログラミングの最初のとっかかりとしていい課題をもらったんだとわかった.これを頑張ることで次またruby on railsで作ったときは今回よりもスムーズに事が進むはず.どんどん繰り返して成長して行く.前提知識があってこそ言語やツールのアップデートの嬉しさがわかるはず.これからのwebにも通用する技術力を得た.今回のでだいぶ世界のぞけたと思う.

 

 

たくさんの人にお世話になりなんとか課題っぽいものができました.この場を借りて御礼申し上げます.

行くぜ東京.インターンのアウトプットも引き続きできたらと思います.