На чистом джаваскрипте нельзя делать большие проекты. Только по одной причине - динамическая типизация. Она не подходит для крупных проектов - совершенно не подходит. В этом треде объясню, почему
Если ты юзаешь js док, где описывешь типы, и IDE это подхватывает - это не динамическая типизация, и это окей. Правда не понятно, зачем это делать, если есть тайпскрипт, но бог с ним.
Но если у твоего кода нет статической типизации - всё плохо
Суть статтипизации в том, что разработчик, зная часть правил, по которым работает приложение, записывает их на языке, который понимает компилятор - на языке типов.
Это позволяет машине проверять, соответствует ли кодовая база этим правилам
В больших проектах таких правил - многие десятки тысяч, а иногда и миллионов. При этом, исторически мы можем заметить, чт офишка программистов - постоянно ошибаться. Половина нашей работы - чинить ошибки, свои, и других программистов
Поэтом взять и сказать, что автопроверки нам не нужны. мы не можем. Ещё как нужны! Ведь мы постоянно плодим баги. Поэтому нам нужны и типы, и тесты, и код ревью, и конвенции, и практики по надежному программированию
Даже со всеми этими вещами мы постоянно ошибаемся
Но с ними - на порядок меньше, чем без них. Особенно, если умеешь ими пользоваться.
Кроме предостережения от ошибок, типы помогают другим программистам работать с кодом, который ты написал. IDE умеют показывать по наведению, что вернет функция. При этом типы, в отличие от коментов в коде, проверяются компилятором, а потому сохраняют актуальность
Я, будучи новичком, почти не лез в доку родных библиотек в дотнете - большая часть ответов на мои вопросы, как работает тот или иной класс, содержалась в типах, с которыми он работал.
Один раз нас, целую команду разрабов, бросили на проект, где фронт был на чистом жс и без документации. Первый пуллреквест я отправил через три месяца. Коллеги - ещё позже. Проект был гигантский. Со временем мы перевели большую часть на тайпскрипт
Когда на наше место пришла новая команда, их первый пуллреквест был сделан через неделю. Потому что типы кратно повышают понятность кода.
Причем прикол в том, что если пишешь на чистом джс, типы у тебя тоже есть. В рантайме. А при разработке ты закрываешь глазки, и делаешь вид что их на самом деле нет. А они ведь есть, ты же понимаешь, да? Будут баги. Будет нереально поддерживать.
Кроме читаемости, типы ещё помогают мыслить при проектировании. Когда пишешь код на жс, ты ведь все равно используешь типы, у себя в голове. Потому что описываешь процессы реального мира, где наше сознание тоже выделяет у всего типы.
Но при проектировании на TS ты гораздо четче понимаешь, что ты работаешь в первую очередь с типами. Что типами ты описываешь процессы, типы составляют твою архитектуру, от типов ты пляшешь
Это конечно спорный тейк, но у меня работает именно так.
Менее спорный - типы дают очень широкое пространство для улучшения статического анализа кода. Чем больше компиль понимает про твой код, тем больше потенциальных проблем и улучшений сможет сдетектить
Ещё момент. На основании информации о типах удобно генерить всякие рантайм проверки, которые иначе пришлось бы фигачить руками. Что опять отсылает к генеральной мысли - не надо делать то, что может сделать машиина. Пусть железяки работают, а человеку и отдохнуть не помешает
Что подводит к ещё более важной мысли. Программирование, это конечно хорошо, но гораздо лучше хорошенько отдыхать, наслждаться жизнью и делать что хочется. Работа никуда не денется, забить на неё - всегда отличная идея
• • •
Missing some Tweet in this thread? You can try to
force a refresh
Есть одна тема, на которую мне никогда не надоест говорить. Лайвкодинг на собеседовании.
Это злое зло, которое не должно существовать в принципе - вот моя железобетонная и непоколебимая позиция.
Это достаточно очевидно, но видимо, только мне
поэтому тред
Мы на работе не пишем код под наблюдением и в условиях стресса. Наша работа - думать, и нам очень хорошо платят именно за то, что перед тем, как ебенить код мы обстоятельно думаем.
Писать код быстро и под стрессом - это тоже навык. Но с нашей работой он не связан
Задачки, которые дают на таких собесах - синтетические. По сути, решить их правильно - значит задать сто тысяч уточняющих вопросов - а это тебе сделать никто не даст. При этом, если ты вдруг поймешь неправильно - будет тебе минус.
У меня всегда было много забот. Две дочери, куча работы, ремонт. Душащие амбиции и всё такое.
Моя жизнь стала в разы проще, когда я понял, что я охренеть какой лентяй, и меняться - не хочу
В целом это все, что нужно знать про хороший ворклайф бэланс
Культ трудоголизма в индустрии, культ псевдотрудоголизма - когда разрабы врут друг другу, что все свободные вечера тратят на изучение новых технологий - должен умереть
Я жил в таких условиях несколько лет, когда херачишь как собака, забиваешь прораммированием всю жизнь
Это гребаный путь в никуда. Я вырос, поумнел, и послал все к черту.
Но многие - нет. Сами страдают, других тоже учат страдать. А кто не слушается - того стравливают, высмеивают и унижают.
Типа, вот мы выжигаем свою жиззнь ради разработки, а ты кайфуешь - ублюдок
Сегодня хочу поговорить про удаленку. Я на удаленке уже лет пять, и представить себе не могу, чтобы это изменилось
Пандемия заставила всех перети на удаленку, но многи сейчас потихонечку пытаются отыграть всё обратно
Я считаю, что нужно отстаивать свое право работать из дома
Вот работал ты такой в офисе, менеджеры и слышать ничего не хотели про ремоут, ведь: "в нашей компании на первом месте - командная работа, мы не готовы на эксперименты, вредящие производительности"
А потом все стали работать из дома, и никто не умер, ничего не просело
И какие у них остались аргументы? Тут очевидный конфликт интересов. Разработчикам лучше всего, когда офис есть, но визиты туда - опциональные.
А менеджмент, патологически стремящийся к контролю, хочет видеть своих рабов как на ладони
Для начала хочу поговорить про зарплаты в IT. Российские компании очень часто не хотят платить рыночную цену.
Когда нанимаешь нового человека, у тебя нет выбора, недоплатишь - и он выберет других
Но когда твой сотрудник вырос, и просит больше денег, начинается пидорство
тред
Много лет назад мы с моимм братаном пришли работать в одну галеру за 30к рублей в месяц. С тех пор я поменял десять работ, и вырос по деньгам так, что мне уже просто наплевать, какая у меня будет зп. С тем моим братаном на днях встретились в кофейне. Он всё ещё там. У него зп 70к
Почему так? Всё очень просто. У них, если ты хочешь получить больше денег - тебе нужно сдать внутренние экзамены другим разработчикам. Которые являются акционерами этого бодишопа. Это значит, что их заработок, это то, что было сэкономлено на твоей зарплате
Для начала коротко расскажу о себе, и как я отнушусь к js.
Если коротко - хуёво отношусь.
Если чуть чуть по длиннее: я сам не фронтендер, но писать фронтенд приходилось. Сейчас у меня в одчинении три фронтендера, и я, кажется, справляюсь
Мой основной стек - .net/C#/F#, и когда я первый раз столкнулся с джаваскриптом, сказать что я охуел - ничего не сказать
Это было ещё в то время, когда вся индустрия не успела привыкнуть к тому, что у нас на передний план вышла технология, качество которой серьезно оспаривается