アラサーOLだっしゅつけいかく

30代でOLを辞めて未経験からエンジニアになろうと一念発起した人の活動記録です

オリジナルアプリ開発#2 開発の流れ〜DBの変更〜初めてのPull Request

オリジナルアプリ開発#2

GitHubの開発フローを確認して、PostgreSQLを導入して…まだコード書けてない!!

こんにちは、はくたむです。
オリジナルアプリ開発順調に…進んでると言いたいのですが、実はまだ設計の変更があったりデータベースの導入でモタモタつまづいてたりしてそんなに進んでいません。笑
今回は開発の主軸であるGitHubを使ったフローについてとPostgreSQLの導入についてです。

よろしくお願いします。

UI設計の変更がありました

…とその前に。

前回の記事でオリジナルアプリ開発の設計部分について書きましたが、その後先生からの意見も踏まえてもう一回考えてみたところ、どうもログイン後の画面(ユーザーホーム画面とでも言いますか)に改良の余地ありなのでは…と思い始めました。
実装前にきちんと方向性だけは固めておいた方がいいと言うことで、レッスンまでにUIの設計案をもう一度考え、検討しました。

その結果下記の点を変更しました。

  • 2カラムで考えていた画面を1カラムに
  • タグ機能を廃止
    • 使い方のシミュレーションをしてみて、検索軸が2つあると同時に使う人もいるだろうか?その場合どうすればいい?タグが増えすぎた場合は?などいろいろ考えてみた結果、インクリメンタルサーチが実装できればタグはいらないのではないか?と言う結論に達し、思い切って機能を削除しました。

前回の記事を更新してますので、よかったら見てくださいね!

hak-prg.hatenablog.jp

アプリの名前も決めました!

rails newする時にアプリの名前が決まってた方がいい、と言うことでちょっと考えてみたらいい感じのが浮かびました!

Chobi Memo

ちょびっとメモを取れるアプリ、みたいな感じです!

rails newする時にPostgreSQLに変更したい

ようやく本題!

さてさて、RailsにはデフォルトのDBとしてSQLiteと言うものがありますよね?
基礎を勉強してた時はcloud9などを使用していましたし、そんなに気にしていなかったのですがこれは何者でどこにいてどう動いているのかさっぱりわからなかったんです。
だって使えるようになってるんだもん!!

先日のレッスンで何気なく私がこんなことを言いました。

はくたむ「そういえばデフォルトのDBってSQLiteを使用していますけど、最終的にHerokuへのデプロイを考えた時にこれってそのまま使用できないんですよね?」

カリキュラムでHerokuについて触れた時に確かそんなようなことが書いてあったなぁ、くらいの認識で発言してます。笑

先生「Herokuと相性のいいPostgreSQLってのがあるから、最初からそれ入れようか。なぁにrails newする時に-d postgresqlも続けて記述するだけだよ^^」

はくたむ「へ〜そうなんですね、じゃあそれで行きましょう!^^」

まさかこの何気ないやり取りで頭を悩ますことになるとは、この時は知る由もなかったのです…

DBってどこにある何者なのか一晩と一日悩んだ結果…

なんとかできました

ざっくりのまとめになりますが、こんな感じでしょうか。

  • PostgreSQLを開発環境で使用するためには、ローカルに環境構築が必要
  • ローカルでサーバーを立ち上げてその中でDBが動いているイメージ
  • サーバーの中にいくつかDBが作成できる
  • そのDBの中にテーブルが作られる

つまり何もしないで使えているけど、SQLiteはもう私のmacの中にいるってこと?
その通り、標準でインストールされています。
なのでRailsのgemファイルに記述されているgem 'sqlite3'の記述で動くんですね…。
やっと謎が解けた感じ。

仕組みがなんとなく理解できたのでPostgreSQLをインストールして新しいアプリで使用出来るようにするよ

手順はどうせなら、とQiitaにまとめました。

qiita.com

postgres.appと言う便利なアプリのおかげで環境構築の手間が省けてなんとか使えるようになりました。
よかった…!

GitHubを使った開発フロー

DBをPostgreSQLに変更して新しいアプリを作れたので、いよいよ開発にとりかかります! 開発はGitHubを通して行います。
基本的流れは下記の通り。

  1. masterブランチから機能追加のためのブランチを作成する
  2. 機能を追加する(適宜ローカルリポジトリにcommitする)
  3. 1つの機能が完成したらリモートリポジトリのブランチにPushする
  4. プルリクエストを作成する
  5. 先生によるコードレビューを経てOKが出たらmasterブランチにマージする

この1〜5を繰り返して開発を進めて行きます。

まずは開発の流れに慣れるためにgem追加のためのブランチを作成しました。
ここの一連の流れはQiitaに投稿したのでそちらで見ていただけるとありがたいです。
上記基本的な流れに沿って作業しました。

  • masterブランチからadd_gemと言うgem機能追加のためのブランチを作成
  • gemを追加して(この時デフォルトで入ってるコメントアウトされた文章も消しました)bundle install
  • ローカルリポジトリに保存
  • リポートリポジトリにプッシュ
  • GitHub上でプルリクエストの作成
  • OKを頂いたのでmasterブランチにマージ
  • ローカルリポジトリに反映

qiita.com

余談ですが、ここで作業しているふと思ったのが、デフォルトで入っているgemってなんだ?必要なんだろうか…?と言うことで。
先生に聞いてみました→デフォルトで入っているgemはそのままでOKとのこと。

以上で下準備がやっと終わった感じです…!!!

どんなものになるんだろうと私も今からワクワクしています!
頑張りますので、これからも当ブログ見てくださると嬉しいです。

ではでは!またね〜