真偽値の評価

5月10日金曜日、晴れ

オフィスの空気が淀んでいて非常に悪いことに、夕方、コンビニに買い物に出て気がついた。息が、苦しい。

* * *

四日しか働いていないというのに、とにかく疲れた。(帰宅が深夜11時30前とかになっているんだから、そりゃあ疲れもするってものだけれどね)

* * *

1ヶ月を超える期間、アニメを見られていない。録画ばかりが溜まっていっていて、もう見られる気がしない。だったら録画しなきゃいいのにね。

* * *

全員で同じコードを見て、できればペアプロもバンバンしよう! とか思っていたしメンバーにもそう伝えていたんだけれど、気がつけば個人プレーに任せるスタイルに落ち着いてしまった。
時間がやはり、短い。いつの間にか「早く出せ」「遅れているぞ」というプレッシャーに負けている。悔しい。
そもそもの話として「遅れている」のは僕の責任じゃあない。いままでの開発のツケが回ってきているという話だし、その当時、僕はリーダーでもなければできると請け合ってもいない。当時のリーダーの負債をそのまま引き継いだだけだ。

それなのになあ。

まあプレッシャーをかけている当人たちも、プレッシャーを引き継いだ貧乏くじプレーヤーばかりであって。
やれやれ。

それぞれ自分のせいでない責任を負って、それが自分の責任だと思い定めて。ご苦労なことだねえ。(自嘲)

* * *

真偽値の評価

Jenkins に「真偽値」をとるビルドパラメーターが追加できる。見た目はチェックボックスとなり、チェックすると値が true という文字列、チェックを外すと false という文字列になる。(ビルドパラメーターは環境変数だから値はすべて文字列だ)

真偽値と言い条 true/false という文字列なので test コマンドを使ってこんな具合にテストするのだろう、と最初は考えた。(シェルスクリプトの話ね)

if [ "$FOO" != false ]; then ... ; else ... ; fi

いわゆる C 言語方式で、「偽でなければ真」というわけだ。

ところで true コマンドに false コマンドというものが存在する(ということも今日知った)。それぞれ終了コードとして 0、 1 を返すだけのコマンドだ。

if true; then ... ; else ... ; fi

と書けば then 節が実行されるし

if false; then ... ; else ... ; fi

とすれば else 節が実行される。これを応用して、先の真偽値ビルドパラメーターをコマンドとして実行する、という技が使える。

if $($FOO); then ... ; else ... ; fi

というわけだ。最初の test コマンド(`[` のエイリアス)によるチェックに比べて圧倒的にシンプルになった。

こういう工夫の余地が、僕がプログラミングが好きという理由のひとつである。

この記事が気に入ったらサポートをしてみませんか?