2017-08-01から1ヶ月間の記事一覧

【JavaScript】reduce(Object.assign)で失敗した

コレクションの配列をオブジェクトにしようとして、こんな感じのコードをよく書くのだけど、 const users = [{ id: 1, name: 'suzuki' }, { id: 2, name: 'sato' }] const usersById = users .map((user) => ({[user.id]: user})) .reduce((obj, userObj) =>…

【JavaScript】配列のreduce関数の可読性を少し上げるテクニック

JavaScript の話題です。配列の reduce 関数、書きやすいけど可読性が低いですよね。 たとえば以下のようにコレクションを変換して id をキーとしたオブジェクトにするという操作。慣れてくれば普通に読めますけど、なんとなく読みにくいんですよね。 const …

Webエンジニアでも圏論したい!(関手篇)

この記事の目標は、「配列の map 関数は関手である」とドヤ顔で言えるようになることです。 初回の記事はこちら。 Webエンジニアでも圏論したい! 配列の map 関数を観察する まずは配列の map 関数をよく観察してみます。 map 関数はこんなやつですね。(コ…

二度と忘れないawkコマンドの基本

結論としては、これだけ。 awkはテキストの各行に対して pattern { action } を実行する。 これだけ覚えれば間違えずに使える。 awk コマンドはテキスト整形に便利だが、使い方をよく忘れるのでいつもググっている。 使い勝手が悪いわけではないけど、多機能…

Rustの練習でenvsubstを車輪再発明

Rustの練習がしたかった。新しくプログラミング言語を学ぶときにはテンプレートエンジンを作るのが手頃な難易度で良いと誰かが言っていたので、envsubst みたいなやつを作ろうと思った。 envsubstはテキスト中の$FOOのような文字列を環境変数の値に置き換え…

.bashrcで機密情報の環境変数を設定するべきではない

npm でマルウェアが発見されました。プロセスの環境変数を勝手に外部サーバーに送るそうです。 npmjs.com で著名ソフトウェアによく似た名前のマルウェアが大量に発見された 環境変数でパスワードや API Key などの機密情報を管理しているとやばい。対策とし…

Webエンジニアでも圏論したい!

この記事の目標は、「型付きの純粋な関数は圏をなす」を理解することです。 始めていきましょう。 TypeScript で圏を作ろう なじみある具体例から始めます。圏論はとりわけ抽象度が高いため、圏の定義を天下り的に書いても何を言っているのかわかりませんか…