fv17の日記

Webエンジニアの備忘用ブログです。主にWeb界隈の技術に関して書いています。

2018-11-01から1ヶ月間の記事一覧

Rails - バージョン5.2よりconfig/secrets.ymlが仕様変更

下記参照 qiita.com

Ruby - Refinementsとは

書籍「メタプログラミング Ruby」の写経兼復習用。Refinementsとは、Rubyにおけるオープンクラスのスコープを特定の範囲に限定するもの。具体的に見ていくと、下記のようなオープンクラスを用いた場合、その影響範囲はアプリケーション全体となり、予期せぬ…

【オブジェクト指向】SOLID原則について

ググったけどリスコフの置換原則などに関して分かりやすい良記事が見つからなかった。TODO(後で読む)https://www.amazon.co.jp/dp/4797347783 アジャイルソフトウェア開発の奥義 第2版 オブジェクト指向開発の神髄と匠の技

【デザインパターン】テンプレードメソッドパターン

下記がわかりやすい。 Rubyでの解説 Rubyによるデザインパターン【Template Method】-テンプレは準備した、あとはお好きに- - Qiita Javaでの解説 デザインパターン「Template Method」 - Qiita

RuboCop Airbnbの導入方法

RailsにRubocop Airbnbを導入する。 参照URL Rubocop AirbnbのGithub https://github.com/airbnb/ruby/tree/master/rubocop-airbnb#installationRubocopの公式Doc https://docs.rubocop.org/en/latest/ 設定方法 Rubocop AirbnbのGithubのInstallationに導入…

Ajaxとは? - 基礎と起源

Ajaxとは? qiita.com Ajaxの起源 Ajax: A New Approach to Web Applications | Adaptive Path

正規表現 - 肯定の先読み・後読みなどの復習

下記の復習用qiita.com投稿してから気づいたが、上記の記事の「まとめ」読めばいいじゃん... まぁ写経がてら学べたからよしとしよう。 \b 単語の境界 「単語の境界」を意味する。下記から英単語「ear」を抽出したい時に、「\bear\b」とすることで「hearing」…

Rubyにおけるprivateの仕様が他言語と違う理由

「メタプログラミングRuby」に「privateの本当の意味」というコラムがあるのだが、そもそもJavaなどの言語と仕様が違う理由は何か?、なぜJavaのようなシンプルな設計となっていないのか?、設計思想は?、と気になったので調べてみた。 ズバリの記事があっ…

RSpec - マッチャ一覧

参照は下記。本記事にないマッチャはいずれかを参照すれば見つかる。 公式Doc Built in matchers - RSpec Expectations - RSpec - Relish File: README — Documentation for rspec-expectations (3.8.2) @jnshitoさんの記事 使えるRSpec入門・その2「使用頻…

Git - コミット時のコメントの書き方について

Git

下記で話題になっているので参考。 Git公式でこう書けばGoodだよ的な記事はないのだろうか。qiita.comqiita.com

Ruby - 文字列操作に関するメソッド一覧

=~ todo match todo scan Stringのメソッド。 正規表現のパターンとマッチする部分を文字列からすべて取り出し、配列にして返す。 '123 456 789'.scan(/\d+/) # => ['123', '456', '789'] 参考 : scan (String) - Rubyリファレンス split Stringのメソッド。…

ゼロから学ぶ正規表現

文字列の検索や置換を行うための技術、ミニ言語的な立ち位置としての正規表現を学ぶ。アプリにおけるユーザーの入力制御、クローラーを使ったWebスクレイピングでの情報抽出、開発途中におけるテストデータの一括修正など、利用場面が多い。エンジニア1~3年…

RubyMine - No Ruby interpreter configured for the projectの解決方法

稀にエラーとなり、外部ライブラリが見えなくなる。 解決方法 RubyMineを閉じる .idea/ フォルダーを削除する 再度RubyMineで該当のプロジェクトを開く git管理している場合の .idea/ 削除方法 git statusでUntracked filesに .idea/と出てきたら下記コマン…

N+1問題とは

N+1問題とは、必要以上にSQLクエリが発行され、その結果、速度低下に繋がりユーザビリティが悪くなる問題のこと。 N+1問題とか名前しらなかっただけで当たり前。 具体的には? 下記の記事を参照。 ruby-rails.hatenadiary.comもしくは、Rails ガイドの「13 …

【パーシャル】:collectionオプションによる複数オブジェクトのレンダリング

パーシャルにオブジェクトの複数形を渡し、見やすいコードにする 基本の使い方 collectionオプションにより、コレクションのメンバごとにパーシャルをレンダリングする <%= render partial: "product", collection: @products %> 具体的な使い方 Before Refa…

Ruby - if文を一行にまとめる技

ある値がnilかどうかでif文を分岐させる場合、引数で || 記法が使えないかを検討する if文で分岐させる書き方 def redirect_back_to(default) if session[:forwarding_url].nil? redirect_to default else redirect_to session[:forwarding_url] session.del…

Ruby - 場所によって変わるselfの意味

参照:チェリー本 Class直下におけるself クラス クラスメソッドにおけるself クラス インスタンスメソッドにおけるself インスタンス

Rails - delegateはなぜ必要なのか

delegateの基本的な使い方 基本的な使い方は公式ドキュメントか、日本語の場合はググればいっぱい出てきます。 https://api.rubyonrails.org/classes/Module.html#method-i-delegate なぜ必要か? オブジェクト指向の「デメテルの法則」(最小知識の原則)に反…