2023-01-01から1年間の記事一覧

【React】ContextのProviderは正しく囲まないとコンテキストが分岐する

Contextを使用する際のProviderの指定を間違うと共有したはずのコンテキストが子コンポーネント毎に分岐してしまうので注意が必要です。 サンプルコード 以下のようなContextを使って子コンポーネントにログイン情報を共有するコードを例にします。 //Contex…

JavaScriptでlocalStorageを使う

JavaScriptでlocalStorageを使う方法を調べました。 localStorageとは Window.localStorage - Web API | MDN ブラウザにデータを保存させる機能。 保存期間に制限が無い セッションに似ている セッションはブラウザを閉じたらデータは消去される 保存領域はU…

Railsアプリケーションの規模感の掴み方

既存のRailsアプリケーションの規模感を掴むためのメモです。 各ファイル毎に見ていくと規模感が掴むきっかけになりそうです。 rails routes エンドポイント、URLの雰囲気を掴む。 テキストに落とすと見やすい 量と種別 エンドポイント RailsのViewの数 API…

Reduxの日本語ドキュメントの自分用メモ

Reactに引き続きReduxのキャッチアップが必要になりました... 日本語のドキュメントを読んで必要そうなとこだけまとめた自分用メモです。 間違い、分かりにくい部分がたくさんあるはずです。 Redux自体少し古い技術っぽいので参考にならない部分が大いにある…

React公式ドキュメントの自分用メモ

Reactのキャッチアップが必要になったので公式 を一通り読んだことをまとめました。 自分用のメモなので間違い、分かりにくいところがたくさんあると思います。 Hello World Reactを触る上での最低限のポイント。 let、const で変数を定義する(var と等価) …

ソースコードを読むためのポイント

仕事で全然ソースコードが読めず、大変なのでソースコードの読み方を自分なりにまとめてみた。 ソースコードを読むとは 良く分かっていないが多分次のようなことだと思う。 プログラムの意味をイメージできること プログラムを書いた人の意図をイメージでき…

【Rails】Git管理せずにRails newしたい

Git管理せずにrails new したかったので方法を調べました。 結論 rails new 時にG (--skip-git)オプションを付与する。 $ rails new アプリ名 -G $ rails new アプリ名 --skip-git # -Gと同じ rails new 時はデフォルトでGit管理が自動で行われる仕様になっ…

コマンドラインでよく使うコマンドまとめ

コマンドライン(ターミナル、コンソール)でよく使うコマンドを整理しました。 表の中の「覚えるヒント」については自分なりに覚えやすいように無理やりひねり出したもので、公式な情報ではありませんので参考程度にしてください。 移動系 動作 コマンド 覚え…

【Rails】migrationファイルを削除してしまってロールバックできない時の対処法

ロールバック前にマイグレーションファイルを削除してしまいロールバックできなくなってしまったので対処法を残しておきます。 そもそもちゃんとコミットを残しておけばgit checkout するだけでokなので、こまめなコミットを積んでおくの大事です(自戒)。 結…

【Mac】FinderでiCloudが同期しなくなった時の対処

突然Finder内のiCloudが同期しなくなり、解決までちょっと時間が掛かってしまったので対処方を記録しておきます。 原因はよく分かっていませんが割と良くあること(?)のようなので色々試して解決しない場合は試してみてください。 結論 「セーフモード」でMac…

【Rails】DHH流のコントローラ分割について

コードレビューでコントローラ分割のアドバイスを頂いたのでDHH流のRailsのコントローラの分割について調べました。 DHH流のコントローラ分割とは? コントローラが元々持っているRESTアクションやデフォルトの5つの機能にはないメソッドを付け加えたいと思…

【GitHub】コードレビュー時のコメントの追加と返信の流れ

GitHubを使ったコードレビュー時のコメントの追加と返信のやり方が曖昧だったのでまとめました。 セルフレビュー時にコメントで補足情報を追加する レビュワーに良いアドバイスをもらうためにセルフレビュー時に補足情報をコメントすることでレビュワーに意…

RubyとRailsの?系メソッドのまとめ

メソッド名の末尾に?が付くメソッド(勝手に?系メソッドと呼びます)がたくさんありすぎてよく分からなくなったのでまとめました。 Ruby Rubyのメソッド。true/falseを返します。 nil?: オブジェクトがnilか? empty?: インスタンス(配列、ハッシュ、文字列等)…

M1 macでRubyインストール時のBUILD FAILEDエラーの解決法

RubyをM1 macにインストールする際にBUILD FAILED が表示されインストールできなかったので解決法を調べました。 結論 下記コマンドでインストールできる。 $ RUBY_CFLAGS="-w" rbenv install x.x.x 原因とエラー詳細は後述します。 環境 今回インストールし…

【Rails】フォロー機能の設計と実装

フォロー機能の設計から実装までの情報を整理しました。 実現したいこと 次の2つの機能を実装したい。 自分以外のユーザーをフォローできる フォローしているユーザー 、フォローされているユーザー を取得できる フォロー機能のテーブル設計 上記のフォロー…

【Ruby】ぼっち演算子とは?

ぼっち演算子の使い方をすっかり忘れていたのでまとめておきます。 結論 ぼっち演算子&. とはレシーバーがnil だった場合にNoMethodError ではなくnil を返すRubyのメソッド呼び出しの演算子です。 メソッド呼び出しで .の代わりに &.を使うことができます。…

rails g controllerでディレクトリを指定してファイルを作成する

rails g controller でディレクトリを指定してファイルを作成したかったのでやり方を調べました。 結論 指定するディレクトリを/ か:: で区切って指定する。 $ rails g controller ディレクトリ名/コントローラ名 アクション名 $ rails g controller ディレ…

【Rails】orderメソッドの使い方

order メソッドで並び替えする必要が出たので使い方を調べました。 orderメソッドとは? 取得したレコードを特定のキーで並び変えるメソッド。 Active Record クエリインターフェイス - Railsガイド orderメソッドの使い方 次の書き方で取得したレコードを並…

【Rails】関連付けたモデルの外部キーへのpresense: trueは必要ない

コードレビューでpresense: true の使い方を指摘されたので調べてみました。 結論 関連付けたモデルの外部キーへのpresense: true は必要ない。 アソシエーションによって紐付けられた外部キーの存在しない値やnil の場合へのpresenceバリデーションは自動的…

【Rails】request.refererとは?

コントローラーでリダイレクトさせる際にrequest.referer という見慣れない記述を見かけたので調べてみました。 結論 request.referer で遷移元のURLを取得できる。 requestとは? 現在実行中のリクエストサイクルの中でリクエスト情報が保存されているreque…

【Rails】redirect_toでのnoticeの2つの書き方

redirect_to を使った際のnotice オプションの書き方を忘れていたので調べました。 noticeオプションとは? redirect_to にnotice を使うで遷移後にフラッシュメッセージを表示できる。 フラッシュを表示するためのオプション(キー)はnotice 以外にもalert …

【Rails】外部キー制約とは?

作成したアプリのコードレビューで外部キー制約を追加するように指摘されたので調べて見ました。 結論 外部キーを保存するカラムに対して関連付けしているテーブルの主キーのみを保存するように制限し、データ不整合を防止すること。 具体的には次の制約が追…