Bikeshed.js アウトラインメモ
Bikeshed.js - connpassに参加したメモ
『let vs. const』 @yosuke_furukawa
- Effective Java
- 気持ちはImmutable
- スレッドがないJavaScriptだと微妙
const
だけで防げるのか- const +
Object.freeze
- Map+SetとかもImmutableではないのでimmutable.jsなどを使う必要がある
- const +
- やる意味
prefer-const
- let使うときはforでぶん回す時ぐらい
- 逆にletつかているところを見ると注意して見るようになった
- やりたいことはconst 強制 => 初学者のミスを減らせる
- 基本的には
const
を使う
セミコロン付けるつけない - @yoshiko_pg
- 付ける人が殆ど
Bikeshed.jsのボードを見ながら自転車置場の議論をした。
インデントとか改行位置とかスタイルの話が殆どだった。
自分は設計においてこういうどっちでもいいような議論が多くあると思ってるので、JavaScriptとCSSの設計についてのスライドを用意したけど使わなかったので忘れる。
power-assertがツールになった話 - twada
のissueでは、
const assert = require("assert");
export function hello(name) {
assert(typeof name === "string");
return "Hello " + name;
}
のようなコードをプロダクション側(テストではない)に書いてた時に、assert()
の中身がpower-assert化(位置情報などを含んだオブジェクトを返す)されてしまい、常にassert(object)
をパスしてしまうという問題。
これは、次のようにpower-assert
が使われていれば解決すること。
const assert = require("power-assert");
export function hello(name) {
assert(typeof name === "string");
return "Hello " + name;
}
そのため、require("assert")
を require("power-assert")
するものが同時に行われればいいということで、babel-plugin-empower-assertというプラグインができた。
しかし、このプラグインはあくまでオプトインなので、既存のbabel-plugin-espower
だけを使ってる人は自分で以下のように追加する必要がある。
{
"presets": [
],
"env": {
"development": {
"plugins": [
"babel-plugin-empower-assert",
"babel-plugin-espower"
]
}
}
}
毎回2つのプラグインをいれるのは面倒だということで、babel-preset-power-assertという2つのプラグインをまとめたpresetsが追加された。
これにより、require("power-assert")
ではなく、ただのrequire("assert")
もpower-assert化された状態でassertionが行えるようになった。
{
"env": {
"development": {
"presets": [
"babel-preset-power-assert"
]
}
}
}
コード上からはNode.jsのassertモジュールに見えるけど、Babelによってpower-assertモジュールに差し替えられるため、power-assertはライブラリではなくツールになったという話。
おわり
お知らせ欄
JavaScript Primerの書籍版がAmazonで購入できます。
JavaScriptに関する最新情報は週一でJSer.infoを更新しています。
GitHub Sponsorsでの支援を募集しています。