GN⁺ 2024-08-29 | parent | ★ favorite | on: 4-chan Go 프로그래머(dolthub.com)
Hacker News 의견
  • 과학자로서 전문 소프트웨어 엔지니어와 함께 일할 때, 그들이 하는 많은 일이 이해되지 않음

    • 코드 한 줄이 4개의 "인터페이스 함수"를 거쳐 호출되는 것을 본 적이 있음
    • 각 함수는 서로 다른 파일과 폴더에 있어 코드 읽기가 매우 피곤해짐
    • 몇 단계 들어가면 실제로 계산하는 부분에 도달할지 의문이 생김
  • 저조한 노력의 비실질적인 댓글을 남기고 싶음

    • 첫 몇 단락의 밈이 C 프로그래머로서 웃겼음
    • 언어의 이상한 변형을 보는 것을 좋아하며, Go에서 이를 보는 것이 흥미로움
  • C와 그 파생 언어가 지배하던 시절의 오래된 프로그래밍 농담이 여전히 유효함

  • Buena Vista Social Club의 클래식 음악이 떠오름

  • "chan chan Value" 또는 "chan struct{resp chan Value}" 패턴을 특정 상황에서 사용한 적이 있음

    • 메시지 버스를 대신 사용할 수 있었지만, 메시지 버스를 처리해야 하는 상황이 됨
  • 채널의 채널은 일반적인 패턴이며, 보통 구조체 타입의 필드가 채널인 형태로 나타남

    • 요청을 보내고, 작업자가 작업을 완료한 후 결과를 응답 채널에 넣는 방식
    • type request struct { params, reply chan response }와 같은 형태
    • 두 개의 채널이 유용하며, 세 개 이상의 채널은 본 적이 없음
  • 동적 디스패치 메커니즘을 구현하기 위해 채널을 사용하는 반대 의견 블로그

  • Joe Armstrong의 "My favorite Erlang Program"을 떠올리게 함

  • 링크를 클릭했을 때 다른 것을 기대했음

    • Go 프로그래머가 아니어서 농담을 바로 알아차리지 못함
  • LabVIEW 코드에서 비동기 응답 데이터를 받기 위해 유사한 방식 사용

    • 응답을 큐에 덤프하는 대신, 콜백 이벤트 채널을 포함한 메시지를 전달
    • 메모리 낭비가 있지만, 단일 사용 후 응답 시 닫히므로 효율적임