ソフトな忘却力(40) Smalltalk、Pharo、Iceberg、氷山?バージョン管理

Joseph Halfmoon

前々回Pharo by Example 9の第5章を読みながら、クラスの定義の仕方などを実習。しかし、クラス定義と同時に、ユニットテストやら、ソースのレビジョン管理やらを一気に教えてくださるのが、忘却力の老人のキャパオーバーということで手抜き。そこで前回はテスト、今回はソースのレビジョン管理っす。「氷山」使うんだぜ。

※「ソフトな忘却力」投稿順 Index はこちら

※今回の動作確認は、Windows11上のWSL2の上のUbuntu24.04LTS上のPharo 10.0.0を使用しています。

Iceberg

Smalltalkの法灯をうけつぐPharo様は、純粋オブジェクト・オリエンテッドな処理系にして開発環境、モダーンで強力なツール群を統合してます。前回は自然にテスト駆動設計にできるところを実習、テストしながら、何気にUMLのクラス図などまで作成してくれていることに驚きました。

今回はソースのレビジョン管理です。モダンな処理系なのでバックエンドはGitです。この辺はコモンセンス?しかしそのフロントエンドは Iceberg(氷山)と呼ばれていました。氷山の一角?違うか?

まずはIcebergのウンドウを開くところから。Iceburg

さてウインドウを開くと以下が表示されています。Iceburg100

Pharo、そしてIceberg自身も含め、今回利用させていただいている「イメージ」の中にLocal repositoryがあったら使いて~ものどもがこれだけあるのだと想像しました。

とはいえ、今回は前々回作成の練習用のパッケージのレポジトリを作ってコミットするの回です。そのためには左上の Add ボタンをえい。NewRepository

New repositoryを選んで、お名前をつけます。Okね。Iceburg101

上記のように、目出度く作成されたようです。空だけど。

ここにパッケージを紐づけないといけないみたい。上記のMyTrainingRoomをクリっとやって開いたウインドウでAdd package。
Iceburg102
そこで練習用に作ったパッケージを指定。Iceburg103

 

初回コミットしようとして注意される

さて、パッケージを紐づけ?たので、ここで左上のCommitボタンを押せば、MyTrainingRoom配下のいろいろなものがコミットされるハズ。Iceburg104

すると、以下のようなウインドウが開きました。Iceburg105

左上には「コミット」されるハズのものどもが+記号とともに表示されています。これを使えば「こいつは除いておく」とかもできるわけね。まあアリガチな表示か。後は下の入力エリアにコメントを書き、右下のCommitボタンを押せばコミットしてくれるハズ。

しかし、ここで黄色の部分に「チェック」が入っているのに気づきませんでした。左側の方は、コミットしたら現在作業中のイメージもセーブされるオプションみたいです。まこれはよろしかろう。しかし右側は何?Iceburg106

すると以下のようなウインドウが開きました。まあ「テスト通っておる」のでエラーではないけれども「Critiques」なんだそうな。コミット前にPharo様からご指摘が入るのでした。おっといけない。とりあえず Cancel Commitして直しを入れることにしました。

incrementとdecrementのメソッドへのご指摘はなんとなく分かります。accessingのメソッドなのに、戻り値を明示してないと。成り行きで値を戻しておるのがPharo様のチェックにひっかっかったみたい。Iceburg107

値 countの値を明示的にも戻すように修正。黄色でマーカ(当方にて着色)したところね。Iceburg108

でもテストクラスの方はなんだかな~Iceburg109

上記のPharo様のご指摘によると、TestCaseを継承するクラスは末尾が-Testsで終わるパッケージに入れるのが期待されるお作法みたいです。しかし、Exampleの御本でもそうしてないじゃん。最近のお作法なの?

今回の練習クラスはそのお作法パスということでForce Commitしてしまいました。コミットできたみたいね。

ソフトな忘却力(39) Smalltalk、Pharo、Unit Testをやれよ へ戻る

ソフトな忘却力(41) Smalltalk、Raspberry PiでもPharo へ進む