経験は何よりも饒舌

10年後に真価を発揮するかもしれないブログ 

技術

create-react-appからJestの実行場所を探す

create-react-appで作成されたプロジェクトにおいてTesting LibraryとJestの関係性を整理しようとした時、Testing LibraryはJest, AVA, Chai...の並びでテストランナーなのではないかという誤解が生じた。そしてtesting-library/jest-domはテストランナーと…

DenoでDatabase Design and Implementation 3章を実装する

「Database Design and Implementation」の内容はこの記事で紹介されているので省いて、とりあえずDenoで実装を始めてみたというメモ。 tarovel4842.hatenablog.comJavaもC++も書いたことがないので一番慣れてるJavaScrptで実装したいなーと思い、せっかくだ…

Notes on the breaking change that occurred in Axios v0.25.0

Axios v0.25.0 was released on January 18, 2022.One of the breaking changes is adding error handling when missing url, which returns an Error if the Request Config url specified in the argument is Falsy. This was introduced to clarify bugs …

Axios v0.25.0 で生じた breaking change の注意点

English version: Notes on the breaking change that occurred in Axios v0.25.0 - 経験は何よりも饒舌 2022年1月18日に Axios v0.25.0がリリースされました。その中の breaking change の1つに Adding error handling when missing url があります。 これ…

Jestのカバレッジ計測について誤解していた(モック編)

誤解 Jestでモックを使った場合、モック対象はカバレッジに含まれる。Jestのカバレッジ計測について誤解していた - 経験は何よりも饒舌 で、「JestはJestのAPIを用いたテストに対してカバレッジを計測しているのではなく、テストで呼び出されたか否かでカバ…

Jestのカバレッジ計測について誤解していた

誤解 JestはJestのAPIを用いたテストに対してカバレッジを計測している。 調査 Jestのカバレッジ計測について、次のコードで調べてみる。 function sum(a, b) { return a + b; } function minus(a, b) { return a - b } module.exports = { sum: sum, minus:…

I contribute to denoland 1 month in a row

Summary https://github.com/pulls?q=involves%3Awafuwafu13+-user%3Awafuwafu13+author%3Awafuwafu13+org%3Adenoland 24PR Merged deno_std 5feat 1fix 6chore 6test 4docs 1refactor deno_lint 1test 17/311 Contributers in deno_std What I done deno_st…

GCI 2021 Summer 修了した

今までWebアプリケーションには関わってきたけど、機械学習に関しては無知だったのでGCI 2021 Summer | 東京大学グローバル消費インテリジェンス寄付講座に参加してみた。 申し込みしたら誰でも参加できる感じで門戸は広く、修了した人は5人に1人くらいだっ…

サイボウズのフロントエンドエキスパートチームのインターンに参加しました

8/30日から9/3日の5日間、フロントエンドエキスパート - サイボウズインターンシップ&イベント2021 エンジニア&デザイナー | サイボウズ株式会社に参加させていただきました。 参加するまで フロントエンドエキスパートチームへの強い興味のきっかけは、おそ…

非推奨になったESLintのルールがESLintのコード上でそう記されているか確かめるESLintのテストを構築した

ESLintのレポジトリでは、lib/rulesディレクトリ配下にルールがまとまっている。 以下に記されているように、それらのルールは非推奨になることがあるが、削除されることはない。 Rule Deprecation - ESLint - Pluggable JavaScript linter Balancing the tr…

ミクシィのインターンで みてね の開発に幅広く関われました

https://mixigroup-recruit.mixi.co.jp/recruitment-category/internship/5071/ に8/2~8/27の約1ヶ月間参加しました。 選考は、インフラ/SRE領域に普段あまり触れていなかったため、その枠にチェックを入れて書類を提出しました。 3回の面接を通じて、今まで…

『Go言語で作るインタプリタ』をTypeScriptで実装する(後編)

前編を書いたのが約1年前なので1年間かかってしまった。wafuwafu13.hatenadiary.comgithub.com ずっとやってたわけではなく、前回は2章までできたらいいかって感じで終わらせて、1年越しに再開してみた。 Commits · wafuwafu13/Interpreter-made-in-TypeScri…

Swift入門した

ReactNativeでアプリをリリースしたことはあるけど、Swiftは全く触ったことがなかった。 動機は夏に使いそうだからと、なんやかんやモバイル主体のプロダクトが多い気がするから。 Swift, Xcodeでの開発に慣れる まずは手を動かしてみようと思って、Udemyの…

インフラに関してやってきたこと/やりたいこと(2021年7月)

読んだ本 キタミ式基本情報技術者 WEB+DB 大規模サービス技術入門 WEB+DB 24時間365日 サーバ/インフラを支える技術 WEB+DB nginx実践入門 Real World HTTP 歴史とコードに学ぶインターネットをウェブ技術 Linuxで動かしながら学ぶ TCP/IP ネットワーク入門 …

graphql-validation-complexity から学ぶGraphQLのAST走査

オライリーの『初めてのGraphQL』の「7.3.4 クエリの複雑さ制限」で、graphql-validation-complexity というライブラリが紹介されていて、面白そうだったのでのぞいてみた。github.comgraphql-validation-complexityは、クエリに対して複雑度を計算し、その…

Go の main goroutine が exit する場所

ascii.jp を進めているメモ。 package main import "fmt" func main() { fmt.Println("Hello World!") } をVSCodeでデバッグして最後にexitするのはここ。go/src/runtime/proc.go#L277 go/proc.go at 912f0750472dd4f674b69ca1616bfaf377af1805 · golang/go …

Class::Enumemon の中身をちょっとのぞいてみる

使う機会があってRailsのActive Recordっぽくて便利だと思ったけど、中身があまり想像できなかったのでちょっとだけ調べてみた。metacpan.org package IdolType; use Class::Enumemon ( values => 1, getter => 1, indexer => { by_id => 'id', from_type =>…

mackerel-plugin-accesslogを中心にMackerelのコードを読んだ

グラフのラベル名をいい感じにする簡単なPRを投げた時のメモ。[plugin-aws-cloudfront]Replace label name of graph by wafuwafu13 · Pull Request #766 · mackerelio/mackerel-agent-plugins · GitHub 公式ブログを読めばなんとなく機能的な部分はわかった…

はじめてOSSに新機能追加した

owという、Lots of built-in validationsなOSSに、BigIntのバリデーションを追加した。github.com github.comowに関しては2月頃に3回、型整備のPRを出してマージされていたので、コードには少し馴染みがあった。 https://wafuwafu13.hateblo.jp/#sindresorhu…

技術書積読消化購読メモ

4月5月 読んだ Docker Kubernetes実践コンテナ開発入門(Kubernetesから) Amazon Web Services基礎からのネットワーク&サーバー構築 Kubernetes on AWS TCP/IPネットワーク入門 Real World HTTP 入門監視 Mackerelサーバ監視入門 DNSがよくわかる教科書 マイ…

axiosの内部構造を理解してadapterの仕組みを解明する

axiosのadapterを使う機会があり、仕組みが気になったのでメモしておく。 github.comadapterで検索をかけると、lib/core/dispatchRequest.jsの51行目の記述が目についた。 axios/dispatchRequest.js at 7821ed20892f478ca6aea929559bd02ffcc8b063 · axios/ax…

AWA株式会社でのインターンでインフラに強くなりました

株式会社サイバーエージェントの全職種向け 実践就業型インターン【オンライン参加可】に3月2日~3月31日の1ヶ月間参加し、インフラに強くなりました(過去の自分比)。 参加するまで サイバーエージェントは魅力的な会社ですし、人生で1回は行っておきたいとい…

DefinitelyTyped で Ace の型を大幅に改善した

前のこの記事では、Definitely Typedから型をインストールして適用する際に、実際にレポジトリまで見に行かないといけなかった、ということを書いた。wafuwafu13.hatenadiary.com今回は、PRを出してマージされたので、そのことを書く。github.comPRタイトル…

Jest のモック関数を整理する

npqという、npmやyarnでインストールする際に安全確認をするライブラリがあり、そこで使われているaxiosをnode-fetchで代替するというissueがあったのでやってみた。github.com github.com置き換えるだけの簡単な作業かと思っていたが、テストを通すのが難し…

Go の Short variable declarations と Named return values

go-mp4という、mp4ファイルをパースしてくれるGoで書かれたライブラリがあった。 Goに慣れるため、golintのカバレッジを上げるPRを出してみた。github.com自分の書いたコードで、:=ではno new variables on left side of :=というエラーが出たけれど、代わり…

エラーを報告する際に意識していること

基本的には質問をせずに粘ってしまうタイプなのだが、環境構築の段階でのエラーや、人生で初見のエラーなどは経験上、粘っても何も得られないので、即質問するようにしている。そこで意識していることは、 何が原因で何ができなかったのかを記す 自分が打っ…

qrcode.react とスナップショットテストの相性が最高すぎた

qrcode.reactは、その名の通りQRコードを生成してくれるReactコンポーネントだ。 github.comファイル構成はsrc/index.jsでゴリゴリ計算というか文字列を算出し、コンポーネントを返す構成だった。 テストがなかったので、テストを追加したかったのだが、何に…

npmから@typesを使う場合はDefinitelyTypedを見に行かないといけないことがある

Link Preview JSという、「allows you to extract information from a HTTP url/link (or parse a HTML document) and retrieve meta information such as title, description, images, videos, etc」なレポジトリがあった。github.comそこでは、cheerioとい…

自分のPRを見て思う、TableDrivenTestsの良さ

jdという、commandline utility and Go library for diffing and patching JSON valuesなライブラリにTableDrivenTestsを導入したので、その良さを主観的にまとめておこうと思う。github.comgithub.com まずは、実際にdiffの一部を見てみる。 https://github…

単純作業の効用は意外と大きい

owという、TypeScriptの型制限を拡張したOSSに何度かコミットして気づいたことは、単純作業は意外と効用が大きいということだ。 github.com具体的に何をしたかというと、typescript-eslintの、explicit-function-return-typeが無効になっていたのを、有効に…