20201231_アウトプット(タグ付機能アプリ・新しいgem)
今日行ったこと 7時間45分
タグ付機能アプリ 6時間30分
👉新しいgemの実践・完成✨オリジナルアプリ 1時間
👉どうやったらカウント機能付けられるかPHP勉強 15分
新しい発見
新しいgemについて
昨日、インストールしてみた新しいgem。
今日から、アプリで使ってみた。
rails_best_practices
👉綺麗で読みやすいコードか確認できる
実践!
XXX@XXXnoMacBook-Air tagtweet % rails_best_practices . Source Code: |====================================================================================| /Users/XXX/projects/tagtweet/app/helpers/tweets_helper.rb:1 - remove empty helpers /Users/XXX/projects/tagtweet/config/environments/test.rb:8 - remove trailing whitespace Please go to https://rails-bestpractices.com to see more useful Rails Best Practices. Found 2 warnings.
ヒットした2つのエラーについて調べてみたところ、
リロード時間を減らすためにも空の
helpers
は使わないのであれば削除すること空の行を削除すること
という意味だと理解。
今回helpers
について削除してみた。空の行も削除した。
remove empty helpers
については何故消すのかはっきりした理由(メリット・デメリット)を見つけられず。
今回ミニアプリだったので消してみたけれど、helpers
については目に見えないけれど内部で動いている処理だと思うため、今後は消すかどうか最後の方に判断してもいいかもとも思った。
コマンド実行して、問題がないと、No warning found. Cool!
って出てくるから嬉しかった。
brakeman
👉SQLインジェクションやXSSなどの脆弱性に繋がるコードがないか確認できる
実践!
XXX@XXXnoMacBook-Air tagtweet % bundle exec brakeman -A -w1 (省略) == Overview == Controllers: 1 Models: 1 Templates: 2 Errors: 0 Security Warnings: 1 == Warning Types == Missing Encryption: 1 == Warnings == Confidence: High Category: Missing Encryption Check: ForceSSL Message: The application does not force use of HTTPS: `config.force_ssl` is not enabled File: config/environments/production.rb Line: 1
(補足)オプションでつけている-A
と-w1
の意味ついて。
-A
は全てのファイルから探す。
-w1
は全ての警告を出す。(1~3まであって3の高レベル警告だけ出す等も自分で指定できる)
オプションはこのサイトを参考にした。 brakemanscanner.org
ヒットした1つのエラーについて調べてみると、「HTTPプロトコル
でも通信できるようになっているけどいいの?」という内容だと理解。
Railsガイドより(エラー内容の原因を調査)
Action Controller の概要 - Railsガイド
HTTPSプロトコル
とHTTPプロトコル
の違いは、HTTPS
の方が暗号化されて情報が送られるのでより安全になる。
HTTPS
でデータがやりとりされた方がいいと判断したのでエラーメッセージにあったコメントアウトを外した。
(勉強になった)
先ほどと同じように、問題がないと、No warnings found
って出てくるので嬉しかった。
2つのgemについて
実際に入れてみてどちらも良さそうだったので、今後のRailsアプリ作成時の必須gemの仲間入りにしようと思った。
(1)まずはgemを使ってエラーを見つけたら解決できるようになる 👉今日できたこと。 (2)解決できるようになったらチェックを自動化する 👉次回、チャレンジしてみよう☺️
memberとcollectionの違いについて
ルーティングに設定する
member
とcollection
について復習になった。「member」は、「resources以外のメソッドを追加したい」且つ「id情報を伴うURIを生成したい」時に使用。👉購入機能など(特定必要)
「collection」は、「resources以外のメソッドを追加したい」且つ「id情報を伴わないURIを生成したい」時に使用。👉検索機能など(特定不要、結果を表示させるのみ)
”resources以外のメソッドを追加したい”というところが一番しっくりきた。7つのアクションの時には、自動でアクションを割り振る。
id
も必要か自動で判断してくれる。なので、7つのアクションの中に入れ構造にすることによって、「検索した後に詳細」「検索した後に削除」等が実現できるのかと復習になった。
オリジナルアプリ
whennever
という定期実行してくれるgemを発見。AWSのデプロイの時に使ったCapistrano
との相性も良いとのこと。
PHP
switch文について。
その都度、break
が必要なことが勉強になった。
<?php // 変数$numを定義し、好きな数字を代入してください $num = 0; // 変数$remainderを定義し、変数$numを3で割った時の余りを代入してください $remainder = $num % 3; // switch文を用いてください switch ($remainder){ case 0: echo "大吉です。"; break; case 1: echo "中吉です。"; break; case 2: echo "小吉です。"; break; default: echo "凶です。"; break; } ?>
感想
今年を振り返ってみると、プライベートも会社も新しいことに色々チャレンジした一年だった。
(プライベート:プログラミング・ICL・歯列矯正、 会社:新しいネットワークの構築・場づくり・仕組みの提案等)プログラミングを始めてよかったことは沢山あるけれど大きく3つ良いことがあった。
(1)自分の弱さに向き合う機会が多いこと。
プログラミングは思うようにいかないことだらけだった。
しかし、その機会が多いのでどうしたらいいかと試行錯誤する中で、他人との比較癖があったこと、弱い自分も受け入れるのが下手くそだったことに気がつけた。
今も、癖で、その感情が発動する事があるけれど「あ、その癖が発動しているから、気をつけよう」と自分の感情に対して外から見られるようになった。注意できるようになった。
(以前は、それに気がつけず、苦しみの中にいた感じだったため、改善)
(2)良い人に巡り会えたこと。
テックキャンプのスタッフや仲間に出会えたこと。
うまくいかない時に色々弱音を吐いてきたけれど支えてくれたり、困った時に助けてくれた。
今まで家族と会社の繋がり以外、ほとんどなかったので、それ以外の方の価値観に触れられたことも良い刺激になっている。
このブログやTwitterを始める事によって、銭神さんや岡山さんなど、考え方に共感して憧れるエンジニアに出会えたこと。少しでも繋がりをもてたこと。挫けそうになったときの自分の励みに繋がっている。
(3)好奇心が尽きない環境なこと。
プログラミングは「どういう意味?」「何故?」「もっと知りたい」だらけなこと。
今も調べても分からないこともあるけれど、数ヶ月後みると以前よりも意味がわかるようになっていたり(最近だと自動化・デプロイ・環境構築・gemあたりが特に感じる)好奇心旺盛な自分にとっては飽きないので面白い。
あと、調べた結果、形になるのも面白い。
覚書(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 | |
9 | コメント機能(即時更新) | 1/8 | |
10 | クレカ登録 | 1/10 | |
11 | パンくず | 1/14 | |
12 | 日本語エラー | 1/18 |
身に付ける力(直近)
PHP7
Docker