일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 산토리 하이볼
- GenAI
- 리팩터링 4장
- URP
- JavaScript
- 주식
- 리팩터링
- 언리얼 5
- 이득우의 언리얼 프로그래밍 1
- 주식단테
- 2023 게이밍
- 스포일러 주의
- 구글 컨퍼런스
- 112일선
- 상계9동
- 작계훈련
- 1일차
- shader
- 전주비빔 라이스 버거
- 이득우의 언리얼 프로그래밍1
- 2023 구글 클라우드
- 2023 게이밍 인 구글 클라우드
- 스즈메의 문단속
- 2023 Gaming
- 공부
- 리팩터링 3장
- 448일선
- unity
- 224일선
- 언리얼5
- Today
- Total
목록Book (19)
개발 이야기 안하는 개발자

가정을 주의하라 데이터가 있는지 항상 확인해야 한다.주석으로 알려줘야 가정이 있는 경우엔 메소드의 명명이나, 기능을 제한해서 명시해야 한다.또는 호출하는 쪽에서 강제로 알 수 있도록 Assert 같은 에러 메세지를 띄우는 방식을 추가해야한다. 전역 상태를 주의하라 코드를 재사용하기 때문에 데이터가 변질될 가능성이 높다.재사용될 가능성이 있다면 정적을 지우고 공유 상태에 의존성을 주입해야 한다.static 을 사용했던 이유는 대부분 해당 인스턴스를 가지고 있지 않았을 가능성이 있다. 그래서 필요한 곳에 인스턴스를 필요로 하는 메소드를 제작하고, 거기에 주입을 하게하는 방식으로 해결하면 된다.class ShoppingBasket{ static void AddItem(Item item) { ..

의존성 주입의 사용을 고려하라하드코딩된 의존성은 확장성을 저해한다.class TestB{}class TestA{ TestB TestB}위 상태에서 TestA 클래스의 기능이 확장되어서 TestB가 아닌 TestC가 필요로 하게 되는 상황이 온다면?따라서, 위 같은 경우 보단 아래같은 경우를 추천한다. class TestB : public Test{}class TestA{ Test Test TestA(Test InTest) { Test = InTest; }}TestA(new TestB());의존성을 주입하는 방식으로 해야 코드를 확장하기 쉽다. 인터페이스에 의존하라구체적인 구현에 의존하면 적응성이 제한된다.따라서 가능한 경우 인터페이스 의존해야 한다. 클래스 상속에 주의하라기능확장을 위한 마구잡이..

클래스를 인스턴싱하고 데이터를 수정하는 행위는 생각보다 빈번하게 일어날 것이다.이 행위가 내가 방금 로직을 작성하고 바로 사용한다면 괜찮을 거다. 이후에 누군가가 내 코드를 수정한다거나, 아니면 내가 제작한 인스턴스를 가져와서 참고하게 된다면 해당 데이터가 어디서 바뀌었는지, 어떤 의도로 바뀌었는지 찾아보기 어려울 것이다. 따라서 해당 쳅터에서는 클래스의 역할을 어떻게 규정하고 코드를 오용하지 않게 하는 방법을 소개한다. 오용하기 힘들게, Set 함수는 최대한 자제할것.기존에 있던 Text 클래스가 있고 SetFont 와 SetSize 가 있다고 가정하자.만약에 Text 인스턴싱을 얕은 복사를 통해 여러곳에서 사용하게 된다면 문제가 생긴다. A 위치에 A 텍스트가 있다.B 위치에 얕은 복사를 진행한 A ..

열심히 해야하는데...더 열심히 살아야 하는데.... 공부도 하고 게임도 하고 운동도 하고 재태크도 하고 친구도 보고 돈도 벌어야해24시간이 부족하단 말이지......이놈의 쇼츠만 없었어도... 다 했을탠데 ㅎ 매직값을 반환하지 말라 (-1 같이 잘못된 값을 받은 경우)- 대신, 널이나 오류를 반환하는게 좋다- 배열같은 컨테이너 형식은 널 대신 비어있는 값을 반환해라- 문자열은 비어있는 상태에서 문제가 될 수 있으니, 널로 반환해라 예상치 못한 부수효과는 피해라- 부수 효과 : 어떤 함수의 호출이 함수 외부에 초래한 상태 변화를 뜻한다.- 예) 값을 변경하는 함수 내부에 과거 값을 기록 한다( 과거 값을 기록하는게 부수효과 )class UserDisplay{ void getPixel(int x, i..

서술형 명칭쓰기- 가능하면 주석보다는 서술형 명칭을 사용할 것.- 명사나 함수, 클래스 등의 이름만 보고도 어떤 것인지 이해할 수 있게 명명할 것. 주석문의 적절한 활용- 주석문으로 가독성 높은 코드를 대체할 수 없다.- 주석문은 코드의 이유를 설명하는데 유용하다. (작업 이유, 테스크 넘버, 버전에 따른 이유 설명 등등)string Generate(string data){ //data[0]은 유저의 이름이고 data[1]은 성이다. //"{이름}.{성}"의 형태로 ID를 생성한다. return data[0] + "." + data[1];} 다음 코드는 주석이 있지만 이해하기 어렵다.string Generate(string data){ return FirstName(data) + "." + Last..