Effective Ruby 第6章まとめ

こんにちは!kossyです! さて、今回はEffective Rubyの第6章の覚えておくべき事項を ブログにまとめてみたいと思います。前回までの章をまとめたものはこちら Effective Ruby 第1章まとめ - その辺にいるWebエンジニアの備忘録 Effective Ruby 第2章まとめ …

Rails 6 APIモードのエラーハンドリング例

こんにちは!kossyです! さて、今回は、Rails 6 APIモードのエラーハンドリングについて、ブログに残してみたいと思います。 環境 Ruby 2.6.3 Rails 6.0.3 MacOS Mojave 流れとしては、 ・捕捉したいエラーをクラス化するerrorsモジュールの定義 ・exceptio…

Effective Ruby 第5章まとめ

こんにちは!kossyです! さて、今回はEffective Rubyの第5章の覚えておくべき事項を ブログにまとめてみたいと思います。前回までの章をまとめたものはこちら Effective Ruby 第1章まとめ - その辺にいるWebエンジニアの備忘録 Effective Ruby 第2章まとめ …

Effective Ruby 第4章まとめ

こんにちは!kossyです! さて、今回はEffective Rubyの第4章の覚えておくべき事項を ブログにまとめてみたいと思います。前回までの章をまとめたものはこちら Effective Ruby 第1章まとめ - その辺にいるWebエンジニアの備忘録 Effective Ruby 第2章まとめ …

独自Docker Registryがなぜ必要なのか?

こんにちは!kossyです! さて、今回はコンテナイメージを保存する独自Docker Registryがなぜ必要なのかについて、 ブログに残してみたいと思います。 Docker Hub、Harbor等と行ったパブリックレジストリサービスの利用を避けざるを得ないシチュエーションが…

よく使うDockerfileのコマンドまとめ(その1)

こんにちは!kossyです! さて、今回はDockerfileでよく使うコマンドをまとめてみたいと思います。 FROM https://docs.docker.jp/engine/reference/builder.html#id43ビルドするイメージのベースイメージを指定します。取得するイメージはDocker Hubのパブリ…

RailsでDBにindexを貼る際のis too long the limit is 64 charactersの対処法

こんにちは!kossyです! さて、今回はRailsでDBにindexを貼る際のis too long the limit is 64 charactersの対処法について、 ブログに残してみたいと思います。 環境 Ruby 2.6.3 Rails 6.0.3 MacOS Mojave エラー詳細 まずエラーメッセージを記載します。 …

Effective Ruby 第3章まとめ

こんにちは!kossyです! さて、今回はEffective Rubyの第3章の覚えておくべき事項を ブログにまとめてみたいと思います。前回までの章をまとめたものはこちら Effective Ruby 第1章まとめ - その辺にいるWebエンジニアの備忘録 Effective Ruby 第2章まとめ …

Dockerの開発環境でbinding.pryを使う

こんにちは!kossyです! さて、今回はDockerでデバッグツールであるpryを使う方法についてブログに残してみたいと思います。 環境 Docker 19.03.12 docker-compose 1.26.2 Docker Desktop for Mac 2.3.0.4Ruby 2.6.3 Rails 6.0.3 手順 予めDockerで開発環境…

AngularのAoTコンパイルについて

こんにちは!kossyです! さて、今回はAngularのbuild時に用いることができる、AoTコンパイルについて、ブログに残してみたいと思います。 AoTコンパイルとは? まず、用語について調べてみました。 事前コンパイラ (Ahead-Of-Timeコンパイラ、AOTコンパイラ…

shallow copy と deep copy

こんにちは!kossyです! さて、今回はshallow copy と deep copy の違いについて、 ブログに残してみたいと思います。 なお、例はRubyで書いていきます。 shallow copy しっくりくる説明を引用させて頂きました。 シャローコピー(浅いコピー)はプリミティブ…

Effective Ruby 第2章まとめ

こんにちは!kossyです! さて、今回はEffective Rubyの第2章の「覚えておくべき事項」をまとめたものを、 ブログに残してみたいと思います。 第1章のまとめ記事はこちら 第2章 クラス、オブジェクト、モジュール 2-1. Rubyが継承階層をどのように組み立てる…

Rails.application.configureで環境毎にcorsのallow_originsを設定する

こんにちは!kossyです! さて、今回はRails.configurationに環境毎にoriginを定義して、 corsのoriginの設定を行う方法について、ブログに残してみたいと思います。 環境 Ruby 2.6.3 Rails 6.0.3 MacOS Mojave corsとは? みんな大好きMDNのcorsの解説を引…

DockerでAngular10の環境を構築してみる

こんにちは!kossyです! さて、今回はDockerでAngularの環境を構築する手順について、 ブログに残してみたいと思います。 環境 Docker 19.03.12 docker-compose 1.26.2 Docker Desktop for Mac 2.3.0.4 Dockerfile作成 何はともあれまずはDockerfileを作成…

ng build時に javascript heap out of memory が発生した場合の対処法

こんにちは!kossyです! さて、今回はAngularでng build を行った際に、 「javascript heap out of memory」エラーが発生し、 buildが通らない場合の対処法について、 ブログに残してみたいと思います。 環境 Angular CLI: 9.1.7 Node: 12.13.1 typescript …

RubyのNKFモジュールとFileクラスとPathnameクラスを使ってファイルの文字コードを調べる

こんにちは!kossyです! さて、今回はRubyのNKFモジュールとFileクラスとPathnameクラスを使って、 ファイルの文字コードを調べる方法にについて、ブログに残してみたいと思います。 環境 Ruby 2.6.3 Rails 6.0.3 MacOS Mojave 手順 大まかな手順は以下の通…

TypeScriptの便利機能の紹介(その1)

こんにちは!kossyです! さて、今回はTypeScriptの便利機能をブログに残してみたいと思います。 もくじ Intersection Types Type Guard タグ付きUnion 型アサーション NonNullAssertionOperator InterSection Types 交差型ともいい、二つの型の積集合を取る…

day.js のtypesファイルのコードを読んで型定義を学んでみる(その1)

こんにちは!kossyです! さて、今回はTypeScriptの実践的な使い方を学ぶ目的で、 javascriptの日付を扱うライブラリでmoment.jsに次いで有名なday.jsのtypesファイルを読んで、 型定義について学んでみたいと思います。 declare(アンビエント宣言) 5行目か…

AngularのPLATFORM_IDのユースケース

こんにちは!kossyです! さて、今回は個人開発アプリでお世話になっているangular-tokenというnpmライブラリのソースコードを読んでいる時に見つけた、 PLATFORM_IDについて、これが何なのかについてと、ユースケースについてもブログに残してみたいと思い…

AngularでBase64エンコードされた画像を表示したい

こんにちは!kossyです! さて、今回はAngularでSafeResourceUrlインターフェイスを用いて、Base64でエンコードされた画像を表示する方法を ブログに残してみたいと思います。 環境 node 12.13.1 npm 6.14.4 Angular 9.1.7 Angularでは、信頼できないリソー…

Railsのscope内でfind_byを使った場合の挙動がヤバかったwwww

こんにちは!kossyです! さて、今回はRailsのscope内でfind_byを使った場合の挙動について、 ブログに残してみたいと思います。なお、タイトルはYoutubeのタイトルを意識してみました。特に意味はありません。 環境 Ruby 2.6.3 Rails 6.0.3 MacOS Mojave sc…

JavaScript読み込みの際に指定できるasyncについて

こんにちは!kossyです! さて、今回はJavaScript読み込みの際に指定できるasyncについて、 ブログに残してみたいと思います。 asyncという単語の意味 まずは単語の意味から解説します。async, await 構文 で馴染みのある方もいらっしゃるかもしれませんが、…

ActiveStorageを rails c で試す

こんにちは!kossyです! さて、今回はrailsのActiveStorageをrails consoleで試す方法について、ブログに残してみたいと思います。 環境Ruby 2.6.3 Rails 6.0.3 MacOS Mojave 前提として、ActiveStorageのinstallおよびmigrateを終え、適当なモデル(例ではU…

Effective Ruby 第1章まとめ

こんにちは!kossyです! さて、今回はEffective Rubyという書籍を読んだので、備忘録としてブログに要件だけ残してみたいと思います。 1回読んだだけでは全て頭に入らないので、、、泣Effective Rubyは8章立てになっているので、8回に分けて更新することに…

AngularのRouterLinkActiveOptionsについて

こんにちは!kossyです! さて、今回はAngularRouterのOptionのひとつであるRouterLinkActiveOptionsについて、 ブログに残してみたいと思います。 環境 node 12.13.1 npm 6.14.4 Angular 8.0.6 routerLinkActiveとは? routerLinkActiveディレクティブは、r…

1日1データモデリングのすヽめ

こんにちは!kossyです! さて、今回はプログラミングから少し離れて、最近私が実践している「1日1データモデリング」をご紹介できればと思います。 そもそもデータモデリングってなに?なんで必要なの? この部分は詳しい記事がありましたのでこちらで解説…

Rails で 検索機能を実装する際にフルネームで検索できるように実装したい

こんにちは!kossyです! さて、今回はRailsで検索機能を実装する際に、フルネームで検索できるようにする方法を ブログに残してみたいと思います。 環境 Ruby 2.6.3 Rails 6.0.0 Mysql 5.7.23 前提 usersテーブルがあり、カラムとして last_name firlst_nam…

Railsでenumを定義している時、自動でscopeが定義される

こんにちは!kossyです! さて、今回はRailsでenumを定義すると、自動でscopeが定義されるので、 その使い方についてブログに残してみたいと思います。 環境 Ruby 2.6.3 Rails 6.0.3 MacOS Mojave 使い方 例えば、Articleモデルがあって、 class Article enu…

Railsでsendgridのmessage_idを取得したい

こんにちは!kossyです! さて、今回はRailsでsendgridをメール配信サービスとして使用していた時に、 message_idを取得する方法についてブログに残してみたいと思います。 環境 Ruby 2.5.1 Rails 5.2.3 MacOS Mojave なお、sendgridの設定周りについての説…

RailsにおいてDate.todayで日本時間が返らない原因を探った話

こんにちは!kossyです! さて、今回は個人開発でLineBotをRailsを使って作成した時に、 Date.todayで日本時間が返らなかった時の備忘録を残してみたいと思います。 環境 Ruby 2.6.3 Rails 6.0.2 MacOS Mojave config.active_record.default_timezoneの設定…