04.11.21リリーフTIL
🤓 今日習った内容!
1. Queue / Stack
QueueとStackはデータ構造タイプです.
Queue
先入先出
現実の世界では、銀行業務や遊園地が並ぶのは先入先出に相当する.
これは先進的なデータの先出の先入先出の方式です.
キューでは,データが入る場所をバックエンド,データが流出する場所をフロントエンドと呼ぶ.
キューの後ろからデータを挿入する演算をenQueue,先端からデータを削除する演算をdeQueueと呼ぶ.
Stack
後入先出
現実世界に積み上げられた皿を上から一つずつ出して、後入先出に相当します.
最後に入力したデータは、先に出てから入る方法です.
Queueとは異なり、データが入ったり流出したりする場所は1つしかありません(top).つまり、通路は1本しかありません.
topからデータを挿入する演算をpush,topからデータを削除する演算をpopと呼ぶ.
参考ブログ/トナー開発ログ
2. Unit Test / TDD
ユニットテスト
ソースコードの特定のモジュールが予想通りに正しく動作しているかどうかを確認するには
関数またはメソッドのテストコードを作成し、検証します.
例えば、果物でジュースを作る方法が正常に機能しているかどうかを検証したいです.
では、「バナナ3個でバナナジュースを作る」というcaseを定義します.
test codeでcaseと同じ場合を設定と、
これは私が検証したい方法を呼び出す方法です.ではtestcaseではtestの結果についてお話しします.
👾 How to?
1.プロジェクトに新しいターゲットを作成します.Unit Test Bundle
テンプレートによって生成される.
通常、テスト名は「プロジェクト名+test」
2.プロジェクトのテストにテスト目標を追加します.
これは、プロジェクトコードをどのようにテストするかを設定するプロセスです.command + shift + ,
またはEdit Schemes
から接続されます.(Command Line Toolでも見つけられます)
3.ターゲットメンバーシップの作成
テストするソースコードに移動し、[TargetMembership]でJuiceMakertest
を確認します.
これは、JuiceMaker.swift
が構築されると、JuiceMakertest
も一緒にコンパイルされることを意味する.
Target Membership
ターゲットの構築時にコンパイルするファイルには、Target Membershipで検出されたターゲットが含まれています.
????????? 逆方向じゃないの???
4.test
メソッドをクラスに書き込む.
メソッド名はtest
で開始する必要があります.import XCTest
class IntStackTests: XCTestCase {
func test_바나나_3개로_바나나쥬스를_만든다() {
// test code 작성
let maker = JuiceMaker()
let result = maker.makeJuice(fruit: .banana, amount: 3)
XCTAssertEqual(result, .success(.banana))
}
}
5.テストを実行します.
edge caseを作成してチェックし、より正確に検証できます.
Test Case
需要を分析し、実現すべき機能を分析し、作成します.
どのケースも互いに影響を与えることはできません.独立する.
TDD(テストドライバ開発)
ソフトウェア開発プロセスの1つ.
1)まず、デマンドに失敗したテストケースを作成します.
2)次の試験例に合格するために、最小限の生産コードを作成する.
3)最後に作成したコードを書き直す.
TDD Cycle
[出典]https://www.thinktocode.com/2018/02/05/what-is-tdd/
compile errorは失敗・失敗のtest caseと見なすこともできる.
TDDのメリット
import XCTest
class IntStackTests: XCTestCase {
func test_바나나_3개로_바나나쥬스를_만든다() {
// test code 작성
let maker = JuiceMaker()
let result = maker.makeJuice(fruit: .banana, amount: 3)
XCTAssertEqual(result, .success(.banana))
}
}
+ Result Type
Result
A value that represents either a success or a failure, including an associated value in each case.
Generic Enumerationは、
success
またはfailure
を表すことができる.各ケースには関連値があります.@frozen enum Result<Success, Failure> where Failure : Error
3. UIStepper
stepperの
+
-
ボタンでvalue
を増減できます.🧐 好奇心のある場所
1.シーケンスイメージボードUIの表示がいつ反映されるか
1番目の画面に2番目の画面ViewControlのインスタンスを作成し、インスタンスのUILabelを変更して2番目の画面に切替えようとします.しかし、2画面目を開くと、1画面目のUILabelは反映されません.
ストライプUIはviewDidLoad()
からロードされる.このため、第1のビューコントローラは、UILabelにアクセスできなくなり、UILabelの値を変更しても、viewDidLoad()
が呼び出され、シーケンスイメージボードUIに初期化される.
Reference
この問題について(04.11.21リリーフTIL), 我々は、より多くの情報をここで見つけました
https://velog.io/@yeahg_dev/04.11.21-릴리-TIL
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
Reference
この問題について(04.11.21リリーフTIL), 我々は、より多くの情報をここで見つけました https://velog.io/@yeahg_dev/04.11.21-릴리-TILテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol