前々回、Pharo by Example 9の第5章を読みながら、クラスの定義の仕方などを実習。しかし、クラス定義と同時に、ユニットテストやら、ソースのレビジョン管理やらを一気に教えてくださるのが、忘却力の老人のキャパオーバーということで手抜き。そこで前回はテスト、今回はソースのレビジョン管理っす。「氷山」使うんだぜ。
※「ソフトな忘却力」投稿順 Index はこちら
※今回の動作確認は、Windows11上のWSL2の上のUbuntu24.04LTS上のPharo 10.0.0を使用しています。
Iceberg
Smalltalkの法灯をうけつぐPharo様は、純粋オブジェクト・オリエンテッドな処理系にして開発環境、モダーンで強力なツール群を統合してます。前回は自然にテスト駆動設計にできるところを実習、テストしながら、何気にUMLのクラス図などまで作成してくれていることに驚きました。
今回はソースのレビジョン管理です。モダンな処理系なのでバックエンドはGitです。この辺はコモンセンス?しかしそのフロントエンドは Iceberg(氷山)と呼ばれていました。氷山の一角?違うか?
Pharo、そしてIceberg自身も含め、今回利用させていただいている「イメージ」の中にLocal repositoryがあったら使いて~ものどもがこれだけあるのだと想像しました。
とはいえ、今回は前々回作成の練習用のパッケージのレポジトリを作ってコミットするの回です。そのためには左上の Add ボタンをえい。
New repositoryを選んで、お名前をつけます。Okね。
上記のように、目出度く作成されたようです。空だけど。
ここにパッケージを紐づけないといけないみたい。上記のMyTrainingRoomをクリっとやって開いたウインドウでAdd package。
そこで練習用に作ったパッケージを指定。
初回コミットしようとして注意される
さて、パッケージを紐づけ?たので、ここで左上のCommitボタンを押せば、MyTrainingRoom配下のいろいろなものがコミットされるハズ。
左上には「コミット」されるハズのものどもが+記号とともに表示されています。これを使えば「こいつは除いておく」とかもできるわけね。まあアリガチな表示か。後は下の入力エリアにコメントを書き、右下のCommitボタンを押せばコミットしてくれるハズ。
しかし、ここで黄色の部分に「チェック」が入っているのに気づきませんでした。左側の方は、コミットしたら現在作業中のイメージもセーブされるオプションみたいです。まこれはよろしかろう。しかし右側は何?
すると以下のようなウインドウが開きました。まあ「テスト通っておる」のでエラーではないけれども「Critiques」なんだそうな。コミット前にPharo様からご指摘が入るのでした。おっといけない。とりあえず Cancel Commitして直しを入れることにしました。
incrementとdecrementのメソッドへのご指摘はなんとなく分かります。accessingのメソッドなのに、戻り値を明示してないと。成り行きで値を戻しておるのがPharo様のチェックにひっかっかったみたい。
値 countの値を明示的にも戻すように修正。黄色でマーカ(当方にて着色)したところね。
上記のPharo様のご指摘によると、TestCaseを継承するクラスは末尾が-Testsで終わるパッケージに入れるのが期待されるお作法みたいです。しかし、Exampleの御本でもそうしてないじゃん。最近のお作法なの?
今回の練習クラスはそのお作法パスということでForce Commitしてしまいました。コミットできたみたいね。