20210110_アウトプット(ActionCableのデプロイ・Docker・PHP)
今日行ったこと 8時間20分
即時更新されるコメント投稿機能アプリ 4時間50分
👉ActionCableをデプロイする際は、工夫が必要なことを学んだ。Dockerを使いながらPHPで開発(ドットインストール) 3時間30分
👉模写しながら学ぶ。チーム開発検討打ち合わせ1時間10分
新しい発見
Action Cableのデプロイについて
Herokuでデプロイしたが、リロードしないと即時更新されず💦(即時更新ではない状況)
Railsガイドや、そのほかのネットで調べた上で実験したところ、以下の4つについて新しい発見になった。
(1)ActionCableを使用して、即時機能を実装する場合config/cable.yml
にあるサブスプリクションのアダプタ設定が作用すること
(2)アダプタ設定(本番環境)において、async
(非推奨)・redis
(推奨)・postgresql
(推奨)のいずれかを選択することになること
(3)現在の自分の状況ではmysql2
でデータベースを作ってしまったため、async
(非推奨)の選択肢になってくること
(4)(1)〜(3)のサブスクリプションのアダプタ設定の他、config/environments/production.rb
において、許可されたリクエスト送信元だけがメッセージ等をサーバーに送れるようにURL設定が必要なこと
Railsガイドより引用(1)〜(4)に当たる部分
アダプタ | 推奨/非推奨 | 自分の状況(DBにMysql2を使用) |
---|---|---|
async | 非推奨 | 使用するとデプロイ(即時機能の実装)出来る。 |
Redis | 推奨 | デフォルト値。Mysql2でDB作成しているとエラー。使うにはHerokuで有料プランと判明。 |
PostgreSQL | 推奨 | Mysql2でDB作成しているとエラー。 |
仮説が合っているかメンターさんに確認したら合っていた😭嬉しい!
プラスで知識になったこととして、
rails new
をした時に、-d mysql
と指定しているが、ここの部分をPostgreSQL
などにすればアプリ生成ごとにDB設定できることを知った。 (前提として、rails new
する前に、DBの環境構築が必要)また
async
が非推奨なのは、データ容量が小さいので通信速度が重くて遅くなってしまうため。なのでポートフォリオ程度であれば大丈夫なことも知れてよかった。 (非推奨だと「絶対に使わない方がいいくらい」の重さで捉えていたため)
Dockerを使いながらPHPで開発(ドットインストール)
Dockerを初めてインストールした😍。スタート時に
docker-compose up -d
というコマンドを打つことを学んだ。localhostが3000以外なのが不思議な感じ。
phpについてhtmlの部分にJavaScriptのスクリプトを入れられないようにするために、
htmlspecialchars
で覆ってあげることを初めて知った。Railsと違って、面から作っていく印象を受けた。生のDBを操作する内容と、htmlにphpの変数やforeeachを等を組み合わせてDBとの繋がりを作り上げていくのが新鮮。(RailsはいかにActive recordのおかげでデータベースからの取り出しが楽だったか・・)
プロゲートよりもドットインストールの方が実際にコード使ってブラウザに反映させていくので実践的でRailsとの違いがわかりやすかった。
今オリジナルアプリで詰まっているフォームの部分も、Railsの7つのアクションではなく、phpのCRUDのような場合に相性がいいのではないかと思い始めた。
感想
ドットインストールから得られる新しい知識が楽しすぎて夢中になった。
今更なのだが、今作ろうとしているオリジナルアプリはサーバーサイドよりもフロントっぽい内容だったのではないかと思い始めた😭焦り・不安いろんな感情が入り混じるけど、一歩ずつやろうと思う。
Herokuのデプロイを通して、Railsのデプロイに関して知識を深められたのは嬉しかった。
覚書(12/29計画の見直し)
(1)やるべきこと (2)やりたいこと (3)やれること
(1)やるべきこと
- 卒業要件の完成
(2)やりたいこと
追加実装を学ぶためのミニアプリ作成
オリジナルアプリの作成
PHPの勉強
面白そうだから参加したい・見たい(やめ太郎さんのキータ表彰・yahooイベント)
読書
(3)やれること
メンタル:楽しみながら、ゲーム感覚でいく🎮😎
時間で区切り(達成すればよし)
PHP 一日15分以上
オリジナルアプリ 1日1時間以上
追加実装のミニアプリを作り、引き出しを増やす
優先順位 | 内容(機能) | 締め切り | 達成度 |
---|---|---|---|
1 | AWS S3 | 12/18 | 完了(フリマアプリ)に実装) |
2 | AWS EC2 | 12/24 | 完了(フリマアプリに実装) |
3 | ウィザード形式 | 12/27 | 完了 |
4 | SNS認証 | 12/28 | 完了 |
5 | 複数条件検索 | 12/29 | 完了 |
6 | タグ付 | 12/31 | 完了 |
7 | 画像プレビュー | 1/2 | 完了※フォーク |
8 | 複数枚写真OK | 1/4 | 完了※7に追加実装 |
9 | コメント機能(即時更新) | 1/8 | 完了 |
10 | クレカ登録 | 1/10 | |
11 | パンくず | 1/14 | |
12 | 日本語エラー | 1/18 |
身に付ける力(直近)
PHP7
Docker