프로그래머 생산성의 함정

진부한 이야기입니다.

쓰리래빗츠 북의 <통계 | 문서 통계> 메뉴에서 문서에 있는 단어와 숫자를 보여줍니다. 그리고 엑셀에서 분석할 수 있도록 1클립보드로 복사하는 기능도 있습니다.

그런데 단어 수가 매우 많을 때는 웹 브라우저가 멈추고 동작하지 않는 문제가 있습니다. 짧은 코드의 유혹에 빠져 문자열 결합을 세심하게 처리하지 않았기 때문입니다.

기존 코드는 다음과 같습니다.

const text = ul.querySelectorAll('li').reduce((a, b) => a + b.textContent + '\n', '');

다음과 같이 수정했습니다.

const values = new Array();
ul.querySelectorAll('li').forEach(li => values.push(li.textContent));
const text = values.join('\n');

1월 말 릴리스 예정인 쓰리래빗츠 북 4.0.13 버전에 바뀐 코드를 적용할 예정입니다.