자바스크립트 같은 자주쓰이는 언어에서
비동기 IO 강제같은 제약사항이 있는데 순차처리가
필요함 개발자 니마 근데 코드 퀄리티는 봄
이러면 미칠거 같은데 해결방법으로는
1. 스파게티 코드 같지만 허용하도록 설득한다.
유지보수 할때 애로사항이 문제임
2. 프로미스 패턴으로 떡칠한다
프로미스 객체 생성하고, 성공 실패 콜백을 부르는데서 프로 불편러 됨
3. 코루틴 개념 도입
편한데 지원 안하면 말짱 꽝
애초에 리스프 같이 콜백을 아름답게 표현하지 못하는게 문제 아니냐
리습에선 자바스크립트랑 어떻게 다르길래 저게 우아하게 표현되나여
결국엔 컨티뉴에이션 패싱을 써야하는데
근데 성공 실패 가르는건 또 다른 패턴이지 비동기 자체의 문제가 아닌거같음 분리할 수 있지않음?
트라이 캐치 결과도 다음 체인이 떠맡아야 하는데 그나마 다행인게 실패를 무시하게 만들 순 있음
사실 예외처리도 프로미스처럼 체이닝으로 바꿀 수 있음
Option(callback)하고 콜백에서 익셉션뜨면 받아서 catch로 던지고 안뜨면 then으로 던지고
구현하기 나름이지 내장객체가 부실하다고 언어가 구린건 아닌듯
리스프는 콜백 구조가 괄호만 써서 묶는거라 스파게티 냄새가 심하진 않음. 단지 괄호 지옥이 싫다는 개발자들이 많지
근데 그건 리습 표현식이 여러줄로 되있어도 결국엔 표현식이 하나라서 가능한건데
JS도 (param) => express 극단적으로 사용하면 리습이랑 다를게없던데
지금은 브라우저나 노드에서 화살표 함수 코루틴 다 지원하니 문제될 게 없지 ㅇ
가면 갈수록 언어가 간결해지고 핵심만 남는데 신기하게도 결국엔 리습이랑 비슷해지고있음