Для начала коротко расскажу о себе, и как я отнушусь к js.
Если коротко - хуёво отношусь.
Если чуть чуть по длиннее: я сам не фронтендер, но писать фронтенд приходилось. Сейчас у меня в одчинении три фронтендера, и я, кажется, справляюсь
Мой основной стек - .net/C#/F#, и когда я первый раз столкнулся с джаваскриптом, сказать что я охуел - ничего не сказать
Это было ещё в то время, когда вся индустрия не успела привыкнуть к тому, что у нас на передний план вышла технология, качество которой серьезно оспаривается
С тех пор кое-что изменилось, и у нас появился тайпскрипт, который, хоть и несёт в себе детские болезни жс, но является одним из самых мощных инструментов среди мейнстримных ЯП
Получилось так, что когда люди постарались статически типизировать безумие джаваскрипта, они создали ЯП, который может выразить немыслимые вещи, ЯП, на котором удобно и приятно писать. Язык, который на порядок обогнал по возможностям условные джаву и сишарп.
Тайпскрипт настолько крутой, что я, просто ради развлечения, достаточно долго писал на нем пет проекты и всякие библиотечки. До сих пор, когда пишу код на C#, в голове слышен тихий голосок: "а в тайпскрипте эту хуйню можно было бы автомтизировать"
Интересно, что большинство фронтендеров, которых я знаю, не видят мощи этой технологии, херачат повсюду any, используют чистый js, постфактум покрывая его d.ts и всё в таком духе.
Как коты в переноске, они не знают куда их несут, не видят величия мира вокруг себя
Но и бог с ними. Я только хотел сказать, что несмотря на огромное количество вопросов к современному фронтенду, у вас есть вещи, которые стоят того
И пусть код работает медленно, пусть каждая вкладка в браузере выжирает по сто гигабайт оперативы, как минмиум в одном вы обставили всю индустрию. Вы смогли построить язык, который серьезно лучше большинства, и при этом является частью мейнстрима. Это очень, очень хорошо
• • •
Missing some Tweet in this thread? You can try to
force a refresh
На чистом джаваскрипте нельзя делать большие проекты. Только по одной причине - динамическая типизация. Она не подходит для крупных проектов - совершенно не подходит. В этом треде объясню, почему
Если ты юзаешь js док, где описывешь типы, и IDE это подхватывает - это не динамическая типизация, и это окей. Правда не понятно, зачем это делать, если есть тайпскрипт, но бог с ним.
Но если у твоего кода нет статической типизации - всё плохо
Суть статтипизации в том, что разработчик, зная часть правил, по которым работает приложение, записывает их на языке, который понимает компилятор - на языке типов.
Это позволяет машине проверять, соответствует ли кодовая база этим правилам
Для начала хочу поговорить про зарплаты в IT. Российские компании очень часто не хотят платить рыночную цену.
Когда нанимаешь нового человека, у тебя нет выбора, недоплатишь - и он выберет других
Но когда твой сотрудник вырос, и просит больше денег, начинается пидорство
тред
Много лет назад мы с моимм братаном пришли работать в одну галеру за 30к рублей в месяц. С тех пор я поменял десять работ, и вырос по деньгам так, что мне уже просто наплевать, какая у меня будет зп. С тем моим братаном на днях встретились в кофейне. Он всё ещё там. У него зп 70к
Почему так? Всё очень просто. У них, если ты хочешь получить больше денег - тебе нужно сдать внутренние экзамены другим разработчикам. Которые являются акционерами этого бодишопа. Это значит, что их заработок, это то, что было сэкономлено на твоей зарплате
Какая альтернатива тому, чтобы не менять работу каждые 2 года? Всё просто - работайте в крупной организации )
Каждые 2 года — структурный пересмотр отделов. Были в одном — стали в другом.
Управленцы будут постоянно меняться. Топ-менеджеры плохо разбираются в коде, но любят использовать эффективные практики и меняют менеджеров внизу.
Ну кроме тех, кто растет сам или меняет место работы.
TS начинается с файла tsconfig.json, где хранится конфигурация компилятора и проекта. Но ему часто не уделяют должного внимания. Чаще всего он кочует из проекта в проект с минимальными изменениями. Просто потому что "работает". И я делал так же
Но в одном проекте пришлось заняться сборкой более плотно. Возникала потребность разобраться в многочисленных опциях. Вкладка документации по TS была открыта 24/7... И так, первый лайфхак: существует команда tsc --init, которая сгенерирует конфиг с самыми основными опциями
При этом конфиг будет содержать большое множество закомментированных опций с их описанием. Читаем описание опции, если находите её полезной - раскомментируем, если нет- удаляем. Посмотреть, как это выглядит можно здесь: gist.github.com/barinbritva/cf…