【8週目】未経験からTECH::EXPERTでプログラミングやってみた

f:id:b1840943:20180623102157p:plain

ポイント機能

ポイントをクレジットカードで買うことができる機能を実装しました。と言っても決済機能を実際に実装するわけではなく、単にダミーのカード番号等を入力するとポイントが増える、といった動作をするという感じです。

 

f:id:b1840943:20180623103142g:plain

 

文章にするとシンプルなので実装開始前はわりと簡単かなと見積もってましたが、ちょっと悩んだ点がありました。ユーザーにフォームに値を入力してもらった後に確認画面に遷移するんですが、その確認画面でどうやって入力された値を表示させるかです。

 

今回決済機能は実装しないのでフォームに入力された値はデータベースには保存せず、入力されたかどうかだけフロント側でバリデーションをかけて確認画面に遷移させようと事前にチームで話し合いました。

 

データベースに保存された値を引っ張ってくるのはお茶の子さいさいですが、保存されない場合どうしよう…ということでparamsを使うことにしました。はっきり言ってセキュリティ的に絶対クソです。現場でこんなことしないのは現場知らない僕ですら感覚的にわかりました…がとりあえず実装しなければいけないということで、この方法でいくことにしました。

 

キャッシュ使ったりいろいろな方法があるということを後で知ったんですが、まあ経験が無い中でひねり出したということで大目に見たいと思います。

有料会員登録機能

これも実装したんですが、ポイントを買うときと基本的な動きは一緒です。フロント側でバリデーションかけて、全て入力されてれば有料会員になる、と言った流れです。

 

f:id:b1840943:20180623103408g:plain

 

特に引っかかったところは無いです!はっきりこう言い切れるのは初めてかも。

 

唯一あるとすれば実際に使われてるフォントを再現できなかったところかな…あれなんでできないんだろう。他と同じようにCSSで指定するだけじゃできないみたいなんだよな。

ログインフォームデザイン

Pairsってメアドでサインアップ or ログインできるようにはなってなくて、FacebookアカウントかSMS認証のどちらかしかありません。あとログアウトも基本的にできません。

 

まーーーこれは開発してると本当にめんどくさいポイントでした。なんで他のメンバーにdeviseでログイン機能を実装してもらい、メアドでできるようにしました。

 

ただインストールしてもらっただけなので、あの初期のデザインのままのログインフォームでしばらく放置されていました。今週もスプリントレビューがあったので、さすがに見た目をキレイにしないとマズいということでデザインしました。

 

 

レビューのときにメンターさんに褒められたので満足。デザインからやるのって難しいけど、やりがいはありますよね。

終わり

今週はぽんぽん機能実装できた週でした。多分一度やったことある部分が増えてきたってことだと思うので、いい傾向なんじゃないかと。

 

来週がチーム開発最終週になります。始まる前は予想してなかったんですけど、なんかPairsに愛着湧いてきてるんですよね。もっと良くしたいみたいな気持ちがポロポロ出てきます。

 

スプリントレビューでメンターさんが「自分がやりたい機能とかチャレンジングな機能を実装すれば絶対あとでいい思い出になる!」って言ってたのがすごく印象に残ってます。今は同感できるんですが、スクールに入る前はその感覚はわかんなかっただろうなあ…と思って。

 

というエモい終わり方で来週もがんばります。