記事「MetaTrader 5用のMQTTクライアントの開発:TDDアプローチ(第6回)」についてのディスカッション

 

新しい記事「MetaTrader 5用のMQTTクライアントの開発:TDDアプローチ(第6回)」はパブリッシュされました:

この記事は、MQTT 5.0プロトコル用のネイティブMQL5クライアントの開発ステップを説明する連載の第6部です。今回は、私たちの最初のリファクタリングにおける主な変更点、私たちがどのようにしてパケット構築クラスのための実行可能な設計図にたどり着いたか、どのようにPUBLISHとPUBACKパケットを構築しているか、そしてPUBACK Reason Codeの背後にあるセマンティクスについてコメントします。

テスト駆動開発手法には多くの利点がありますが、大きな欠点が1つあります。その利点のひとつは、明確に定義されたユニットと、適切に命名された変数を書くことで、高いテストカバレッジを達成し、ドメインをより深く理解し、過剰なエンジニアリングを避け、目の前のタスクに集中し続けることができることです。大きな欠点は、目の前のタスクに焦点を絞ったことの直接的な結果です。つまり、プロジェクト全体の複雑さに怯えるのを避けるために、開発者として、一度にできる限り小さな課題を1 つだけ解決し続けます。天才が複雑さを解決することで複雑さを取り除く人だとすれば、TDD開発者は複雑さを意図的に無視する人です。 

そうです。目隠しをした馬や、ニンジンを追いかけるロバのようにです。

しかし、私たちが無視したからといって、複雑さが消えるわけではありません。それはそこに留まり、私たちがそれに直面するのを待っています。葉をよく見るために森を無視することで、技術的負債を残し続けます。冗長な関数、重複したメンバー、役に立たないテスト、不必要なクラス、読めないコード、到達できないコードなどを放置し続けるのです。開発中に蓄積されたこの技術的負債は、生産性に悪影響を及ぼす可能性があります。それが、リファクタリングがTDDの実践に不可欠な要素である理由です。下図は、TDD実践の典型的なステップを示しています。

TDD実践の典型的なステップ:レッド、グリーン、リファクタリング

図01:TDD実践の典型的なステップ:レッド、グリーン、リファクタリング(出典:IBM Developer

作者: Jocimar Lopes