210601 Tue


1.最初の学習内容:配列高次関数for Each(:)


Instance Method
forEach(_:)
Calls the given closure on each element in the sequence in the same order as a  for - in  loop.
let numberWords = ["one", "two", "three"]
for word in numberWords {
    print(word)
}
// Prints "one"
// Prints "two"
// Prints "three"

numberWords.forEach { word in
    print(word)
}
// Same as above
Using the  forEach  method is distinct from a  for - in  loop in two important ways:
  • You cannot use a  break  or  continue  statement to exit the current call of the  body  closure or skip subsequent calls.
  • Using the  return  statement in the  body  closure will exit only from the current call to  body , not from any outer scope, and won’t skip subsequent calls.
  • 2.第2の学習内容:Let's TDD


    依存性が込められないため、あらゆる場所にペアリングが掛けられています.
    だからネットを分けるのは難しい.
    すべての等級にはカップルの指輪が必要ですか?
    =依存度、結合度

    依存注入とは?


    ソフトウェアエンジニアリングで 依存注入(dependency injection)は、あるオブジェクトが別のオブジェクトの依存性を提供する技術である.依存性はオブジェクトです.たとえば、サービスとして使用できます.クライアントがどのサービスを使用するかを指定するのではなく、クライアントがどのサービスを使用するかを教えます.注入は、使用するオブジェクト(クライアント)に依存性(サービス)を渡すことを意味します.サービスはクライアントのステータスの一部です.モデルの基本的な要件は、お客様の組織がサービスを構築または検索できるようにするのではなく、サービスをクライアントに渡すことです.
    依存性注入の意図は,オブジェクトの生成と使用に対する関心を分離することである.これにより、可読性とコード再利用が向上します.
    依存注入は広範な逆制御技術である.サービスを呼び出すクライアントは、サービスがどのように構成されているかを知るべきではありません.クライアントは、サービスを提供する責任を外部コード(注入者)に委任します.クライアントは注入元コードを呼び出すことができません.その後、注入側は、既存または注入側によって構成されたサービスをクライアントに注入(転送)する.その後、クライアントはサービスを使用します.これは、クライアントが実際のサービス、例えばクライアントと発注者のサービス構成方法、または使用中のサービスを理解する必要がないことを意味します.クライアントは、サービスの使用方法を定義するサービスの固有のインタフェースを理解するだけでよい.これは「構成」の責任から「使用」の責任に分けられる.
    依存性注入-ウィキペディア、私たち全員の百科事典
    カップルペアリングとはA類とB類がある場合のことです
    この2つのクラスの結合度は高すぎる.
    AクラスをテストするにはBクラスを使用する必要があります
    しかしBクラスにネットワーク依存性があれば
    Aクラスと一緒にテストした結合度
    この状況をどのように改善しますか?
    中間にプロトコルを作成し、両者の結合度を分離します.
    Q.ビューと動画が多すぎる
    どうやってテストすればいいか分からない.
    A.改善方法
    実際の本番アプリケーションで使用されるネットワークマネージャ
    テストで使用するマネージャの区別
    テスト環境では、
    セッションマネージャの役割のみを模倣します.
    MockObjectの使用
    ←そのために依存性を注入する必要がある
    問:MockとSpyの最大の違いは?
    A.Mockは、Mockデータ自体のテストに失敗する可能性があります
    (assert文を含む)
    Tip)
    Given,When,Then中
    ジェーンは重要だ
    GivenやWhenと比較して、先にThenを作成することに慣れている場合は、
    考えやすい
    Let's TDD-伝授列
    Test Driven Development in Swift