Docker Desktop for Macのコンテナからローカル環境に接続する方法
Docker環境上のアプリケーションが指すlocalhostはローカル環境ではなくコンテナ自身を指しています。 今回はコンテナからローカル環境に接続する方法について紹介します。 なお、Docker Desktop for…
Docker環境上のアプリケーションが指すlocalhostはローカル環境ではなくコンテナ自身を指しています。 今回はコンテナからローカル環境に接続する方法について紹介します。 なお、Docker Desktop for…
http://localhost:3000で立ち上がっているローカル環境のRailsアプリケーションへ、任意のホスト名でアクセスできるようにする方法について紹介します。 今回は例としてhttp://api.local.e…
前回、RailsでセッションとCookieを操作する方法でRailsにおけるセッションとCookieの操作方法について紹介しました。 前回の記事のRailsアプリケーションはモノリス前提でしたが、今回はAPIモードでCo…
セッションとはステートレスなHTTP通信においてステートフルを実現するための情報、Cookieとはブラウザに用意されたデータの保存領域のことをいいます。 セッションの保存先にはいくつか候補がありますが、例えばセッションを…
JavaScriptのイミュータブル(immutable)やミュータブル(mutable)の意味、ReactのState更新で重要なイミュータビリティ(immutability)について紹介します。 事前知識: データの…
オブジェクトを浅い比較する際のロジックについて オブジェクトの浅い比較(shallow compare, shallow equal checking)がtrueになるケースは以下の通りです。 上記の『プロパティが一致』…
前回、【Ruby】カスタム例外の作成と利用に関する基礎知識でRubyにおけるカスタム例外の基礎知識について紹介しました。 今回はRailsアプリケーションでカスタム例外を利用する際の定義パターンについて紹介します。 クラ…
カスタム例外を作成する際はStandardErrorを継承する カスタム例外はStandardErrorを継承することで定義できます。 以下は一番シンプルなカスタム例外クラスの定義方法と利用方法の例です。 example…
API開発において特定のIPアドレスからのアクセスのみ許可したいというケースがあります。 今回はプライベートIPアドレスからのリクエストのみ許可する非公開APIの開発を例にとり、APIリクエストにIPアドレスの制約をつけ…
Railsアプリケーションの環境変数の設定方法は、Rails標準のconfig_for、global gem、config gemの3つが主流です。 今回はそれぞれのケースでの環境変数の設定方法について紹介します。 co…
then(yield_self)について thenはレシーバをブロックの引数として受け取り、ブロックの評価をレシーバに反映させるメソッドです。yield_selfはthenのエイリアス(等価のメソッド)です。 ### t…
map(collect) mapは各要素を変換して新たな配列を作成するメソッドです。collectはmapのエイリアス(等価のメソッド)です。 オブジェクトのプロパティや配列の要素から新たな配列を作成したい場合にmapが…
filter(select)について filterは条件を満たす全ての要素を取り出すメソッドです。selectはfilterのエイリアス(等価のメソッド)です。filterの例は以下の通りです。 > [1, 2, …
map(collect)について mapは各要素を変換して新たな配列を作成するメソッドです。collectはmapのエイリアス(等価のメソッド)です。 オブジェクトのプロパティや配列の要素から新たな配列を作成したい場合に…
concatメソッド concatは配列を自身の末尾に破壊的に連結するメソッドです。 concatを利用した配列の結合は以下の通りです。 > array1 = [‘a’, ‘b’] > array2 = [‘…
Railsアプリケーションで『nilの場合は~』を実装する際のリファクタリングについて紹介します。 今回は以下のようなパターンに分け、それぞれについて解説します。 『変数がnilの場合はデータをセットする』パターン 変数…
Vonage Verify APIを利用して2FAが組み込まれたRailsアプリケーションを実装します。 今回紹介するサンプルアプリケーションは公式のチュートリアルをベースとしているので、あわせてご覧になってください。 …
ローカル環境にたくさんできてしまったブランチを整理するためのTipsを紹介します。 今回の対象はローカル環境のみです。 Gitブランチの削除方法のおさらい ブランチを削除するgitコマンド fooというブランチを強制的に…
sortについて sortは配列を昇順でソートするメソッドです。要素の比較は<=>演算子(宇宙船演算子)が広く利用されますが、<=>演算子以外も利用できます。1 sortと<=>を組み…
「オブジェクトが存在しないケースを考慮し、オブジェクトのプロパティを参照する」、このような時にtry hashが活躍します。 try hashはdigで書き換えられます。今回はtry hashとdigの概要と、書き換えの…
前回、【React】カスタムフックの概要・メリット・使いどころでカスタムフックの概要について紹介しました。 今回はカスタムフックの具体的な作成手順について紹介します。 今回利用するサンプルコードについて 今回は『API経…
カスタムフック(Custom Hooks)について カスタムフックとはデフォルトのフックを利用して実装された関数です。 カスタムフックを実装する際のルール カスタムフックはコンポーネントに実装されたロジックを取り出したも…
以下の仕様のNext.jsアプリケーションの作成手順について紹介します。 Create Next AppでNext.jsの雛形を作成 今回はTypeScriptベースのNext.jsアプリケーションを作成するため、–t…
Next.jsのページはデフォルトでPre-renderingです。 ですので、 今回はNext.jsでSSR回避、つまりクライアントサイドでのみ処理を実行するように制御する方法について紹介します。 検証環境のnextは…
dynamic import(動的インポート)について dynamic import(動的インポート)とは動的にimportを実行するための機能です。ES2020でJavaScriptの仕様として導入されました。dyna…
ReactアプリケーションにおけるCSR・SSR・next/linkの挙動の違いについて4つの観点で紹介をします。 CSRはフレームワークを利用していないReactアプリケーション、SSRはNext.jsを利用したRea…
Next.jsのページのレンダリングはデフォルトでPre-rendering、つまりSSR(Server-side Rendering)もしくはSG(Static Generation)です1。 サーバサイドではブラウザ…
Hydrationについて HydrationとはHTMLに付随したJavaScriptを利用してイベントリスナを登録することでインタラクティブ(操作可能)なページを生成する過程のことをいいます。Hydrationはクラ…
SSR/SGではレンダリング時にブラウザの機能を使えない 具体例は以下の通りです。 Next.jsのページのレンダリングはデフォルトでPre-rendering、つまりSSR(Server-side Rendering)…
Next.jsではページごと(pagesディレクトリ直下のコンポーネントごと)にレンダリングの種類を決められます。今回はレンダリング種別の決められ方と確認方法について紹介します。 検証環境のnextは11.1.2を利用し…
Next.jsの公式ドキュメントによるPre-renderingの説明は以下の通りです。1 上記のプロセスを手元のローカル環境で確認したところ、SSRとSGで初期ロードのタイミングが異なっていたので紹介します。 検証環境…
『SSR(Server-side Rendering)はサーバサイドでHTMLを生成する仕組み』『SG(Static Generation)は事前に生成した静的なHTMLを配信する仕組み』『CSR(Client-side…
Next.jsのページのレンダリングはデフォルトでPre-rendering、つまりSSR(Server-side Rendering)もしくはSG(Static Site Generation)です。1 しかし、Nex…
Next.jsのページのレンダリングはデフォルトでPre-rendering、つまりSSR(Server-side Rendering)もしくはSG(Static Generation)です。1 SSRとSGのどちらを採…
コンポーネントが再レンダリングされる条件について コンポーネントは以下の条件のいずれかに当てはまると再レンダリングされます。 以下では再レンダリングが発生する具体例について紹介します。 コンポーネントのStateが更新さ…
Intersection型(Intersection Types、交差型)について Intersection型(Intersection Types)は型 & 型のように&で型を連結し、型を合成した新たな…
Union型(Union Types、合併型、共用体型)について Union型(Union Types)は型 | 型のように|で型を連結し、『いずれかの型』を表現します。 Union型は日本語では合併型と呼ばれたり1 2…
typeofについて typeofはオペランド(被演算子、演算対象の変数のこと)の型を文字列として返すJavaScriptの演算子です。 オペランドと取得できる文字列の対応は以下の通りです。1 型 戻り値 Undefin…
TypeScriptのコードでたまにみかけるtype HogeType = typeof Hoge[kyof typeof Hoge]の意味について解説をします。 結論: typeof X[kyeof typeof X]…
TypeScriptではEnum型よりもUnoin型を利用したほうがよいという話をよく聞きます。1 2 3 今回はEnum型からUnion型に書き換えた具体例について紹介します。 Enum型を利用した例 以下はColor…