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

フィヨルドブートキャンプのプラクティスを見直してみた

はじめに こんにちは。これは フィヨルドブートキャンプ Part 2 Advent Calendar 2021 - Adventarの9日目の記事です。フィヨルドブートキャンプ Part 1Advent Calendar 2021もあります。 8日目はsadanoraさんのRailsのローカル開発環境についての記事でした…

Vue.jsのコンポーネントについて

はじめに Vue.jsのコンポーネントについて学習した。その忘備録。 Vue.js入門 基礎から実践アプリケーション開発まで | 川口 和也, 喜多 啓介, 野田 陽平, 手島 拓也, 片山 真也 | コンピュータ・IT | Kindleストア | Amazon Vueコンポーネント Vue.jsは、 1…

async/awaitを使ってPromiseの評価値をやりとりする方法

はじめに async/awaitを使ってPromiseの評価値をやりとりする方法がよくわからなかったので、理解を深める目的で調べてまとめた。 JavaScript Primer - 迷わないための入門書 #jsprimer async/awaitを使ってPromiseの評価値をやりとりする方法 Promiseとthen…

非同期なメソッドを直列に動作させる書き方

はじめに 昨日npmを作成していて、非同期処理メソッドを狙い通りに動かすことができずに苦しんだ。 特に、3つ以上のメソッドが出てくる場合にどう記述したらいいのか混乱した。 そこで、Promiseおよびasync/awaitの復習をした。 三つ以上の非同期処理メソッ…

配列展開初めて使った話

配列から取り出してなんやかんやしたいとき、律儀に、 num = [1, 2, 3] p num[0] p num[1] p num[2] ってやってたんだけど、配列の中身を全部出して使いたいなら、配列展開を使った方がシンプルに書けると教わった。 num = [1, 2, 3] p *num これで中身全部…

eachにsum使ったらスッキリした話

eachで配列をループさせて、それぞれの結果を足したいとき、以下のように書いていたのだけど、 num = 0 (1..9).each do |n| num += n end sumを使った方がスッキリ書けるということをフィヨルドブートキャンプのメンターさんに教わった。 num = (1..9).each …

Capybaraでテキストを完全一致でテストする方法

はじめに ほぼ同じテキストが並んでいるページをそれぞれテストするときなど、テキストを部分一致ではなく、完全一致でテストしたい時があります。 調べ方が悪かったのか検索しても公式のドキュメントしか出てこなかったので備忘録。 exact_textオプションを…

非同期処理(JavaScript)、コールバック、Promise、async/await

非同期処理(JavaScript) 以下についてそれぞれ調べた。 非同期処理 callback promise async/await 同期処理と非同期処理について 同期処理 複数のタスクを実行する際に一つずつ順番にタスクが実行される方式のこと。 プログラムに記載した通りの順番でタスク…

オブジェクト指向プログラミング

オブジェクト指向プログラミングの基本的な考え方 「オブジェクト指向プログラミングでは、極力インスタンス変数を使ってそのインスタンス自身に処理させる」 インスタンスが個別に持つ情報を利用してインスタンスメソッドを呼び出して処理する。という書き…

TDD (テスト駆動開発)について

TDD(テスト駆動開発)とは 以下のTDDのサイクルを繰り返す開発のこと Todoリストから次の目標を考える その目標を示すテストを書く そのテストを実行して失敗させる(Red) 目的のコードを書く(必要最低限で良い) 2で書いたテストを成功させる(Green) テストが…

commitをいい感じにまとめたい

commitをいい感じにまとめたい いつも以下のやり方。 【git rebase -i】gitのcommitをまとめる - Qiita 基本指示コマンドはsを使っている(コメントの編集がしやすい)。

railsアプリでテーブル名を変更したい

railsアプリでテーブル名を変更したい 以下を参考に行うことで出来た。 【Ruby on Rails】テーブル名の変更方法と変更時にやること一覧&ステップ - Qiita 注意点 最初、マイグレーションファイルを直接編集して、その後rails db:resetで変更しようと試みた…

ポリモーフィック(1) 関連付け

はじめに プラクティスの必須要件をみながら、ざっくりテーブルはこんな感じで...こんな感じでアクションを...と紙に書いていてふと気づく。 あれ...commentモデルとreportモデル、booksモデルの関連付けってどうやればいいんだ...? またそれぞれに中間モデ…

N+1問題

はじめに Ruby on RailsのN+1問題に関して調べたので、その忘備録 N+1問題とは テーブルに対してデータ検索を行うとき、不必要に大量のSQL(N+1件のSELECT文)を発行してしまい、パフォーマンスが低下してしまう問題のこと。 1:多などモデルの関連付けをしてい…

アソシエーションを設定したモデルに関する注意点(Ruby on Rails)

はじめに Ruby on Railsのフォロワー機能作成のプラクティスをやっていて、これに何回か引っかかったのでその忘備録 アソシエーションを記述すると、子モデルに設定される制限について belong_toを記述した、子モデルから作成したインスタンスは「外部キーに…

モデルとメソッド

はじめに railsのモデルとメソッドについて学習。その忘備録。 モデル(model) | Railsドキュメント モデルの役割 モデルはApplicationRecordクラスを継承したクラスオブジェクトで、データベースを操作するためのメソッドを継承している(new, create, findな…

before_actionについて

はじめに railsのアプリを触っているとちょくちょく目に入るbefore_actionについて調べた。 【Rails】 before_actionの使い方を徹底解説! | Pikawaka - ピカ1わかりやすいプログラミング用語サイト before_action - Qiita before_actionとは コントローラの…

Railsのコントローラについて

はじめに ユーザーのフォロー機能を作っていて、コントローラがイマイチ掴めていないと感じたので学習。そのまとめ。 引用:Action Controller の概要 - Railsガイド コントローラの役割 めっちゃ簡単に言うと、ルーティングから指名されたアクションを行う…

似たような技術系の記事を書くことについて

はじめに 先日、フィヨルドブートキャンプ内のQ&Aにて、 調べれば出てくる技術系の記事を、アウトプットとしてもう一度書くのは、アリなのか? という質問を立てた。 なぜこのような質問をしたかというと、以下の二点がずっと気になっていて、アウトプットの…

reference型を使うメリットについて

はじめに railsで、外部キーを参照するカラムを作成するとき、データ型をreference型にしたり、しなかったりしている記事があるので、どっちがいいんだろうと思って調べた。 references型を使うメリットについて 結論を言うと、reference型を使うメリットは…

外部キー制約とインデックスについて

はじめに フィヨルドブートキャンプの「ユーザーフォロー機能を実装しよう」を、調べながら進めようと思った矢先、最初の「Relationshipテーブルの作成」で、いくつかわからない単語が出てきたので調べた。 その忘備録。 「外部キー制約」と「インデックス」…

ルーターとコントローラー(1)

ルーターとコントローラー ルーターの役割 クライアントのブラウザから発信された、URIによる要求(HTTPリクエスト)を受け取り、どのコントローラーの、どのアクションに割り当てるかを判断する。 割り当ての設定(ルーティング設定)は、routes.rbファイルを使…

Ruby on Railsの基本ディレクトリとファイルについて(2) appディレクトリとconfigディレクトリ内のファイルとディレクトリ

最初に この記事はRuby on Railsの基本ディレクトリとファイルについて(1) アプリケーション直下のディレクトリとファイル - らせんびよりの続きです✨ appディレクトリ内のファイルとディレクトリ assets Railsアセットファイルを管理するディレクトリ。 以…

Ruby on Railsの基本ディレクトリとファイルについて(1) アプリケーション直下のディレクトリとファイル

Ruby on Railsの基本のディレクトリとファイルに関する疑問 フィヨルドブートキャンプの課題に対するレビューで、「不要なファイルやディレクトリ、コメントは消そう」という指摘を受けた。 不要なものがあればあるほどバグの温床になるし、可読性も悪くなる…