余裕がない時こそ、余裕を設けることの重要さに気づくタイミングがあった。
diary
pc
M.2 SSDが届いた。 止めるためのねじがないので、何もできなかった。とりあえずねじを注文。
rest
集中できない時は、集中できないので、別のことをに目を向ける。 すると、新たなことに気づける。
日課の中で、立ち止まる、ということを設けるようにしている。 これの効果を今日改めて実感できた。
余裕がないときこそ、余裕を設けることによって、余計な大変さをなくすことができるのだ、と改めて気づいた。
今日の勉強
rust
TRPL pp.278-286
コードをライブラリクレートに分割する。
- 適宜pubをつけて公開にして、
- extern crateでライブラリクレートをバイナリクレートに持っていって、
- useしたり
- クレート名を接頭辞として付けたり
モジュール化を行った。
モジュール性を利用してテストを活用する
TDD
- 失敗するテストを書き、想定通りの理由で失敗することを確認する
- コーディングし、テストを通過するようにする
- リファクタリングして、テストが通り続けることを確認
- 1から繰り返す
失敗するテストを記述する
- testモジュールを追加する
- テスト関数で、実装しようとしているsearch関数に欲しい振る舞いを指定する
- 失敗するようなsearch関数の定義を追加
テストを通過するようにし、またリファクタリングする
- 条件に合致した行を保存するようにコーディングして、search関数のテストを通す
- 使った技術:
.lines
- 文字列を行ごとに繰り返すメソッド
- イテレーターを返す
contains
メソッド呼び出し、クエリ文字列を含むかどうかチェックする- 返すべくたを作れるように可変なベクタを作り、そこにpushし、最後にそれを返す
- 使った技術:
- 同じ機能を保持しながら、リファクタする
- イテレーターの有用な機能を活用するということが残っている
あとは、mainが呼び出すところのrunからsearchを呼び出す。