Skip to content

Instantly share code, notes, and snippets.

View jp-knj's full-sized avatar

knj jp-knj

View GitHub Profile
@jp-knj
jp-knj / object.ts
Created August 4, 2022 12:28
Assertion Functions でobject型の事前条件を作成
// 契約による設計に基づくため
class PreconditionError extends Error {}
function isObject(v: unknown): v is Record<string, unknown> {
if (typeof v !== 'object') {
return false;
}
return v !== null;
}
@jp-knj
jp-knj / string.ts
Last active August 4, 2022 12:28
Assertion Functions でstring型の事前条件を作成
// 契約による設計に基づくため
class PreconditionError extends Error {}
function serialize(v: unknown): string {
if (typeof v === 'undefined') {
return 'undefined';
}
if (typeof v === 'symbol') {
return 'symbol';
}
@jp-knj
jp-knj / Querying.md
Last active June 2, 2022 04:58
mysqlの問題集を解答

サンプルデータから SQL を記述

Question1

降順で従業員の男性の人数と従業員の女性の人数を取得

SELECT gender, COUNT(*) AS total_count
FROM employees 
  GROUP BY gender
  ORDER BY total_count DESC;
@jp-knj
jp-knj / Centering.md
Last active April 30, 2022 14:45
CSSについて

縦中央寄せについて

gridで垂直に中央寄せ

.outer {
  width: 100%;
  height: 100%;
  background-color: #efefef;
  display: grid;
  place-items: center;
}
@jp-knj
jp-knj / Currying.md
Last active April 30, 2022 14:41
コーディングについて

カリー化 について

カリー化とは

Curryingf(a, b, c) と呼び出し可能なものを f(a)(b)(c) として呼び出しできるように変換する

なぜ、カリー化があるのか

同じ引数を何度も繰り返し指定したくないとき、部分適用は便利。   それは、私たちが send(from, to)関数を持っていて, from が常に同じになるような場合、部分適用を得て処理を続ける。

具体的な例

@jp-knj
jp-knj / .commit_template
Created November 10, 2020 14:01 — forked from nownabe/.commit_template
Emojiで楽しく綺麗なコミットを手に入れる
# ==== Emojis ====
# 🐛 :bug: バグ修正
# 👍 :+1: 機能改善
# ✨ :sparkles: 部分的な機能追加
# 🎉 :tada: 盛大に祝うべき大きな機能追加
# ♻️ :recycle: リファクタリング
# 🚿 :shower: 不要な機能・使われなくなった機能の削除
# 💚 :green_heart: テストやCIの修正・改善