世界一適当な技術ブログ

日々学んだ内容をとにかくにブログ形式でアウトプットします。(技術系中心)基本自分用備忘録です。

クラス/インスタンスメソッドの使い分け方法

クラス/インスタンスメソッドの使い分け方法 railsのモデルファイルを書いていて間違えやすいのが、クラス/インスタンスメソッドの使い分けです。 先に結論 データすべて(モデルそのもの)に対する操作はクラスメソッド。特定のデータに対する操作はインスタ…

rails newでgit 管理外れる場合の対象方法

rails new git 管理外れる場合の対象方法 rails newで作成したアプリケーションのディレクトリに移行してみると、git initのコマンドを打ち込んでいないのにも関わらずgitの管理が始まってします。 このときの対処方法を記載する 例)こんな現象 [/Users/use…

ESLintとPrettierの違いについて

ESLintとPrettierの違いについて ESLintとPrettierはどちらもソースコードの品質を高めるツールになります。 ESLint JavaScriptのための静的検証ツール ファイル内のバグチェックやコーディングスタイルの一貫性を保つ 例) letを使っているが再代入していな…

Rails設計パターン

Rails設計パターン Railsの設計パターンについて、殴り描きします MVCパターン RailsTutorialから入った自分には一番馴染みの設計パターン ルーティング(Routes)→コントローラー(Controller)→モデル(Model)→ビュー(View)の順番で処理がなされる 画像参考:【…

Railsアプリケーションのパフォーマンス・チューニング

railsのActiveRecordって便利だけど、実際にどんなクエリが吐かれるかチェックしてないとパフォーマンスすぐに落ちるケース多い。 遅いAPIをどのようにして発見するか? ■ 1.APM(Application Monitoring Management)を導入する おすすめはこの辺り - NewReli…

APIを設計するときに気を付けていること

WEB

APIを設計するときに気を付けていること RestAPI設計をするときに気をつけていることを殴り書きします ちなみにAPI設計を綺麗に設計することにより下記のようなメリットがあります。 1. 使いやすい 2. 保守運用が容易 3. セキュリティリスクが下げることがで…

特定のブランチのファイルを現在の作業ブランチにマージする方法

特定のブランチのファイルを現在の作業ブランチにマージする方法 あるブランチのファイルを現在の作業ブランチに移動させたいケースの対応方法を記載 例)materブランチのhoge.textを現在の作業ブランチに移動(コピー)させる git checkout origin/master a…

個人開発のおすすめ無料素材

1. Adobe Stock Adobe Stock(アドビ ストック)は、商用利用可能な1億点を超える素材(写真、イラスト、ベクター画像)を提供するストックフォトサービスです。 商用利用も可能です。 使い方はこちらを参考にできます。 公式サイト:Adobe Stock 無料コレク…

Railsのメリット、デメリット

メリット ■ 開発速度が速い RaislはRubyを使ったフルスタックWEBフレームワーク(DBを扱うActiveRecordが優秀、、メールを送る仕組みがデフォルトである、ジョブを実行できる)で、Rails Wayな書き方をすることで開発スピードを上げることが出来る。 Rails W…

DB設計をするときに気をつけていること

データベースはシステムの基盤です。 DB設計に失敗するとアプリケーションの実装が複雑になる、などの辛い思いをします。 また、後から修正するのは実装影響が大きいため容易ではありません。 DB設計する上で自分が普段気をつけている箇所を記載します。 1, …

gitコミットをまとめる方法

gitコミットをまとめる方法 コミットメッセージを修正する場合 コミットID_4 (HEAD -> master)コミットメッセージ_4 コミットID_3 コミットメッセージ_3 コミットID_2 コミットメッセージ_2 コミットID_1 コミットメッセージ_1 1, git rebase -i <コミット I…

Gitのコミットメッセージを後から変更する方法

ケース1「直前にコミットしたメッセージを変更する」 あ、コミットメッセージ名をtypoしてしまった!などの時に利用できる。 1. コミット履歴を確認して、直前のコミットしたメッセージ内容を確認 git log --onelineでコミット履歴を確認して、メッセージ内…

ActiveRecord::Type::Booleanでフラグ条件判定する便利な方法

has_option_thumbnail == 'true' みたいな条件判定をした場合、has_option_thumbnail == 'TRUE'のような場合ではfalseと判定されてしまいます。 この対策としてhas_option_thumbnail == 'true' || has_option_thumbnail == 'TRUE'にすればOKなんですが、なん…

JavaScriptの引数について

呼び出し時の引数が多いとき 関数の仮引数に対して引数の個数が多い場合、あふれた引数は単純に無視されます。 function add(x, y) { return x + y; } add(1, 3); // => 4 add(1, 3, 5); // => 4 デフォルト引数 lhiroki1205.hatenablog.com 可変長引数 仮引…

JavaScritpの暗黙的型変換について

JavaScritpの暗黙的型変換について JavaScriptでは演算子による演算や関数の処理過程で暗黙的な型変換が行われます。 例 // 異なる型である場合に暗黙的な型変換が行われる console.log(1 == "1"); // => true console.log(0 == false); // => true console.…

公開鍵暗号方式について

公開鍵暗号方式について インターネットで情報をやり取りするには、情報自体を第三者から盗まれないようにすることが重要になります。 そのためによく利用される暗号方式が公開鍵暗号方式です。 仕組みについて ①情報を受信する側が公開鍵と秘密鍵を作成して…

Everyday Rails - RSpecによるRailsテスト入門のまとめ

Everyday Rails - RSpecによるRailsテスト入門のまとめ 読みました。 超適当に内容まとめる。 全体 describe、context、before、after を使ってスペックを DRY にする マッチャはREADMEを参考にすると良い。参考リンク shoulda-matchersを利用すれば、便利な…

DXの基本

DXの基本 DX is 何? DXとはデジタルトランスフォーメーションの略。 デジタル技術を用いてビジネスを円滑に進めるようにイノベーションを起こすこと。 DXによるビジネスモデルの変革 ■ サブスクリクションモデル サブスクとは定期購入するビジネスモデルの…

Rspecのマッチャの参考リンク

RSpec が提供するデフォルトのマッチャをすべて見たい場合はGitHub にある rspec-expectations リ ポジトリ20の README が参考になるかもしれません。 https://github.com/rspec/rspec-expectations

開発案件にジョインする前に確認したい心構えについて(開発者目線)

開発案件にジョインする前に確認したい心構えについて PMが技術に詳しいかどうか PMが技術のことを理解しているかでタスクの振り方が大きく変わる。 非エンジニア上がりのPMの場合、技術がわからないので無理難題を振られるケースがあるので注意が必要。 レ…

Bundle Updateする時は影響範囲を最小限にしようという話

Bundle Updateする時は影響範囲を最小限にしようという話 bundle updateをすると全部のライブラリの依存関係を持ったgemも含めてアップデートされてしまいます。 そうすると、影響範囲が大きすぎて予期せぬバグになるケースが存在します。 ですのでBundle Up…

あの時の面接官に伝えたい、Vue.jsを導入するメリットは?(簡易版)

あの時の面接官に伝えたい、Vue.jsを導入するメリットは? エンジニア採用面談にて「reactなどの他のフレームワークに比べてVue.jsを導入するメリットは何かね?」と問われモゴモゴしてしまいました。 モゴモゴしすぎて面接は落とされましたw またモゴモゴし…

Sidekiq アンチパターンのまとめ

Sidekiq アンチパターン 業務でsidekiqを利用するケースがあったのですが、sidekiqのアンチパターンについて知らなかったのでまとめました。 1. 命名規則について ワーカーの名前は後から変更するのは後から変更するのは大変です。 ワーカーの命名規則をつけ…

ActiveRecord::Base.connected_toの利用方法

ActiveRecord::Base.connected_toの利用方法 今の現場でActiveRecord::Base.connected_toを利用した実装をしており、初めてみた書き方だったのでメモを残す。 データベースのルールを明示的に指定することが出来る ActiveRecord::Base.connected_to(role: :w…

Rails.application.config_forで設定ファイル全体を読み込む方法

Rails::Application.config_forを使うと、設定ファイル全体を読み込むことができます。 例) Rails.application.config_for(:for) config_for(:for)とする事によって、config/foo.ymlに設定された内容を、そのまま定義することができます。 config/foo.ymlの…

Rubyの条件分岐判定方法

Rubyの条件分岐判定方法 Rubyの条件判定は癖があるのでメモ残す。 Rubyの条件分岐は他のプログラミング言語同様に条件式が成立する時に返される「true」は真として扱われます。 また成立しなかった時に返される「false」は偽として扱われます。 falseとnilは…

sidekiqの使い方備忘録

sidekiqの使い方備忘録 仕事でsidekiq利用する機会があったので使い方の備忘録を残す(自分用) sidekiqとは? github.com Simple, efficient background processing for Ruby. Sidekiq uses threads to handle many jobs at the same time in the same proc…

【Rails】更新系メソッドまとめ

【Rails】更新系メソッドまとめ すでにテーブルに保存されているデータを、新しい情報に更新するメソッドに関してまとめてみました。 自分用備忘録です。 updateメソッド user = User.create(name: 'Taro', age: 15) # 成功 user.update(name: 'Taro') # => …

ポスグレの初期化で詰まった話

DBをUTF-8で初期化しようとして下記のコマンドを入力 initdb /usr/local/var/postgres -E utf8 すると下記のようなエラーに遭遇 The files belonging to this database system will be owned by user "inouehiroki". This user must also own the server pro…

break, return, nextまとめ

break, return, nextまとめ たまにこの辺りの使い分けややこしくなるのでまとめます。 break breakを使うと、繰り返し処理を抜けることができます。 def block_break puts '----' (1..5).each do |i| break if i % 3 == 0 puts i end puts 'end' end 1 2 end…