Прим. При первом переписывании (modular.js) получилось сразу сделать в стиле процедурного программирования
Прим. ООП вариант минималистический. Без явной деклараций классов
Прим. mix - смешанный вариант (как бы я обычно писал код)
| Описание | Реализация | Тест |
|---|---|---|
| Оригинал | src/orig.js | test/orig.js |
| Оригинал, но возвращает строку | src/orig_wrap.js | test/orig_wrap.js |
| Процедурное программирование | src/script/modular.js | test/modular.js |
| Функциональное программирование | src/script/modular_fp.js | test/modular_fp.js |
| ООП | src/script/modular_oop.js | test/modular_oop.js |
| mix | src/script/mix.js | test/mix.js |
| N-API | src/script/napi.coffee |
Некоторые ошибки в оригинальном коде в результате рефакторинга остались
- pop последней линии
- 2 пробела в начале каждой строки csv начиная с 2-го рядка
"Надо показать Тимуру что-то интересное"
- Генератор N-API (https://github.com/hu2prod/t2c)
- https://github.com/hu2prod/t2c/blob/main/gen/zz_main.coffee (zz чтобы файл по алфавиту был точно последним)
- Конфигурация полей, типов, форматирования, в одном месте
- (ну а что, Python'у можно писать всё быстрое на C++ (привет numpy), а node.js нельзя?)