👍 Keep
- 금일 주어진 요구사항에 주어진 기능 구현 완료
- 구현 후 문서 작성 완료
- 유닛 테스트 작성 후 기능 구현 시도
🔥Problem
- 안쉬고 계속 자리에 앉아있음 (허리가 너무 아프다)
- 팀원 간 토론이 적었다. 늘려봐야겠다.!
🚒 Try
- 적어도 한 시간 마다 자리에 일어나 스트레칭 필수
- TDD 사이클 대로 구현 연습을 해보자
📚TIL
- 디지털 논리회로 이론 공부와 단순 게이트 부터 가산기(half, full), 1바이트 이상 계산기 구현
- @becoreEach 를 활용해 테스트할때 마다 클래스 생성하여 테스트
적용 전
public class mission2Test {
Adder adder = new Adder(); // 모든 테스트 동일한 클래스 사용하여 테스트
@Test
@DisplayName("반가산기 테스트1")
void halfAdderTest1() {
assertArrayEquals(new boolean[]{false, false}, adder.halfadder(false, false));
}
@Test
@DisplayName("반가산기 테스트2")
void halfAdderTest2() {
assertArrayEquals(new boolean[]{false, false}, adder.halfadder(false, false));
}
}
적용 후
public class mission2Test {
Adder adder;
@BeforeEach() // 매 테스트마다 클래스 생성
void init() {
adder = new Adder();
}
@Test
@DisplayName("반가산기 테스트1")
void halfAdderTest1() {
assertArrayEquals(new boolean[]{false, false}, adder.halfadder(false, false));
}
@Test
@DisplayName("반가산기 테스트2")
void halfAdderTest2() {
assertArrayEquals(new boolean[]{false, false}, adder.halfadder(false, false));
}
}
+a) 테스트 코드 작성시 AAA 패턴 적용 한다면 위와 같은 방법은 좋지 못할 수 있겠다. 다시 작성해야겠다.
- TDD를 적용할 때 어떻게 commit 단위를 주어야 하는가?
방법 1 : red → green → refactor → commit
방법 2 : red → green ⇒ commit → refatcor ⇒ commit
방법 3 : red ⇒ commit → red에 발생하는 구현되어 있지 않은 메서드, 인터페이스 구현 ⇒ commit → green ⇒ commit → refactor ⇒ commit
코드 양과 리팩터링이 많이 필요해 보이는 경우 방법 2로 했고, 양이 적은 경우 방법 1로 커밋함
refer : https://stackoverflow.com/questions/11984338/what-is-a-good-git-workflow-for-tdd
- 배열 복사 최적화
for loop vs System.arraycopy(src, srcPos, dest, destPos, length) 메서드 사용하여 최적화 하였다.
loop보다 arraycopy가 2배 이상 빠르다고 한다.
적용 전
public void testHardCopyBytes()
{
byte[] bytes = new byte[0x5000000]; /*~83mb buffer*/
byte[] out = new byte[bytes.length];
for(int i = 0; i < out.length; i++)
{
out[i] = bytes[i];
}
}
적용 후
public void testArrayCopyBytes()
{
byte[] bytes = new byte[0x5000000]; /*~83mb buffer*/
byte[] out = new byte[bytes.length];
System.arraycopy(bytes, 0, out, 0, out.length);
}
- 이미지, Gif 캡처 후 손쉬운 웹 업로드, 공유까지
'📝 회고 > ✅ 22년 회고' 카테고리의 다른 글
[일일 회고] 22.01.10.월 - 테스트 코드, 다 좋은 게 아니었어.. (0) | 2022.01.10 |
---|---|
[주간 회고] 22.01. 1주차 🌿 🍝 (1) | 2022.01.09 |
[일일 회고] 22.01.07.금 - 리눅스 사용자 & 계정 설정, 팀원과의 작별 (0) | 2022.01.07 |
[일일 회고] 22.01.06.목 - vm 우분투 ssh 서버 설정과 쉘 스크립트 작성 (0) | 2022.01.06 |
[일일 회고] 22.01.04.화 - 테스트 코드 리팩토링과 개발 생각 (0) | 2022.01.04 |
댓글