https://t.me/nosingularity/261
в чате канала:
1) дефолтные значения параметров не спасут вас от попадания туда undefined. Пример:
const parseString = (str = '') => {console.log(str)};
parseString(undefined);2) возможно, отдельного разговора заслуживает позиция, которая говорит о том, что у функции не должно быть больше 1 параметра. Если это требуется - все параметры необходимо засунуть в объект.
3) parseString(str = '') это не тоже самое, что parseString(val || '')
4) «ide подсвечивает параметры функции». Не любая, не все и не всегда. Кроме того, ide это делает только в процессе написания кода. Когда код написан, уже никто ничего не подсвечивает.
Если уровень понимания кода во время его написания отличается от уровня понимания во время его чтения, такой код называется write only.
Это плохо, тк дебажить и рефакторить такой код становится очень тяжело.
5) типы нужны. причем в наших правилах линтера даже было такое, которе заставляет всегда прописывать тип руками, что фактически запрещает автоматический вывод типов. Это правило вызвало по-началу много ругани, но после пары раз , когда это спасло, дебаты прекратились.
6) типы не спасут от нарушения сервером (фронтом) контракта. Типы для этого не предназначены. От нарушения контракта спасают схемы контрактов и обязательная валидация объектов по этим контрактам. Для json это json-schema. Но так же есть другие форматы, где схема присутвует by design
7) покажи конфиг. Показываю:
https://github.com/acmecryptocorp
Замечу, что создавал и поддерживал этот конфиг отдельный умный разработчик :)
8) js плохой язык. Большенство плохие. Часть при этом еще и скучные. Но с хорошими языками сложная ситуация - вы либо не сможете на них писать, либо не будет желания писать ни на чем, кроме них, а таких вакансий довольно мало.
Бэкам рекомендую посмотреть haskell, фронтам elm.
В далеких планах у меня переезд с flow на go, и хочу замерять скорость перехода.
Буду держать вас в курсе :)