Вадим Егоров: javascript (и ts тоже) тем и замечателен, что с ним можно работать, придерживаясь как императивного подхода, так и функционального. При этом не существует каких-то особых паттернов, применительных исключительно к JS. Книга за авторством банды четырех актуальна в любом языке =)
Вадим Егоров: в контексте сервера, разумеется, могут применяться отличные подходы, хотя бы потому что сервер запущен постоянно, а клиентский код - только пока открыта страница (если на время забыть про сервис-воркеры). Но вы же спрашиваете не про отличия клиента от сервера, вы спрашиваете про отличия в работе с TS на клиенте и сервере. И таких отличий нет.
JSDoc имеет смысл, если, к примеру планируется автогенерация документации к коду или просто нужна какая-то понятная система комментирования кода. В таких случаях JSDoc незаменим. Использовать JSDoc только для описания интерфейсов - оверхед, а в TS еще и бессмысленно чуть более, чем полностью.
Ваш last не равнозначно заменяется на pop, потому что pop мутирует исходный массив (собственно, удаляет из него последний элемент). Last - это нормальная функция, но не в прототипе, а сама по себе:
const last = <T>(arr: T[]): T => arr[arr.length - 1]
.
Вы деструктурируете массив, как объект. А нужно как массив: let [key, val = null] = arg.split('=')
1. Нет никаких особенностей в работе TS с Node.js. Хороший код - он везде хороший, что в ноде, что на клиенте. Плохой тоже.
2. Классы ради классов. Зачем?
3. Зачем JSDoc, если есть интерфейсы?
4. Никогда, никогда не расширяйте нативные интерфейсы.
5. "про веб знаю достаточно" - достаточно для чего?
6. let {0: key, 1: val = null} = arg.split('=', 2); - Оригинально. Почитайте про деструктуризацию массивов.
Какие-то вообще ортогональные друг другу вещи вы назвали. Redux - хранилище состояния, RxJS - утилиты для ФРП, эти две библиотеки никак не конкурируют и прекрасно уживаются вместе.
> За канал отвечает сервер. Сервер слушает порт, браузер подключается к серверу и тупо ждет пока сервер что-нибудь пришлет. Сервер может периодически отправлять пустые сообщения, на которые клиент должен отвечать для поддержания соединения активным. Поэтому у сервера может быть много открытых соединенией.
Что за бред? =)
Роман Ахмадуллин: >Как-будто самое сложное в программировании - это перейти к нужной строке и подвинуть её в какое-то место..
Браво. Высечь в камне эти слова =)
romy4: я без тени стыда могу признаться, у меня нет ни дня "боевой" врачебной практики. И что? Напомню один из базовых принципов доказательной медицины: "Личный опыт ничего не значит". Напомню и другой, уже универсальный: "После - не значит вследствие". Моих знаний, в частности - курса гигиены труда, например, - достаточно для того, чтобы понимать, что ничтожное излучение от клавиатуры, которое в десятки, если не в сотни раз меньше, чем излучение от, к примеру, мобильных телефонов, никак не может вызывать онкологические заболевания. Ну никак.