Костя
Дима
У нас тут технологическая сингулярность вовсю)) Релятивистские скорости прогресса и всё такое
Костя
ваниль шредингера?
Konstantin
обмазаться ванилью
Oleg
ваниль шредингера?
Это когда устраиваешься в "активно развивающуюся компанию с дружным коллективом" и ещё не видел их код
Дима
Дима
Тру стори
Костя
Дима
У меня прям каеф был недавно, когда смог выпилить лютую тонну костылей и олдовых подходов из довольно большого проекта в автоматическом режиме
Дима
Выпилил весь лодаш кодмодами, переписал бинды на class properties ну и так далее
Дима
Vyacheslav
Alex
Дима
Автоматическом? Расскажешь?
eslint-prettier с кастомным строгим конфигом — заменил var/let на const, function на стрелки, ну в общем всё что может eslint
кодмоды — codemods, способ запрепроцессить весь проект по определенному алгоритму
Фейсбук любит экономить деньги и поэтому мигрирует так всю свою кодовую базу
Дима
База — https://github.com/facebook/jscodeshift
Дима
Кодмоды
https://github.com/cpojer/js-codemod/
https://github.com/reactjs/react-codemod/tree/master/transforms
Alex
Зачем менять var/let на const?
Дима
Дима
const везде по умолчанию — это единственный нормальный способ
Alex
Где-то на задворках сознания лежит инфа, что константы - это не круто
Дима
Задворки надо проветривать)
Alex
Объективно почему const?
Дима
Это не константы а константные ссылки, это значит что никто нечаянно не перепишет эту переменную. То есть, разумеется регулярно встречаются случаи когда нужно делать let, и тогда мы сразу видим, что эта переменная будет меняться и с ней надо быть внимательнее
Oleg
Это ФП просто
Дима
То есть просто нет смысла писать let/var если ты объявляешь переменную один раз. И в 90% кода будет на самом деле именно так
Дима
Не
Дима
Фп это иммутабельность, а я сейчас не про нее
Oleg
А, в этом смысле, тогда да
Vyacheslav
Alex
В чем разница между константами и константными ссылками?
Lev
Var deprecated
Дима
Дима
Константная ссылка — это когда мы просто не можем подменить один объект другим
Дима
А константа — когда вообще не можем менять объект
Alex
Я примерно так и подумал
Vyacheslav
Konstantin
ну как какая связь
Konstantin
бабель же позволяет все эти современные херни использовать
Lev
Да нету её, там тупо используется последняя версии es
Lev
А es хочет убрать var
Дима
Комитет, разрабатывающий стандарт js не может себе позволить быть безответственным и поломать миллиарды (без преувеличения) сайтов
Дима
Поэтому var с нами надолго, просто можно его не использовать
Дима
Критичный к производительности код (десятки тысяч вызовов в секунду) у меня транспилится в var, и это нормально, потому что я об этом var могу не думать вообще, а писать в нормальном современном стиле)
Vyacheslav
Ломать не обязательно, они могут порекомендовать не использовать, deprecated != не рабочий
Дима
Там довольно изящный способ сделан для gracefull deprecation)
Дима
Например MooTools пишет в прототип Array переменную keys
Дима
Сейчас у нас это, как мы знаем, функция
Дима
Не сломано ни то, ни другое
javascript — ето питон, который смог
Lev
let лучше var и var его не заменит
alex
var var var
Oleg
var/
Oleg
Лет и конст это когда ты точнее говоришь что ты хочешь
Дима
Oleg
Вар это когда путешествие через уровни вложенности
Дима
Danil Á.
Oleg
var let = 'const'
Дима
Ладно, я просто var с русской a написал)
Danil Á.
Oleg
А с лет - работает
Danil Á.
безумие
Oleg
И переопределяет
Дима
mad js
Lev
Путешествие let, объявление более на высоком уровне
Oleg
Можно убить весь входящий код переопределив ключевое слово, да
Danil Á.
в скоупе функций и undefined переопределить можно
Oleg
Lev
class BaseClass
{
static init()
{
return new this();
}
static get value(){ return 'Base'; }
constructor()
{
this.val=this.constructor.value;
}
}
class SecondClass extends BaseClass
{
static get value(){ return 'Second'; }
constructor()
{
super();
}
}
const ts=SecondClass.init();
console.log(ts.constructor.name); // SecondClass
console.log(ts.val); // Second
Ответ на мой вопрос
Oleg
Oleg
Дима
Lev
Почему?
Oleg
const тоже
Дима
Есть нормальные предопределенные языком способы, бессмысленно делать из js пхп
Oleg
Lev
Не, надо тип классов организовать для crud