해커톤을 시작하기 앞서 우리만의 룰을 간단하게 정리해보자
프로젝트 내에서 혹은 프로젝트 간의 일관성 유지를 용이하게 하고, 여러명의 사람이 작업을 할 때 효율적이다.
pod 'SwiftLint'
이후에 root folder 에 .swiftlint.yml 이라는 파일을 만들어서 설정을 한다.
touch .swiftlint.yml
// touch 라는 명령어를 터미널에 입력하면 파일이 생성됩니다.
설정에 필요한 파라미터는 다음과 같다. 필요한 부분만 설정해준다.
disabled_rules
: Disable rules from the default enabled set.opt_in_rules
: Enable rules not from the default set.whitelist_rules
: Acts as a whitelist, only the rules specified in this list will be enabled. Can not be specified alongsidedisabled_rules
oropt_in_rules
.analyzer_rules
: This is an entirely separate list of rules that are only run by theanalyze
command. All analyzer rules are opt-in, so this is the only configurable rule list (there is no disabled/whitelist equivalent).- 그외 내가 포함시킬 혹은 제외할 파일을 설정할 때에는 다음과 같은 파라미터를 통해서 설정한다.
included
excluded
Target -> build phase -> new Runscript -> ${PODS_ROOT}/SwiftLint/swiftlint
설정을 마치면 컴파일시 파일들을 확인한다. 일일이 확인하는 것도 좋지만 미리 만들어진 basic rules 를 사용하면서 필요한 경우 변경하는 것도 좋은 방법이다. SwiftLint Rules ( 참고로 현재는 github에서 md가 제대로 보이지 않는다. 복사해서 다른 md editor를 활용하자 )
우리가 공통으로 알아야 할 점이 뭐가 있을까? 대표적으로 extension을 생각해보자. 우리가 흔히 사용하는 extension, but 나에게는 익숙하지만 팀원들에게 익숙하지 않다. 그렇다면 이것을 알리는 것이 좋다.
-
extension 파일 자체에 설명을 추가
- 장점 : 간편하다.
- 단점 : 알기가 쉽지 않다.
-
wiki 에 사용법과 추가한 내역을 올린다.
- 장점 : 팀원들과 공유하기 쉬움
- 단점 : 일이 많아짐 > PR 을 통해서 wiki에 올리면 approve 를 하던지 해야 함
Swift Lint로도 상당히 많은 부분을 해결할 수 있지만 그 외에도 논쟁의 여지? 혹은 선호의 차이가 있는 스타일은 반드시 있기 마련이다. 이런 경우를 대비해서 Style Guide 를 참고하고 이를 활용해보자
Mash-Up iOS 팀은 기본적으로 raywenderlich 룰을 따르는 것으로 한다. 문서가 가장 깔끔하다고 느껴지기 때문, 팀원 모두가 동의했다면 최대한 따르는 것이 좋다고 생각한다. 만약 의문이 든다면 issue 를 링크에 날리도록 ! 해당 룰을 추가하자
swift lint
Commit 또한 중구난방으로 작성하기 보다는 아래의 기본적인 Template 를 활용하여 작성하기로 한다. 단, 영어가 아닌 한글로 작성하는 것도 가능하다. 기본적으로 갖는 커밋의 주제(?)는 다음과 같다
- feat: a new feature
- fix: a bug fix
- docs: changes to documentation
- style: formatting, missing semi colons, etc; no code change
- refactor: refactoring production code
- test: adding tests, refactoring test; no production code change
- chore: updating build tasks, package manager configs, etc; no production code change
언제 이슈를 오픈할까?
- 해야하는 목록들을 다 이슈로 만들어 놓는다. 그리고 하나씩 close
- 장점 : 꼼꼼하게 , 눈에보인다 , 일을 쉽게 알 수 있다, project 관리가 용이하다.
- 단점 : Too Much, 놓친부분을 또 이슈를 만들어야 돼
- 정말로 해결해야 할 이슈만 올린다.
- 장점 : 편해
- 단점 : 프로젝트 관리가 조금 힘들수가 있다.
- 커밋에 이슈를 언급한다. #1234
- PR 에 close #123, #1234
- master
- develop
- feature
- 이슈넘버 + 기능이 들어가 있어야 됩니다.
- [1234] login
- 1234_login
- 여러개의 이슈는 팀마다 정하기
- 이슈넘버 + 기능이 들어가 있어야 됩니다.
- 필요한 경우에는 다음과 같은 브랜치를 사용할 수 있습니다.
- hotfix
- release
만약에 룰을 추가하고 싶은 경우 혹은 변경하고 싶은 경우에는 팀원들과 공유한 뒤 해당 md 를 수정하도록 한다. Mash-Up iOS팀에서 모두들 즐거운 코딩을 하시길!
그럼 20000