개인이 개인적으로 혼자만의 프로젝트를 진행하든 혹은 팀원과 같이 협업을 하든간에 Code Rule 은 굉장히 중요합니다.
좋은 프로그래머라면 자신의 코드 Rule 을 가지고 있어야 한다는 생각을 최근에 자주합니다.
코드 룰이 필요한 이유는,
개인이 진행하는 프로젝트인 경우, 큰 프로젝트를 진행한 후 몇개월 후 혹은 1,2년뒤 Update 를 위해 다시 코드를 볼 경우... "아~ 이게 무슨 메서드였지... 이 변수는 어디있지..."하는 경우를 막기 위해서이며, 더더욱이 팀원들과 같이 프로젝트를 진행한다면 절대적으로 다른이가 내가 만들어놓은 메서드를 찾는다고 쓸데 없는 시간적 낭비, 집중력 낭비를 막기 위해서입니다.
그리고 전체 코드룰과 자신만의 Naming 룰을 지킨다면, 코드를 보고서도 '아 이친구가 작업을 했구나' 라는 identitiy 까지 보이니 생각보다 굉.장.히 중요한 부분이라고 할 수 있겠습니다.
나름대로 제 개인적인 Code Rule 을 확립하고 써볼까 합니다. (참고해서 자신만의 Code Rule 을 직접 써보고 지키려고 노력하다 보면 오히려 편해지리라 생각이 듭니다)
Objective -C Code Rule
1. Code Level
- 최대한 Class 를 많이 생성하며, 폴더도 많이 생성해서 최대한 쉬운 구조를 만든다.
- 객체 변수는 소문자로 표기하며, _ 는 사용을 자제하고 첫글자는 소문자로 시작해서 띄워쓰기 대신 대문자로 표기한다.
(ex: sub_info_network (x), subInfoNetwork (o))
- 클래스이름은 대문자로 표기한다. ex) FuntionUtil
- 클래스 내부에서 사용되는 변수가 있다면 앞에 _를 붙인다.
- #Define 은 상수처리에만 사용한다. (아래 코드 내 스트링 Literal 표기하지 않기 예시)
- dealloc 을 가장 위에 사용하며 생성자를 그다음에 쓴다.
- 상수는 대문자로 쓰며 전역변수의 경우에는
- 최대한 쉽게 쓴다! (메서드나 명령 등을 길이가 길어도 상관없으니 남들이 봐도 이게 어떤 동작을 하는지 알 수 있을 만큼)
- Resource, Group 이름은 한글로 사용하지 않는다.
- 코드 내 스트링과 변수를 Literal 하게 적지 않는다. EX) case 0 이 아닌 #define 을 통해 case IDX_BUYINFO 등과 같이 보기 쉽게
- 객체를 생성했다면 그 안에서 꼭 객체를 죽인다.
- xib 파일을 웬만하면 생성을 하며 IBAction 은 on 으로 시작해서 표기한다.
2. Tree
- Resource이름은 형태_사용되는곳(클래스)_ 으로 표기한다 (bg_main , btn_infomation_)
- 클래스 이름은 대문자로 사용하며 s 를 붙이지 않는다 ( Utilfunctions (x) UtilFunction (o) )
- 특정 클래스 상속 시 뒤에 붙인다 (mian (x) mainViewCtrl (o))
- 폴더 (패키지) 에는 s 를 붙이며 소문자로 적는다.
3. 세부사항
+ Button : Btn , Array : Arr , Dictionary : Dic , Text : txt
로 표기하며 나만의 줄임말을 만들어 사용하지 않는다.
4. import
- 프레임워크는 head 파일에서 import
- 그 외 타 클래스들은 .m 파일에서 import
'옛글 > 아이폰 프로그래밍' 카테고리의 다른 글
[iOS프로그래밍] AlertView 버튼 클릭 시 기능 구현 (1) | 2012.05.24 |
---|---|
[iOS프로그래밍] Navigation Bar 에 Button 붙이기 (0) | 2012.05.24 |
[iOS프로그래밍] 뷰 안에 뷰는 관리하지 않는다! (1) | 2012.05.15 |
[iOS프로그래밍] Loaded “xxx” nib but the view outlet was not set 해결방법 (2) | 2012.05.11 |
[iOS프로그래밍] iOS 이미지 리소스 관리(Retina Ipad @2x 명명법포함) (1) | 2012.05.10 |