ITの隊長のブログ

ITの隊長のブログです。Rubyを使って仕事しています。最近も色々やっているお(^ω^ = ^ω^)

RSpecのmatcherについて軽いメモ

雑メモです。

あるモデルにデータを追加したか確認するテスト

expect { subject }.to change { ModelA.count }

変更しているなら change でおk

もし、変更なしを確認したい場合は、 not_change を用意すると良い

RSpec::Matchers.define_negated_matcher :not_change, :change

zenn.dev

subjectがExceptionを返すので検証できない

実際はExceptionが発生する前にデータを追加しているが、テスト時にはExceptionで落ちるので確認できない

なので、andで繋げてあげる

expect { subject }.to raise_error(HogeHogeException).and change { ModelA.count }

おk

qiita.com

PHPカンファレンス沖縄2023に参加&登壇しました

登壇資料はこれ

speakerdeck.com

様子はこれ

togetter.com

ぼくの発表の様子はこれ

なんでコスプレしたの?

  • 今回のイベントは結局ギュッとタイムテーブル組んでいるのを事前に知ってた & カンファレンスで聞く方は結構疲れる(色々学びになり楽しいんだけど)と思うので、合間になんかこう、目が覚めるようなことをやろうかなって考えてました
  • ちょうど沖縄だし、僕の発表は琉球だし(?)、僕はチョンダラーだし、ということでチョンダラーになりました
  • 当日、緊張もあって全く説明もせずWordPressの話をしたので、僕のことを全く知らない人たちはほぼ確定で「あいつなんなんだ・・・・?」ということになっていると思うので、今更ながらこのブログで補足させてください。はい
  • そもそもチョンダラーってなんですか?そうだね

kotobank.jp

  • 僕の出身の島では(というか沖縄本島全域で)、若い青年さんたちが地元で集まってエイサーを踊る会というものがあり、僕は 半強制的に 所属していたので、チョンダラーの経験がございます
  • ちなみに変身するために化粧道具を急いで買いに行ったんですが、中部にしかないだろうなーと思ってましたが、なんと那覇にありました。チョンダラーになりたい人はぜひ(?)

www.ryukyujima.net

発表内容について

  • 実は最近そんなにWordPressに触れてはいないのですが、去年ぐらいまでは1 ~ 3回/年ぐらい「助けて〜」をもらっていました
  • なので、年々やられたWordPressを掃除する力はついていき、せっかくだから発表しちゃえ〜が今回でした
    • あと5年早ければCakePHPの話とかしたかったな。最近は全くキャッチアップしていませんが
  • 久々に最近のWordPressの情報をキャッチアップしたり、コミュニティやスクールを過去開いてた人にインタビューしたりなど、やっぱりWordPressは手っ取り早く公開できるので、兎にも角にもビジネスするにはさっさとリリースすることを行う分にはとても良いですが、運用し続ける必要があり、できないとセキュリティリスクがあるので、ちゃんと運用できないとあかんな〜と 戒めました 思いました

感想

楽しかった!!!!!!!!!!!!!!

いつもだいたい直前まで資料作成に追われていましたが、今回は80%ぐらい準備できてたので、他の方の発表がみれたので満足してます(といっても、変身の準備があったのでやっぱりがっつり見ることはできなかった)

この方の発表が個人的にはよかった(もちろん比べることではないので他の方々もよかったです!)

自分の発表の感想は、いつもお世話になっている知り合いさんや妻もYoutube Liveで見てたらしいんですが、揃って「早口すぎ」って言われました。。。もっと発表上手になりたい。。。

また、X(旧Twitter)上で知っている人、過去購入して勉強させてもらった技術書の著者さんたちが何名かいらっしゃって、そういう意味でだいぶお世話になった人たちや、前職の方々の知り合いだったり、互いに初めてお会いした方々と懇親会で技術の話でワイワイしたりなどなど、いろーんな人たちと関われたのでとても楽しかったです!

あと、過去のブログ記事を読んでくれていた人がいて、ちと恥ずかしい気持ちを顔に出してましたが、内心とても嬉しかったです。プログラマになって本当よかった〜〜〜〜〜〜〜〜って気持ちになりました

企画やイベント運営してくれた主催者さんたちに感謝感激&お疲れ様でした!

来年は県外のPHPカンファレンスにも参加したいな〜〜〜〜〜〜と思ったのと、個人的にはPHPに関しての弾がなくなったので、次回はスタッフでの参加で運営お手伝いしようかなと思いました

「エンジニアのためのドキュメントライティング」読書メモ

ドキュメントの書き方とか見やすさのテクニックなのかなと思い読み進めていましたが、ペルソナとかカスタマージャーニーマップとかでてくるので、なるほど???って気持ちになりました。ドキュメントの読み手の調査をしっかり行うことであったり、ドキュメントを持って適切にプロダクトを操作、やりたいことが達成できるのか、などの検証を行うべきとあり、結構しっかりしているのなと思いました(全然意識してなかった。。。)

僕個人としては、ドキュメントはあくまでコード読まずとも書いてある内容を実施できたらインストールできるよ。とか、コードだけじゃわからないなぜこの選択をしたのかとかの意味合いで書き残すことが多かったので、その前後を事前調査・検証するということはやってこなかった。そのため、ドキュメントの良し悪しのような物差しも持ってなかったので、あまりテンションもあがらなかった気持ちでした

この本を読むことで良いドキュメントとは?が定義できそうなので、レビューもできるようになれそう

読書メモ

  • ユーザーがドキュメントを読んで達成したいこと、ゴールを定義する
  • ユーザーの特徴をリストアップする
  • ドキュメント書く前にドキュメントのタイトルとゴールとアウトラインを用意する
    • ドキュメントのタイトルはドキュメントを読むことで達成できるゴールの要約したものにすべき
  • 完璧主義からの脱却
  • コンテンツはできる限り短くして要点を絞る
  • ドキュメントをセルフレビューする。チェックリストがあるのはよかった(参考になる)
  • ドキュメントの品質を測る物差しがあることを知れた

ドキュメントもソフトウェアなのだ!メンテしなきゃ!って気持ちになった。良いドキュメント書いていくぞ

「どん底から生まれた宅急便」を読んだ

ひさびさのブログです。

物流Techな会社に就職したので、せっかくだから物流の歴史とかノウハウとか身につけたいなーと思い、いくつか購入してて積読してたやつ。

ちょうど今出張で東京にいるので、移動の飛行機で読んだ。ひとことでいうと良かった。

雑メモがこちらです

雑メモ

  • 宅急便はクロネコヤマトの商品名
  • 日頃僕らが使っているサービスの大枠は「宅配」である
  • 宅配はヤマトがはじめて広めたもの
  • 1970年代。多くの物流が大口配送(多くの荷物を1つの納品場所へ配送するという認識です)だった。ヤマトは関東圏でがんばっていたけど、関西や他企業に押されていて、業績やべぇ会社やべぇってなってた
  • 著者であり、後にヤマトの社長になる「都築幹彦」さんも当時の社長と一緒に同じくうちの会社やべぇやべぇってなってたらしい

ja.wikipedia.org

  • というわけで、改革が必要なんだけど大口配送ではもうシェアとられて厳しいってなってた
  • 当時は車の性能がそんなよくなかったので、ヤマトは鉄道で荷物を送るサービス?をやっていたが、当時鉄道を使った配送はとてもじゃないが便利ではなかったらしい。また、車の性能が悪くてトラック配送は無理だと読んでいたが、他企業が見事スピーディーな運送を出してきたのであわわわわわってなった
  • もう得意なことじゃなくて全く別のなにかで改革しないと無理じゃね?ってなったときに、当時の社長さんは小口配送で一発あてきれないかなって思ってたらしい
  • ただ、大口配送と比べ、小口配送は大変で小さなな荷物をいろんな納品先(家)へ運ばないといけないので、今でもそうだけど大変(2回め)なので、絶対社員から反対されると思ってた。そして反対された
  • ただ、都築さんはそれでもやるべきだと思ってた。会社の改革のためでもあるが、当時全国へ配送できるネットワークを持っているのは郵政(国営)だけだったが、荷物がある一定のkg数になると、鉄道で運ぶ必要があり↑でも書いたけど、駅近くだったら運んでくれるけどそこから遠い人は自分で取りに来いってスタイルのサービスだった。また、苦言をいったところで、「運んでやっている」という姿勢だったので、これはなんとかしないとなという気持ちだったらしい
  • というわけで刺しにいくぞ!というがんばりの話

感想

  • 物流は足が遅いとは言われているが、1970年ぐらいの話なんだけど、50年前の話である。50年前荷物が家に届かない世界だったのもびっくりだけど、宅急便がサービス名だったことにもびっくり
  • もうちょい書いてほしかったなーって思ったのが、色々苦悩や大変だったことが書いてあるけど、次3行目ぐらいには解決した。みたいなことで締めくくられるので、もうちょいその苦悩をどうやって解決したのかを書いてくれるとうれしいなーって思いました
    • ただ、ところどころでは戦略があたった・外れたが書いてたりするので、単純に書けないことが多いのかなー?とも思った
  • 昨今、物流の荷物の金額もあがってきていますが、10 ~ 30円あげるだけでめちゃオコな世界でございますが、やっぱり値上げな話も書いてあった
    • 現場が苦しんでいる・キレて荷物を投げ捨てたり〜みたいなニュースが多いですが、一応上さんもちゃんと考えて値上げしているんだなと思った
    • また、赤字案件をおしてくる荷主さんに我慢ならねぇといって、御社から撤退しますスタイルもとてもいいなって思いました
    • やっぱり物流はコストじゃないぞ!!!(昨今コストカットな対象とされがちですが)
  • やっぱり新しいことをやるにはお金がかかるし、クレームも大変とかそういう話もあったんだなって思った
    • ただ、勉強代・’授業料だ。みたいな姿勢で乗り切る。影響のあった顧客に全額負担する姿勢はとてもすごい

とても勉強になりました

Nuxt3で nuxt3 ferenceError: ${composable_name} is not defined が発生したとき

ファイル修正してもなおんないので、地味にだるい。

僕の環境はDockerで立ち上げているので、コンテナ落として立ち上げるってのがだるいのでなんとかならんかと、ちょっと手漉きになったので探してみたら、キャッシュ削除なるコマンドがあった。

$ docker compose exec nuxt npx nuxi clean

nuxt.com

これ実行すると下記が削除されて、再ビルドが走る。

.nuxt
.output
node_modules/.vite
node_modules/.cache

これで復帰した!(ビルド時間がだるいけど)

nuxi も地味に忘れるので、package.jsonに書いてあげると良い(と思う)

    "clean": "npx nuxi clean",