Hacker News 의견
  • 도구 체인을 적극적으로 업데이트하는 것이 개발 과정의 중요한 부분임. 많은 회사들이 도구 체인 업그레이드를 우선순위에서 제외하여 보안 취약점과 같은 문제를 초래함. 최신 컴파일러나 빌드 시스템 릴리스마다 브랜치를 만들어 빌드 상태를 확인하고, 오류가 있으면 버그로 간주하여 즉시 처리함. 이는 코드베이스를 최신 언어 기능으로 점진적으로 현대화하고 리팩토링하는 데 도움을 줌.

  • 서드파티 의존성은 장기적으로 실망스러운 경우가 많음. 새로운 프로젝트에서는 서드파티 의존성을 사용하여 단기적으로 문제를 해결할 수 있지만, 장기적으로는 자체 코드로 대체하는 것이 좋음.

  • 의존성을 벤더링하고 코드 리뷰를 통해 관리하는 것이 필요함. 종종 서드파티 코드의 품질이 낮아 직접 작성하는 것이 더 나은 경우가 많음.

  • Qt, CMake, 현대 C++를 사용하여 장기적인 확장성을 목표로 하는 프로젝트를 진행 중임. 이러한 기술 스택은 지속적으로 기능과 개선을 제공함.

  • Emacs Lisp에서 작업하는 것이 신선한 경험이었음. 라이브러리가 업데이트되지 않아도 안정적으로 작동하는 것이 장점임. Gatsby와 Node를 사용한 경험은 업데이트 문제로 인해 어려움을 겪었음.

  • 단순한 코드를 작성하는 것이 중요함. 복잡한 코드는 필요할 때만 작성하고, 단순한 코드는 후회하지 않음.

  • 시스템과 코드의 문서화가 중요함. 소프트웨어 개발 경험이 많을수록 문서화의 중요성을 깨닫게 됨.

  • 테스트가 계획에서 중요한 역할을 함. NASA의 개발 방식을 참고하여 프로그래밍 오류를 찾는 데 주력해야 함. 의료 소프트웨어 개발에서는 해석을 피하고 동적 메모리 할당을 사용하지 않음.

  • 오래 지속되는 소프트웨어를 작성하는 가장 좋은 방법은 "지루한" 코드를 작성하는 것임. 의존성을 피하고 기본에 충실해야 함.

  • Python에서 의존성 문제로 어려움을 겪은 경험이 있음. 이는 "DLL Hell"로 불리며, COM이 이를 해결하려 했으나 성공적이지 않았음.

  • 산업 소프트웨어에 적용되는 관행은 일반 소프트웨어에 적용하기에는 충분히 견고하지 않음. 엔지니어들은 위험을 완화하려고 하지만, 우리는 위험을 완화하는 데 중점을 둠.