こんにちは!まいむです。
年末年始の休みに入ったら、ブログに書きたいことがたくさんあったのですが、FBCの課題や部屋の掃除なんかをやっていたらあっという間に大晦日になってしまいました・・・
本当は分けて書きたかったnpmのリリースと2022年の振り返りを一気に書きたいと思います!!
dummy_email_address_makerというnpmをリリースした
案出しが大変だった
私が在籍しているフィヨルドブートキャンプではJavaScriptの課題の最後に自作npmの作成と公開があります。
自分でどんなnpmにするかを考えて実装するのですが、テーマ選びがとても大変でした。
というのも自分の頭で思いつくnpmは大体既に存在していて、他のFBC受講生のnpmと似たテーマになってしまったりで、何を作るかでかなり迷いました。
最初は2の累乗暗記ゲームを作ろうと思ったのですが、もっと実用的なnpmにしたいと考え直し、コマンドを実行して何が自動化されたら自分は嬉しいかという観点で案を出しました。
その中で、これは被っていなくて、完成したら使いたいと思ったのがユーザーテスト用のダミーメールアドレスを作成してくれるnpmです。
なぜメールアドレスが自動生成されると嬉しいのか
私は仕事でブラウザを使って新規会員登録のテストを数えきれないほど実施してきたのですが、いつも面倒だと思っていたのが新規会員用のユニークなメールアドレスを用意することです。
この業界では当たり前かもですが「新規」会員登録ということはメールアドレスは過去に登録されていないものである必要があります。
かつ誤って本物のメールアドレスを使わないようにドメインは @example.com
に限定していたりすると、過去の自分だったり他にテストしているメンバーと使用するメールアドレスが被って「このメールアドレスは登録されています」のエラーとご対面することになります。
そのため、自動でランダムな文字列の組み合わせでメールアドレスを生成してくれるnpmがあったら嬉しいなと考えました。
ランダムな文字列の生成
npmでは既にランダムな文字列自体を生成してくれるものが存在します。
しかし、自作npmでそれを使ったら意味がないため自分で実装しました。
以下のようにすると簡単に自分でもランダムな文字列を生成することが可能です。
文字列の指定した位置にある文字を取得する
charAt
は文字列の指定した位置にある文字を取得するメソッドなため、ランダムな文字列を取得するための「利用可能文字」を変数で定義してそれに対してメソッドを実行する
let word = 'まいむ'; console.log(word.charAt(0)); >> ま console.log(word.charAt(2)); >> む console.log(word.charAt(4)); >> (空文字)
0 以上 1 未満のランダムな浮動小数点数を作成して返す
Math.random
は0 以上 1 未満のランダムな浮動小数点数を作成して返すため、Math.floor
と組み合わせて使うことで整数を取得することができる。
ここで生成された整数をcharAt
に渡して、繰り返し処理で10回分実行すれば「利用可能文字」からランダムに組み合わせた10文字を作ることができる。
console.log(Math.random()*10); >> 7.113646533639512 console.log(Math.floor(Math.random() * 10)); >> 8
ブラウザでユーザーテストをされる方に使ってほしい!
www.npmjs.com ダミーメールアドレスメーカーのメイン機能はランダムな文字列のメールアドレス生成ですが、オプションで標準入力から1つ単語を受け取ってプレフィックスと組み合わせてメールアドレスを作成するモードもあります。 ユーザーテストで、このメールアドレス使われてるんか〜いとなったことがある方に是非使っていただけると嬉しいです!
2022年振り返りを簡単に
2022年のトピックといえばフィヨルドブートキャンプへの入会とLT会での登壇かな〜と思います。 どちらもブログに残しているため、改めてここで振り返ることはあまりなさそうなのですが、FBCに入会した当初の日報を読み返したら時間のやりくりだったり課題に詰まって落ち込んでいたり、過去の自分が奮闘していた記憶が蘇ってきてこの1年本当によく頑張ったなと思いました。
なんでそんなにプログラミング学習を頑張るのかというと、自分がボ〜ッとしているときにもふと考えてしまうくらい大好きだと思えることに出会ってしまったから〜という感じでしょうか。
詰まっているときはひたすら辛いのですが・・・こんな機能やサービスが欲しい!と考えて、それをプログラミングでどう実現するかを考えることが私は大好きです。
だから実現する手段としてプログラミング学習を頑張るし、コードを書いている時間は総じて集中していて楽しいです。
学習の先には目標があるのですが、それは2023年になったら改めて書きたいと思います。
終わりに
こんな感じで今回のブログは締めくくりたいと思います。
今年1年お世話になった方々に感謝の気持ちを込めて。
そして2023年も引き続きよろしくお願いいたします!