どらめも

なんでもないことをかきます

CA Tech Challenge 2daysに参加してきました。

それは何

2日間(実質1日)でECサイトを作ろうというものでした。軽いレギュレーションはあるものの 基本的にはapiを用いて自由に開発しその完成度等を競うものでした。 3人ほどのグループに一人メンターの方がついてくれる形で常時zoomをつないで開発する形式をとっていました。

目標

  • しっかり作り切る(2日しかないので)
  • なにか新しい技術を使う

一日目

まずはどんなものを作ろうか考えました。いろいろ考えた結果ウィンドウショッピング専用サイトを作れるとおもしろいんじゃないかということで 作りました(単純)。そこで欲しい機能を考えたところ、

  • お気に入り機能をログインせずに使いたい
  • ウィンドウショッピングを快適にしたい!!

だったのでまずはレギュレーションを満たした上でこれらの機能を実装することにしました。
技術としてはNext.js(Typescript)を直近のcookpadのやつで多用していたのもあり使いました。 レギュレーションはとりあえず結構すぐに満たせたのでお気に入り機能をつけ始めました。 ログイン機能を使わずに作ることが目標だったのでいろいろググったところlocalstorageが良さそうだったので使うことにしました。 ざっと読んだ感じすぐにできそうな気配がしていたのですが割と時間がかかってしまいこの日は終了でした。
ちなみに引っかかったところとしてはlocalstorageはすべて文字列管理になるのをイマイチ理解していなかったところでした。

二日目

まずはお気に入り機能を表に出してくる実装をした後少しだけ時間があったので(ほんまか)SSRとOGP対応をサクッとしました。 あとお気に入りを共有できるようにしようとurlにクエリを埋め込む実装を追加したのですが、twitterにリンクを投げてツイートできるようにする際に encodeをしていなくてうまく行かないことが発生し少し時間を溶かしました(汗)。
最後にデザイン回りを整えてfinishという感じですね。
ちなみに途中でログインapiやカートapiが生えましたがreduxとかrecoilとかをやったことなくてやりたい実装が他にあったので泣く泣くスルーしました(つらい)。

発表会

他の人の作品を見ているとfirebaseつかって自前データベースを持つようにしたり外部apiを用いて決済機能をつけた人、めちゃめちゃオシャレなUIにした人など様々で 自分の視野の狭さと手の遅さをまじまじと感じました。ずっとすげ〜って言っていたような気がします。精進したいですね。

感想

  • 当初立てた目標は一応達成できたので良かったです(新規性はlocalstorage)
  • メンターの方に抽象的な質問を投げても的確な答えが帰ってきてすごってなってました
  • 上だとさらっと書いてますけどcssまわりが下手で遅いなあというお気持ちになりました
  • 自分の手札が少なくて切ってしまった実装があったのでそこらへんの課題をこれから解決していきたいですね
  • コードがクソになりまくったので設計とか意識できるようになりたい。。。
  • cookpad(5day)+CA(2day)で7日間ハッカソンしていて本当に疲れました
  • メンターの方がアニメ好きで話が盛り上がってよかった