用語

N+1問題とは

N+1問題とは10件の商品を一覧表示するWebページがあるという前提で10件の一覧情報を取得(DBへのselectが1回実行される)各商品の詳細情報を1件ずつ取得(DBへのselectが10回実行される)1と2の情報を合わせて画面を表示とい...
JavaScript

【JavaScript】初心者向けvar,let,constの使い分け、違い – constは定数ではない

初心者がJavaScriptを学ぶ上で最初に混乱するvar,let,constに関して、どうやって使い分けていけば良いか解説する。結論最初に結論から言うと、以下のように覚えておけば大丈夫。可読性の高いコードにするために、基本はconst一択...
Docker

【Docker】初学者のためのDockerfile作成方法

概要Dockerfileを利用してDockerコンテナを起動させるためには、ざっくり以下の手順を行うことになる。(実際には1-3を繰り返しながらDockerfileを作成していく形になる)Dockerfile作成docker buildコマ...
Python

【Python】ランダムな文字列を生成する

Pythonでダミーデータを作成するために、ランダムな文字列を生成したいとき。概要候補となる文字列リストを作成し、その中からランダムで必要な数だけ取り出して生成する。実装import randomimport string# 数値、アルファ...
用語

クッキーで例えるクラスとインスタンスの違い

JavaやC言語、TypeScript、Pythonなどのプログラミング言語では「クラス」と「インスタンス」という言葉を使う。(もちろんここで述べたプログラミング言語だけではありません)この記事では、この違いについて簡単に分かりやすく説明す...
設計

【やさしいDDD入門 第2章】エンティティとは

エンティティとは値オブジェクトと同じく、ざっくり言うと現実世界の物をクラスで表したもの。他の用語であるエンティティデータベースやJavaでもこの単語を利用するが、DDDにおいては意味合いが異なる。上記ではデータベースの値をマッピングするクラ...
Python

【Python】ログ出力について理解する

Pythonでログ出力を行う場合、loggingライブラリを利用する。自分しか使わない簡易スクリプトなどであれば特に気にする必要がないが、複数人で開発する場合やログ出力をしっかり設定しておきたい場合は、細かいところまで理解しておく必要がある...
Vim/Neovim

【Vim】色をカスタマイズする

Vimのカラースキームを導入し、いい感じの色になったが「ここの色少し見にくい…」というところを微調整したくなる。そんなときにどうやって設定すれば良いか解説する。事前知識① ハイライトグループVimにはハイライトグループという考え方があり、V...
設計

【やさしいDDD入門 第1章】値オブジェクトとは

値オブジェクトとはざっくり言うと、現実世界の物をクラスで表現したもの。エンティティと似ているが、その違いについてはエンティティの章で解説する。例:ユーザー名例えば、ユーザー名について考えてみる。特に何も考えなければ、ユーザー名は以下のように...