UP | HOME

프로그래밍

Table of Contents

1. 비동기

2. Rust

2.1. Rust의 에러 핸들링 전략   rust

The Rustonomicon에 멋진 말이 있다

Rust는 오류 처리를 계층적으로 한다:

  • 무언가 없을 수 있다면 “Option”을 쓴다.
  • 무엇가 잘못될 수 있지만 처리할 수 있다면 “Result”를 쓴다.
  • 무언가 잘못될 수 있고, 처리할 수 없다면 쓰레드 패닉을 일으켜라
  • 무언가 단단히 잘못된다면 프로그램을 종료하라

3. Verse

4. 참고할 글

4.1. Alexis King, Parse, don’t validate.

검증(validate)
맞는지 틀린지 확인만 함
파싱
맞는 데이터는 받아서 “확인한 데이터”로 바꿈. 따라서 확인한 데이터로 추가적인 작업을 할 수 있고, 여기서 2차 검증이 이뤄짐
(no term)
어떻게? 잘못된 상태를 표현할 수 없는 자료구조를 반환하라.
  • 리스트를 받아 중복이 없는 리스트를 반환하기보다
  • 리스트를 받아 중복이 있을 수가 없는 NoDuplicatedList 이런 걸 반환하면 더 좋다

아래 번역글이 번역이 잘 되어 있다:

4.2. Alexis King, No, dynamic type systems are not inherently more open.

  • “정적 타입은 못 하는데, 동적 타입은 할 수 있는 일” 같은 건 없다.
  • 동적 타입 언어를 쓰더라도 중요한 이야기. 위의 같은 저자의 Parse, don’t validate와 일맥하는 이야기
  • 리플렉션이든 외부 데이터는 시스템에서 처리하려면 미리 그 데이터의 구조를 알아야만 한다.
  • 스키마가 없는 게 아니라 명시하지 않은 것 뿐이다.
  • 정적 타입 언어도 모든 스키마를 명시해야 하는 게 아니라, 설계에 따라 그 수준을 바꿀 수 있다.
  • 서동휘, 동적 타입 시스템은 더 개방적인 시스템이 아닙니다.

5. 프로그래밍 언어

6. 함수형 프로그래밍

7. 기타

Author: 안녕

Created: 2024-12-10 Tue 22:08