최근 CloseOnion 개발 과정에서 기술적인 선택의 연속이 있었는데, 이제 OpenOnion의 엔지니어링 기술 문화에 대해 이야기할 시간이라고 생각했습니다.
·-- 5.26
코드 품질을 어떻게 보장합니까? 장기적으로 신뢰할 수 있는 배포를 어떻게 보장합니까?
OpenOnion의 가치는 간단하고 반복 가능합니다.
코드는 간단해야 하며, 간단함은 가독성과 유지 보수성의 요구 사항입니다. 코드를 작성할 때 자신과 대립해서는 안 되며, 우리는 머리를 아프게 하지 않습니다.
코드 기능은 재사용 가능하고 모듈화될 수 있어야 합니다.
재사용 가능성은 전체적인 일관성을 보장하며, 개발자와 사용자 모두에게 최소한의 놀람을 유지시킵니다. 재사용을 실현하기 위해서는 당연히 구현 세부 정보가 추상화에 의존하는 것이 아니라, 추상화가 세부 정보에 의존하도록 선택하는 것입니다.
물론, 인터페이스 분리, 자동화 테스트, 지속적 통합, 적시적인 리팩토링과 같은 많은 외부 요소들이 중요합니다. 이들은 코드를 간단하고 반복 가능하게 하는 보장입니다. 간단하고 반복 가능하게 하려면, 이러한 요소들에 대해 점차적으로 주의를 기울이게 될 것입니다. 그들의 목적은 모두 코드를 간단하고 반복 가능하게 하는 것입니다.
앞으로의 개발에서 우리는 이러한 부분의 코드가 충분히 간단한지, 다른 사람이 한 눈에 이해할 수 있는지, 설명이나 문서에 의존하지 않아도 되는지 고려해야 합니다. 트릭이나 문법 설탕을 지나치게 사용하지 말고, 누구나 이해할 수 있도록 작성해야 합니다. 어떤 함수가 너무 길게 작성되었는지, 작은 함수로 분리하면 더 명확하고 명확한지 고려해야 합니다. 현재 파일이나 기능이 지나치게 결합되어 있는지, 추상화가 세부 정보에 의존하는지, 이 부분이 나중에 재사용될 수 있는지 고려해야 합니다.
개발자는 코드를 작성할 때 다음 질문들을 스스로에게 물어야 합니다.
- 코드가 충분히 간단한가요? 다른 사람이 한 눈에 이해할 수 있나요?
- 코드가 유지 보수하기 쉽나요? 한 부분을 수정하면 다른 부분에 영향을 미치나요?
- 코드는 재사용 가능한가요? 모듈화하고 다른 곳에서 사용할 수 있나요?
- 代码是否过度耦合? 是否实现了细节依赖抽象的原则?
이러한 질문들을 계속해서 스스로에게 묻는다면, 코드를 간단하고 명확하며 유지 보수 가능하게 유지할 수 있으며, 우리의 핵심 가치인 간단하고 반복 가능한 것을 실현할 수 있습니다.
이러한 원칙을 고수함으로써, 기술이 지속적으로 변화하는 환경에서 경쟁력을 유지하고 고품질의 소프트웨어 제품을 지속적으로 제공할 수 있습니다.