見出し画像

ハッカソン初参戦!!②

こんにちは!わたしは現在webエンジニア目指して勉強中です!今回は引き続きハッカソンに参加してきた話をしようと思います。(ハッカソンとは

現在私たちが作っているプロダクトは11月末までに作りあげる必要があります。今回の集まりが2回目でした。初回の内容は→(前回はこちら

ざっくり何をしているか説明すると、私が卒業したプログラミング教室(CODEBASE OKINAWA)では卒業生向けに実務の経験の機会を提供するためにβ版ハッカソンというイベントを行っています。今回はより実践的な内容で受注管理システムを作り納品します。IT業界はエンジニアが足りないと言われていますが、実務経験があるエンジニアが少ないため需要に対して供給が追いついていません。プログラミング教室を卒業するだけでは現場で働くレベルには到達するのが難しいのです。β版ハッカソンは未経験と実務のギャップを少しでも補える非常に貴重な機会です。詳しくはこちら

今回は2回目の集まりで10時から19時まで一日中開発を行います。私たちのチームはrails を使ったバックエンド担当です。1回目はGitとGithubの使い方に関して非常に勉強になりました。2回目の今回はactivestorageを使った画像のアップロードと多対多関係がある時にcheckboxを使ってチェックをいれた項目だけ表示させるということをしました。レビューは現役エンジニアがやってくれます。これは独学だと絶対に学ぶことができない非常によい経験です。今回特に勉強になったのは以下の二つです。

1. MVCの役割を考える
2. schema.rbの内容を変更する際はschema.rbを直接触らない

1. MVCの役割を考えるについてですが、以下のようにview側でcheckboxを使った表示をしていました。collection_check_boxesの第3引数の部分で指摘を受けました。Deliver.allとしていたのですが、これは本来controller側で書くべきなのでインスタンスに入れて表示しましょうと言われました。


 <h2>施工会社一覧</h2> 
<%= form_with model: @exhibition, local: true do |f| %> 
<%= collection_check_boxes(:exhibition, :deliver_ids, Deliver.all, :id, :name) do |d| %> 

経験者からすると当たり前かもしれませんが、実務をやったことのない者からすると、この辺の細かい知見は勉強になります。

2. schema.rbの内容を変更する際はschema.rbを直接触らないについて解説します。schema.rbはmigrationファイルをrails db:migrateしてから反映させるので、書き換えが必要な時はschema.rbを変更してからrails db:migrate:resetで反映させていました。しかし、チームで開発する時はカラムの変更履歴は残すべきで、そのためカラムの削除や追加にはaddやmoveを使うと教わりました。そしてずっと謎だったschema.rbを直接変更してrails db:migrateしても反映しない理由はrails db:migrateは常に最新のschema.rbのバージョンを見てmigrateするので、直接反映させる場合はrails db:rollbackさせる必要がありました。ちゃんと調べれべ出てきました笑

エンジニアはググる力が大切というのはよく聞く話しですが、共同作業やレビュワーがついてくれることは独学では得られない発見やインプットがたくさんあると思います。次回の集まりは3回目になります!


この記事が気に入ったらサポートをしてみませんか?