2022年8月13日土曜日

"アトミック・シンキング: 書いて考える、ノートと思考の整理術"(五藤隆介, 五藤晴菜 著

こちらから無料で読み始められます: https://a.co/fP4Js14 ざっと読んだ。 この本は文章の書き方をどうやって身につけていくかを記した本。 いちばん大切なことは、ほとんどの人が「文章を書く」訓練をほとんどしてこなかったため、文章を書けないということ。 (漢字ドリルで練習したのは字の練習で、文章の練習ではないことに注意。そしてよくある読書感想文はFBされなかった) はじめの一歩として、文章を書く上で思ったこと(何も思わなくても、何も思わなかったことが思ったこと)を書く訓練をすること。 あー、なるほどと思ってこのブログを書きました。

2022年8月12日金曜日

『「具体↔抽象」トレーニング』 第4章

『「具体↔抽象」トレーニング』 第3章

2022年8月2日火曜日

『「具体↔抽象」トレーニング』 第2章

2022年8月1日月曜日

『「具体↔抽象」トレーニング』 第1章

2022年4月17日日曜日

WordPressで単体テストをするには、シンボリックリンクを使う必要があるらしい。

WordPressで単体テストをしたい。

最近テストを書くのに開眼して、テストコードをとりあえず書きたくなりました。

WordPressのプラグインを作る上で、テストコードを導入したいと思い探していると、公式で以下の方法で試せばできると書いてありました。

  • wp-cliでテストコードの雛形を作成する
    wp scaffold plugin-tests "Plugin名"
    参考リンク
  • プラグインのディレクトリで./bin/install-wordpress-tests.shを実行する
  • phpunit をプラグインのディレクトリで実行する

いやー、かんたんに導入できるね。

現れるエラー

しかし、実行すると以下のエラーで悩まされる。

[17-Apr-2022 14:26:18 UTC] PHP Warning:  Cannot modify header information - headers already sent by (output started at /tmp/wordpress-tests-lib/includes/bootstrap.php:258) in /tmp/wordpress/wp-load.php on line 64

Warning: Cannot modify header information - headers already sent by (output started at /tmp/wordpress-tests-lib/includes/bootstrap.php:258) in /tmp/wordpress/wp-load.php on line 64

PHPUnitを実行しているはずなのに、ヘッダたないというエラーが出て手づまりになる。

StackExchangeに救いの手が

/tmpに作成されたwordpressのwp-config.phpをテスト用に作ったwp-config.phpに差し替えればうまく動いた。

ln -s /tmp/wordpress-tests-lib/wp-tests-config.php /tmp/wordpress/wp-config.php
PHPUnit via WP-CLI: Warning: Cannot modify header information ... bootstrap.php:68

2022年4月11日月曜日

PHPerKaigi2022に参加しました。

 PHPerKaigi2022に参加しました。
オンラインでの参加でしたが、面白かったですね。最近こういうイベント全然参加できてなかったけど、やっぱ久しぶりに参加すると楽しいですね。
今の会社にマジ感謝です。

PHPって自分が普段使っているもの(普段は5系と7系)以上に色々と可能性があって、面白い言語ですね。動的型付け言語なのに、やっぱり型がなくて辛くてそれが言語としてどんどんサポートしてくれてきてるのは嬉しい。8系少し書いてみたいな。

ありがたいことに普段なら絶対に関わりない人に質問拾ってもらったりして、めちゃくちゃ嬉しい一日でした。明日から業務がんばります。

0,1日目はこちら

ISUCON11のPHP実装は、何を考え、どのようにして作られていたのか 

Goで書かれたソフトをPHPに移植した話。静的型付け言語のGoに比べるとどうしてもパット見の情報量が少ないPHPでどうやって工夫したかという話で、非常に参考になった。
ISUCONは練習問題として非常に優秀とのことだったので、ちょっと解いてみようかなという機運が高まっている。(強い人がやるイメージだった。)

プロファイラの話。特にコードに手を入れなくてもプロファイルが使えるのは非常によい。かんたんに入れられそうなので入れてみたい。

今の会社に入って、テストデータをどうすればいいのだろうと迷っていたので、非常に勉強になった。
テストデータの準備には以下の3つのパターンがある。テストデータはインラインセットアップでまずは準備していき、共通化できそうなものを徐々に暗黙的セットアップに寄せていくという方針が自分の中で困っていた(暗黙的セットアップで完璧なテストデータを用意したほうがよいのではないかと思ってた)ので、非常に頭がスッキリした。
  • インラインセットアップ(テスト関数に書く方法)
  • 委譲セットアップ(関数で準備する方法)
  • 暗黙的セットアップ(テストフレームワークで予め用意されている方法で、毎テストごとに自動で呼ばれる)
残念ながらCakePHP Fixture Factoriesは使えないのだが…。

リモートワークでの困りごととそれの解決方法。朝会で困りごとは大体共有されない(顕在化しない)ので、困りごとを気軽に可視化できる仕組みを作っていたことが参考になった。

商品クラス、テーブルの誕生からでかすぎてどうしようもない状態になるまでの成長記録から、どのようにそれを避けていくかという話。
硬直化したソフトウェアは事業の成長を妨げる・止めるので、エンジニアとしてその状況は絶対に避けなければならない。
多角的にオブジェクトを見れる視野を持てる訓練をして、怪物を育てないことが大事。
怪物をどういうふうに手なづけていくかという話も聞きたかった。

HAHAHAHAHA

秘伝のタレ(継ぎ足せない・伝承したものしか作れない)をどうやって解消していくかという話。とりあえず新入りだけど、リファクタするかという勇気が組織を変えた話。


PHPerKaigi2024に参加してきました!

3年連続でPHPerKaigiに参加させていただきました。  なぜかうちのBlogに2023の感想ブログが下書きで残っているので、今年は書ききることを目標にしたいと思います。 全体の感想 会場でたくさんの方とお話させていただきました。Xでよく見かける人やPHPerKaigiでは...