今年も学習頑張ります!
こんにちは、ひろきです。
フィヨルドブートキャンプ(以下、FBC)で学習を始めて1年が経ち、クリスマスはJavaScriptのクラスの学習でメモアプリを作成していました。
プラクティスも後半に差し掛かり、「やろうと思えば何かしら作れるでしょ?」みたいな気持ちでずっといたのですが、機会がなく口だけ野郎になっていました。
クリスマスを終えたあたりに、新年の挨拶でプログラマーらしいことをしたら面白いのでは?と思い、急遽、新年の挨拶をターミナルで表示しよう!と思い立った次第です。
私について
完成品はこちら
あけましておめでとうございます!
— ひろき (@hirokiej) 2025年1月1日
Rubyで新年の挨拶をしてみたくて作りました。
よかったら見てください。
2025年もどうぞよろしくお願いいたします。
今年はまずFBC卒業を目標に頑張ります! pic.twitter.com/Vn1mrHJN4v
*ごめんなさい。はてなブログに動画が載せれないので、Xの投稿を貼りました。GIFも期待した挙動をしなかったのでこちらで失礼します。
コードは以下です。
READMEにもありますが、引数に年号を打ち込めばその数字が表示されます。なので毎年使えます。笑
少しだけ凝りたかった
AAで「Happy New Yearだけ」を表示するだけならば、きっとgemを使えば一瞬だろうと思いました。実際に、調べたらすぐにできました。
上記の通り、「何か」を作ってみたかったので、私はAAを動かしてみようと考えました。
作った感想
- 初めての締切ありの制作。緊張感を持って取り組めた。
- 思ったよりも時間がなく、まずは動くものを作ることに専念した。
- 命名も適当に動くものを作ると、リファクタリングが大変すぎた。
- ChatGPTを使いたくはなかったけど、実力&時間不足で大分お世話になった。(次はほぼ0を目指したい)
- 最低限の抗いとして、理解できないものは取り入れなかった。
- 配列をいじくり回すこともなかなかなかったので、勉強になった。
- 命名めっちゃ難しい。
完成して、すごく嬉しかったです!
また何か作れたらいいな!と思いました。
Xで公開した後に、リファクタリングをし、オブジェクト指向版に書き換え、READMEを書いてGitHubに公開した次第です。
使用したgem
AA出力はartiiを使用しました。
miketierney/artii: A small gem to generate ASCII art from text fed in to it
文字に色をつけるのにRainbowを使いました。
ku1ik/rainbow: Ruby gem for colorizing printed text on ANSI terminals
artii -lで利用できるフォントを調べられるのですが、420ありました。びっくりしました。笑
苦労したこと
- 時間が足りなくて考える時間を十分に取れなかった
- 配列の操作
- ターミナル上での挙動
- 命名
アニメーションを作成する際に、どのようにすれば動くのか?という部分でした。
ターミナルで文字を動かしたことがなかったので、そもそもターミナルで文字を動かせるのか?というところから考えました。
パラパラまんがのようにすれば動いているように見えると思ったので、その流れで制作を始めました。
頭では大まかなコードは思い浮かんでいましたが、細かい部分で詰まることが多く時間もなかったので、ChatGPTを多めに併用したことが悔やまれました。
新年を迎えてから、OOP版に書き換えました。
ここからは空いた時間で取り組み、クラス化でうまくいかないこともありましたが、それ以上に命名でだいぶ悩みました。
と言うのも、FBCのレビューで命名のアドバイスをたくさんいただいている最中だったからです。
もらったアドバイスを新しい取り組みで使えるようにならなければ身についたとも言えませんし、ここでアドバイスを存分に使えてこそ、学びだと思ったからです。
あとは、命名した後にかっちりハマった気がするととても気持ちが良いので、妥協したくありませんでした。
いただいたアドバイスをしっかり使えたのかなと思います(思いたいです)
もっと命名上手になりたい!
何はともあれ、投げ出さずGitHubの公開までやり切ることができてよかったです。
参考
miketierney/artii: A small gem to generate ASCII art from text fed in to it
Rubyでコンソール上の文字をクリアする方法 - 脳汁portal
RubyでANSIカラーシーケンスを学ぼう!