enum에 별명주기 (CustomStringConvertible Protocol)

Enumeration | 열거형 C언어와 달리 Swift에서 Enum type은 다양하게 활용될 수 있다. C언어 에서는 enum의 경우 Integer 값을 갖지만, Swift에서는 integer 뿐만 아니라 String type도 갖을 수 있다.  또한 각각의 case 별로 rawValue를 갖아서 원하는 경우에 사용가능하다. 그런데 이런 enum에 별명처럼 또 다른 값을 넣을 수 없을까? 예전에 이 문제 때문에 고민고민하고 찾아 보다가 오늘 새로운 것을 발견했다. enum에 CustomStringConvertible의 protocol를 채택하는 것이다. description property를 사용해서 각각의 case에 맞게 switch 문을 통해 별도의 String 값 등을 보낼 수 있다. 처음엔 연관값을 활용할까 고민도 했지만, 연관값은 공용체랑 비슷한 개념이라고 한다. 이 부분은 더 공부해야겠다.  여튼 이번에 알게 된 CustomStringConvetible protocol은 다른 type에도 적용이 가능할 것 같다. Swift는 파면 팔수록 신기한게 많은 것 같다. iOS개발자가 된 것! 좀 어렵지만 잘한 것 같다. 예제 코드 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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78

Naming : 의미 있는 이름

이미지
이름은 그 사람의  또는 그 사물의 본질. 특징을 지정하는 경우가 많다. 이름을 짓는 것은 매우 중요한 의미가 있다. 아래에 저자가 밝힌 부분을 코딩시 반영하는 것이 좋게 보인다. 결국 의미를 발견하고, 그 의미에 맞게 소통하는 방법이다. 프로그래밍에서 naming이 상당히 중요하다 저자는 이 부분에 대해서 다음과 같이 밝힌다. 의도를 분명히 밝혀라 의도가 분명하게 이름을 지으란 이야기다. 1 2 3 4 5 6 7 8 // 나쁜 예 var  d:  Int // 좋은예  var  deapsedTimeInDays:  Int var  daysSinceCreation:  Int var  daysSinceModification:  Int var  fileAgeInDays:  Int cs 그릇된 정보를 피하라 코드에 그릇된 단서를 남기면 안된다. 널리 사용되는 의미 있는 단어를 다른 의미로 사용하면 혼란을 줄 수 있다. 의미있게 구분하라 단순히 컴파일러나, 인터르피터만 통과하려는 생각으로 코드를 구현하려다 문제를 일으킬 수 있다. 발음하기 쉬운 이름을 사용하라 발음이 손쉽지 않을 경우, 가독성이 떨어진다. 읽기 쉬워야 소통이 편하다. 검색하기 쉬운 이름을 사용하라 문자 하나를 사용하는 이름과 상수는 텍스트 코드에서 쉽게 눈에 뛰지 않는다. 검색이 가능해야 좋다. 인코딩을 피하라 인코딩을 넣으면 가독성이 떨어진다. 헝가리식 표기법 예전엔 많이 사용한 방법이지만, 현대로 옮겨오면서 사용을 피하는 것이 좋다. 맴버 변수 접두어 접도어도 마찬가지다. Swift 의 경우도 Objective-C에서 사용하던 접두어를 이젠 사용하지 않는 편이 보인다. 인터페이스 클래스와 구현 클래스 자신의 기억력을 자랑하지 마라 명료하고, 남들이 쉽게 이해할 수 있게 작성하라 클래스 이름 명사형으로 작성 매서드이름 동사

깨끗한 코드는 한 가지를 제대로 한다.

이미지
제목 :클린 코드 저자 : 로버트C.마틴  예전에 구매한 책인데 이제야 책을 폈다. Let'Swift 2019에서 김정님께서 추천하신 책인데, 내용이 참 좋은 것 같다. 이제 Chapter 01을 봤다. 인상적인 내용이 있는데 C++ 을 만든 비야네 스트롭스트룹(Bjarne Stroupstrup)의 말이다. "깨끗한 코드는 한 가지를 제대로 한다." 보통 함수 하나는 하나의 역할만 하게 하라는 얘기는 예전에 들었던 말이다. 개발 일정이 없을 경우엔 그런 원칙을 잊을 때도 많고,  스파게티 코드를 양산할 때가 많은 것 같다. 근데 사실 그게 더 일을 크게 만드는 것이라고  저자는 말한다. 좀 더 좋은 실력있는 개발자가 되고 싶다. 이제 다시 시작하자 깨끗한 코드 처럼 내 인생도 한가지를 제대로 해 보자. 클린코드