あまブログ

ドキドキ......ドキドキ2択クイ〜〜〜〜〜〜〜ズ!!

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

VSCodeでNode.jsをデバッグする

VSCodeでNode.jsをデバッグする方法は主に以下の3つがあります。 Auto Attach JavaScriptデバッグターミナル launch.jsonを使ったデバッグ この記事では、Auto AttachとJavaScriptデバッグターミナルでのデバッグ方法を紹介します。 1. Auto Attach 1.コマ…

【Ruby3.1】lsコマンドを作る(OOP版)

非OOP版はこちら↓ ama-tech.hatenablog.com 1. 実行環境 macOS:13.0.1 Ruby:3.1.0 2. ソースコード ls.rb #!/usr/bin/env ruby # frozen_string_literal: true require_relative 'command' LS::Command.new(ARGV).list_files command.rb # frozen_string_l…

【Node.js】カレンダーのプログラムを作る

以下のカレンダーのプログラムをJavaScriptで、nodejsで実行するコマンドラインのプログラムとして作り直します。 ama-tech.hatenablog.com 1. 環境 macOS:13.0.1 node:v18.12.1 2. ソースコード #!/usr/bin/env node const argv = require("minimist")(pr…

【Git】git diffで差分を表示する

Git

# インデックスと作業ディレクトリの比較 $ git diff # 最新のコミットとインデックスの比較 $ git diff --cached $ git diff --staged # 同義 $ git diff --cached HEAD # 同義 # 最新のコミットと作業ディレクトリの比較 $ git diff HEAD # コミット同士の…

【Git】git stashでコミットしていない変更を一時的に退避させる

Git

1. 変更を退避する git stash = git stash push # 作業ディレクトリとインデックスの変更を退避 $ git stash push # 作業ディレクトリの変更を退避 $ git stash push -k # 作業ディレクトリとインデックスの変更 + 新規作成ファイルを退避 $ git stash push …

【Git】HEAD^(キャレット)とHEAD~(チルダ)の違い

Git

Git - gitrevisions Documentationの以下の図がわかりやすい G H I J \ / \ / D E F \ | / \ \ | / | \|/ | B C \ / \ / A A = = A^0 B = A^ = A^1 = A~1 C = = A^2 D = A^^ = A^1^1 = A~2 E = B^2 = A^^2 F = B^3 = A^^3 G = A^^^ = A^1^1^1 = A~3 H = D^2 …

【VSCode】ESLintとPrettierのインストールと設定

この記事ではESLint(静的検証ツール)とPrettier(コードフォーマッター)のインストールと設定方法、またこれらをVSCodeで使用する方法を紹介します。 1. ESLint 1-1. インストール 1-2. 設定ファイル 1-3. コマンドラインでESLintを実行 1-4. VSCodeとの統合 …

【nvm】Node.jsのインストールとバージョン管理

この記事では、Node.jsのバージョン管理ツールであるnvmのインストール方法・設定・使い方を紹介します。 1. nvmのインストール 2. .nvmrcファイルの自動読み込み設定 3. nvmの使い方 3-1. Node.jsのインストール・アンインストール 3-2. Node.jsのバージョ…

【Git】任意の箇所にコミットを挿入する

Git

以下のようなコミット履歴がある A -- B -- C コミットBとコミットCの間に新しいコミットDを挿入したい A -- B -- D -- C やり方 コミット履歴の確認 $ git log --oneline a065513 (HEAD -> main) コミットC 1e4ebc6 コミットB b4c8aca コミットA コミットB…

【Git】git add -Aとgit add .とgit add -uの違い

Git

Command New Files Modified Files Deleted Files Scope git add -A ⚪︎ ⚪︎ ⚪︎ 全てのディレクトリ git add . ⚪︎ ⚪︎ ⚪︎ カレントディレクトリ git add -u × ⚪︎ ⚪︎ 全てのディレクトリ git add -A 変更された全てのファイル(新規作成・更新・削除されたファイ…

【Git】git commit --amendで直前のコミットを修正する

Git

この記事では、git commit --amendの使い方を紹介します。 git commit --amend:直前のコミットの修正 現在のステージングエリアの状態を元に、直前のコミットを作り直す 修正されたコミットは実際は新しいコミットのため、リモートにpush済みのコミットへの…

Node.jsでESモジュールを使う

この記事では、Node.jsでESモジュール(ECMAScriptモジュール, JavaScriptモジュール)を使う方法を紹介します。 バージョン情報 node:v16.18.0 方法1:モジュールファイルの拡張子をmjsにする foo.mjs export const foo = "foo"; main.mjs import { foo } fr…

【ES2015】JavaScriptの関数の書き方

1. 関数宣言(Function declaration) 1-1. 関数宣言の巻き上げ 2. 関数式(Function expression) 2-1. 名前付き関数(Named function) 2-2. 無名関数(Anonymous Function) 3. アロー関数(Arrow function expression) 3-1. アロー関数の省略記法 4. メソッド定義…

【Git】複数のコミットを一つにまとめる(rebase -i で squash)

Git

この記事では、git rebase -iを使って複数のコミットを一つにまとめる方法を紹介します。 1. 連続したコミットの場合 2. 離れたコミットの場合 1. 連続したコミットの場合 以下のedit2, edit3, edit4を一つにまとめて、edit 2 & 3 & 4にします。 $ git log -…

【Git】git reset --soft、--mixed、--hardで変更を取り消す

Git

1. git reset git reset [<mode>] [<commit>] mode --soft:HEADの移動 --mixed:HEADの移動、インデックスの更新 --hard:HEADの移動、インデックスの更新、作業ディレクトリの更新 デフォルトで--mixedが指定される commit 巻き戻したいcommitを指定 デフォルトでHEADが</commit></mode>…

【RuboCopエラー】Use a guard clause instead of wrapping the code inside a conditional expression.

バージョン情報 rubocop 1.34.1 Ruby 3.1.2 エラー内容 Use a guard clause instead of wrapping the code inside a conditional expression. →例外処理の条件分岐のネストが深くなるのを防ぐためにGuard Clause(ガード節)を使いましょう。 エラー対処 # こ…

【Ruby】Minitestの使い方

この記事では、minitestを使ってRubyのコードをテストする方法を紹介します。 Rubyのテストフレームワーク、Test::Unit・test-unit・minitestの違いについては以下を参照ください。 Ruby標準のテスティングフレームワークで手軽にテストコードを書く方法 - Q…

【Ruby3.1】ボウリングのスコア計算プログラムをオブジェクト指向で作る

非OOP版はこちら↓ ama-tech.hatenablog.com 1. 実行環境 macOS:12.6 Ruby:3.1.0 2. ソースコード bowling.rb #!/usr/bin/env ruby # frozen_string_literal: true require_relative 'game' shots = ARGV[0].split(',') game = Game.new(shots) puts game.s…

【Rails】gemのアンインストール方法

この記事では、RailsアプリでBundlerを使ってインストールしたgemを削除する方法を紹介します。 手順 $ bundle exec gem uninstall <gem名> ↓ Gemfileから該当のgemの行を削除 ↓ $ bundle install 上記によりGemfile.lockからも削除されます。 【参考】 gem uninsta</gem名>…

【Bundler】Gemfileのバージョン指定の書き方

GemfileはBundlerでgemの依存関係を管理するために必要な設定ファイルです。 Gemfileにはgem名とバージョンをgem 'rails', '~> 6.1.5'のようなフォーマットで記述します。 ~> 6.1.5の正確な意味わかりますか? ~>の呼び方知ってますか?(トゥウィドルワッカ…

【Rails】ポリモーフィック関連付けを使ってコメント投稿機能を実装する

この記事では、Railsのポリモーフィック関連付けを使ってコメント投稿機能を実装する際のポイントを紹介します。 1. バージョン情報 2. 前提条件 3. 実装時のポイント 3-1. ポリモーフィック関連付け 3-2. コメント作成 3-3. コメント表示 3-4. コメント作成…

【Rails】ユーザーフォロー機能を実装する

この記事では、RailsでTwitterやInstagramのようなユーザーフォロー機能を実装する際のポイントを紹介します。 1. バージョン情報 2. 実装時のポイント 2-1. モデルの関連 Friendshipモデルの作成 User/Friendshipの関連付け 2-2. フォロー数・フォロワー数…

【Rails】ActiveStorageで画像アップロード機能を実装する

この記事では、Rails 5.2からの標準機能であるActiveStorageを使って画像アップロード機能を実装するポイントを紹介します。 1. バージョン情報 2. 実装時のポイント 2-1. Active Storageのセットアップ 2-2. 画像アップロードと表示 2-3. 画像のリサイズ 2-…

【Rails】deviseでユーザー認証機能を実装する

この記事では、devise gemを使ってRailsアプリケーションにユーザー認証機能を実装する方法を紹介します。 1. 実行環境 2. 手順 2-1. サンプルアプリの作成 2-2. deviseのセットアップ 2-3. ルートルーティングの設定 2-4. フラッシュメッセージの表示 2-5. …

VSCodeでRailsをデバッグする【Rails + vscode-rdbg(debug.gem)】

この記事では、Ruby 3.1で標準ライブラリとなったdebug.gemを使って、VSCode上でRailsアプリのデバッグを行う方法を紹介します。 1. 設定方法 1-1. debug.gemのインストール 1-2. vscode-rdbgのインストール 1-3. launch.jsonファイルの作成 2. デバッグ方法…

【Git】グローバルなgitignoreの設定方法

Git

この記事では、グローバルなgitignoreの設定方法を紹介します。 グローバルなgitignoreファイル(~/.config/git/ignore)を作成し、全てのリポジトリでGitの追跡対象外とするファイルを定義します。 1. gitignoreとは 2. gitignoreの使い分け 3. グローバルなg…

【Rails】kaminariでページング処理を実装する

この記事では、kaminari gemを使ってページング処理(ページネーション)を実装する方法を紹介します。 1. 実行環境 2. 手順 2-1. kaminari gemのインストール 2-2. ページネーションを実装 2-3. 日本語化 1. 実行環境 macOS:12.5.1 Ruby:3.1.2 Rails:6.1.7…

【Rails】i18nで日本語化する方法

この記事では、Railsに同梱されているi18n gemを使ってアプリケーションを多言語化する方法を紹介します。 1. 実行環境 2. 手順 2-1. i18nモジュールの設定 2-2. ロケールファイルのダウンロード 2-3. Active Recordモデルで翻訳を行なう 2-4. その他の翻訳 …

【Git】コミット済みファイルを管理対象から除外する方法

Git

Gitは一度ファイルを追跡すると、.gitignoreに追加しても追跡は継続されます。 .gitignoreに追加する前にコミットしてしまった リモートリポジトリにすでに追跡されているファイルの追跡をやめたい このような既にGitの管理対象になっているファイルの追跡を…

【iTerm2】現在のディレクトリのまま新規タブを開く

iTerm2のデフォルトでは、ホームディレクトリで新規タブが開かれます。 これを、元のタブと同じディレクトリで新規タブを開くように設定します。 iTerm2:3.4.16 設定方法 Preference > Profile > Working Directory > Reuse previous session's directory …