siroemk’s blog

フィヨルドブートキャンプで学んでいます(2020/11〜)

子供の誕生日から行事の日付を算出するnpmを作った

最近ずっとカーリングを見ているsiroです。冬季オリンピックの中だとカーリングが一番好きです。カーリングは一瞬で局面が変わるので見ていて面白いですね〜。

npmを公開しました

今回、子供の誕生日から行事の日付を算出するnpmを作りました。

japanese-events-for-child - npm

f:id:siroemk:20220215125325p:plain

npmを作った経緯

フィヨルドブートキャンプの「npmを作る」という課題の提出物として作成しました!

他の方が作成したものを見ると、作業効率化系やゲーム、面白クイズなどが多かったです。

何を作るか悩んだのですが、少し前に自分がつぶやいていた

f:id:siroemk:20220216164302p:plain

これがいいのではと思い、子供の誕生日から行事を算出するものを作りました。

Googleカレンダーまでは実装してないですが...)

子供の行事って誕生日からn日後、n年後に行うものがあるので、その都度みなさん計算していると思います。忘れた頃に行事がやってくるので、一覧で見たいなと思っていました。

今回は誕生日を入力することで小学校入学までの行事の日付が表示されるプログラムを作りました。

難しかったところ

そもそもJavaScriptが難しい

フィヨルドブートキャンプでは前半〜中盤にかけてRubyでプログラムを書いていきます。ちょうどRubyに慣れてきた頃に、JavaScriptのプラクティスが現れます。

  • Rubyだと書けそうだけど、JavaScriptだと分からない
  • JavaScript、{}()が多い...
  • thisの使い所が?
  • 非同期処理の動きが掴めない
  • プロトタイプベースとクラスベースの違いがよくわからない

などなど、JavaScriptに慣れるのに時間がかかりました。JavaScript Primerを何度も読んで、JavaScriptで簡単なプログラムを書いたり、他の人のコードを手元で動かしてみて少しずつJavaScriptに慣れていきました。

今回自分でコードを書いたことで、「thisってこれを指してるんだ」、「非同期処理はここで使うんだ」と理解が深まった気がします。

自分で仕様を考えることの難しさと楽しさ

そして、一から仕様を考えて作ったのは今回が初めてでした。

シンプルなプログラムですが、

  • どの行事にするか
  • 行事の年齢は満年齢と数え年のどちらを採用する?
  • 男の子と女の子で行事の日付が違うものはどうするか
  • 誕生日はどうやって入力させる?YYYYMMDD?
  • 誕生日によって行事の順番が異なる場合、どうソートさせる?
  • 日付の表示形式は?
  • ありえない値が入ってきた時の動きは?

など考えることはたくさんありました。作る時間と同じくらい、仕様を考えるのに時間がかかったと思います。

初めは行事の説明も表示させようと思っていたのですが、書いているうちに使いにくいそう...と思い、辞めました。

その試行錯誤が楽しかったです。

使ってもらえたら嬉しい!!

とても簡単なプログラムですが、使っていただけると喜びます!!

japanese-events-for-child - npm

npmを公開した後にブートキャンプ生から「使ってみたよ〜」と声かけていただきました。自分が作ったものを触ってもらえると嬉しいですね。

フィヨルドブートキャンプ歴も1年を超えました。あと少しで最後のシステム開発と自作サービス開発に入れそうです。(卒業が見えてきた)

引き続きやっていきます〜。