Kashibuchi’s blog

勉強のこと、趣味のこと、日々のこと

仕事での開発で感じたこと

はじめに

ようやっと業務でJavaのソースを触れる、単なる修正ではなく機能追加を行うので構造を考えて実装ができる、ということで喜んでお仕事しましたが、既存のソースで気になる点があるため、自分ならどう作るのか考えをまとめることにしました。

ただし、具体的な実装方法は勉強しないとわからないので、そこは宿題。 つまり、以下は自分の宿題リストも兼ねる。

一応、前提はJava(SpringBoot)。

ログ出力の分離

設計にて実現したい機能とログ出力内容を定義するけど、ソース上は一つのメソッドに処理もログも書いてある。 その為、ログのメッセージ内容なんてものは単体テストレベルで文字の一致を確認できれば間違いがないのに、テストソースが煩雑になったりしてやりにくい。

FATAL、ERROR、WARN、INFOログの出力は処理を書いたメソッドとは別に実現したほうがテストもしやすいんじゃないかなあ。 ビジネスロジック内で書いてもよいのはDEBUGのみ。

リポジトリ(MybatisのMapper)の試験はインメモリDBではなく、実際に使用するDBで試験する

インメモリDBでSQLの試験ができるなんていいじゃん!と思っていたのですが、DDLが実際に使用するMySQLPostgreSQLと異なるので、インメモリDB用のschema.sql作成しないといけない。 異なる種類のDDLを保持するのはもったいし、間違えそうなのでテストでもインメモリDBは使いたくないなと感じた。 CIでどのように動作させようかな、とは思うが。