2017. 1. 12. 06:58ㆍ장비제어개발관한이야기
오늘 포스팅할 내용은 제가 장비 제어 개발을 해오면서 공감이 되는 글인데 스크랩만 하고 어디서 가져왔는지 기억이 나질 않아 출처는 아는데로 밝히 겠습
아마, 제가 원본 내용과 달리 저한테 적용한게 있어서 다른 내용이나 없는 내용도 추가한 내용도 더러 있을 겁니다. 앞으로도 계속 추가할 예정입니다.
장비 제어 개발 하는 분들에게 공감가는 조언
1. 디버거의 사용은 최소화 하고 로그를 적극 활용하라 . 장비가 동작중일때는 디버거를 사용할 수 없고 문제 생길때마다 디버거에 의존하다 보면 소스 코드 분석 능력이 떨어지게 된다.
2. 구조를 잡거나 조건을 생각할때는 나무를 보지 말고 숲을 보라. 코딩을 할때는 숲을 보지 말고 나무를 보라.
3. 고객사 담당자가 원하는것을 얘기하면 원하는대로 해주려고 하지 말고, 그 기능을 원하는 진짜 이유를 먼저 생각해 보고 근본적인 원인을 찾으려고 노력하라
4. 고객사 담당자가 원하는 조건을 얘기하면 그 조건만 생각하지 말고 기존의 조건과 그것을 포함하면서 핵심을 관통할 수 있는 가장 단순하고 공통된 조건을 찾아서 적용하라
5. 한가지를 수정하면 10가지의 문제가 생긴다. 한가지 기능을 추가하면 기존의 10가지 기능에서 문제가 발생할 수 있다. CheckBox 옵션 한가지는 모든 경우의 수를 2배로 늘어나게하고 버그의 가능성을 2배로 늘린다.
6. 같은 장비의 실행파일이 고객사 요구에 따라 2개로 분리되고 소스 코드를 개별 관리하기 시작하면 코딩 업무량은 1.5배로 늘고, 유지보수비와 버그는 2배로 늘어난다.
7. 신규 드라이버는 처음 설치 후 바로 양산 장비에 적용하지 말고 , 1대에서 충분한 테스트를 하라.
8. 프로그램을 배포할때는 실행파일만 배포하지 말고 , 버전 업 되면서 필요한 파일이 추가 되었는지 한번 더 생각하고 배포 하라. 고객사 담당자가 프로그램을 받아서 장비PC에 복사까지 했는데.. 실행조차 안되는 문제가 발생하는것은 가장 짜증나는 일 중에 하나이다.
9. 핵심적인 조건, 시퀀스, 데이터는 반드시 로그를 남길수 있도록한다. 특히 예외 상황으로 빠지는 조건에서는 무조건 로그가 남아 있게 한다. 동시에 로그 데이터는 최대한 적게 남도록 쓸데 없는 로그는 항상 정리하는 습관를 들이자
10. UX 디자인의 기본은 사용자에 대한 배려심이다.
11. 조건문을 만들때는 조건의 내용을 읽어가면서 이해가기 쉬운 어순으로 배열하라.
12. 조건문은 조건들 중에서 가장 큰 대전제가 되는 조건을 우선 배열하고, 비슷한 레벨이면 가장 참(true) 이 되기 어려운 조건을 먼저 배열하라.
13. 전체 부정 (!)을 사용하는 조건문은 만들지 않는다.
14. 포인터를 리턴하는 함수에서 에러의 경우에는 null 을 리턴하지 말고 , Dummy 데이터의 포인터를 리턴하라 . 프로그램 죽는것을 방지할수 있다. 대신 로그 기록은 필수로 한다.
15. EditBox를 추가할때는 항상 적당한 기본값(Default Value) 을 설정한다.
16. 저장 하지 않고 화면을 빠져 나올때는 항상 데이터가 원상복귀 하도록 한다.
17. 고객사 담당자의 요구를 너무 쉽게 들어주다 보면 , 그것을 당연한 것으로 생각하게 된다.
18. 중복 코드가 만들어지는 순간 바로 함수로 만들어라! ( CTRL+C , CTRL+V를 하기 전에 함수로 모듈화 할수는 없는지 다시한번 생각하라 )
19. 모든 개발 프로젝트는 중반 이후에는 출구 전략을 생각하라 . 언제까지나 한 프로젝트에만 매달리면 그 프로젝트는 완벽해질지 모르지만 회사는 망한다.
20. 로그 내용 자체에 함수이름을 쓸때는 괄호()를 사용하지 말자.
코드중에서 함수를 검색하고 싶을때 로그 내용까지 너무 많이 검색되서 불편한 경우가 있다
21. 기능을 추가할때는 항상 기존의 데이터와 호환이 가능한지를 먼저 생각해보고, 이미 납품되어 양산중인 장비에 적용했을때 문제가 없을지를 항상 생각하라.
22. 시퀀스 동작에 문제가 발생했을때는 그 문제가 발생할수 있는 명확한 타이밍과 시나리오를 찾을때까지는 만족하지 마라
23. 주석도 통일하라. 서로의 규칙에 의해서 진행하면 모든지 편해진다.
24. 장비테스트 후 항상 소스서버에 적용하라. 늦게 끝나고 야근이 많이 지면서, 점점 기억이 희미해진다.
제일 기억 확실 할때는 바로 오늘이다.
'장비제어개발관한이야기' 카테고리의 다른 글
나는 이렇게 한다. 장비개발에서 소스관리!!! (0) | 2017.01.21 |
---|---|
레이어 설명에 앞서서...동적라이브러리 링크 (0) | 2017.01.17 |
자동화설비(ImMahcine[SEQ])의 기본구조-초안 (0) | 2017.01.16 |
코딩컨벤션에서 헝가리안 표기법까지! (0) | 2017.01.13 |
장비 제어 소프트웨어 개발자! 제가 하는 일? (3) | 2017.01.11 |