3772

JS-разработчики подешевле будут

JS-разработчики подешевле будут

IT-юмор

7.5K постов53.3K подписчиков

Правила сообщества

Не публикуем посты:
1) с большим количеством мата
2) с просьбами о помощи
3) не относящиеся к IT-юмору

Вы смотрите срез комментариев. Показать все
561
Автор поста оценил этот комментарий

От судьбы не уйдешь

Иллюстрация к комментарию
раскрыть ветку (156)
166
Я какашечка
Автор поста оценил этот комментарий
Не всех берут в проститутки :(
раскрыть ветку (16)
273
Что это?
Автор поста оценил этот комментарий

Завалился на собеседовании?)

раскрыть ветку (7)
79
Автор поста оценил этот комментарий
Тестовое задание.
45
Автор поста оценил этот комментарий
Завалил тест на ораторское искусство.
18
кискадер
Автор поста оценил этот комментарий

на кожаный диван...

раскрыть ветку (1)
5
Автор поста оценил этот комментарий

кожаный клык =)

3
DELETED
Автор поста оценил этот комментарий
Заебался
1
Автор поста оценил этот комментарий

FakeDev?

0
Автор поста оценил этот комментарий
Это называется кастинг)
7
Автор поста оценил этот комментарий
С членом не берут? 😂
раскрыть ветку (3)
7
Автор поста оценил этот комментарий

Так даже лучше

2
Автор поста оценил этот комментарий
Берут
раскрыть ветку (1)
0
Автор поста оценил этот комментарий
И по чем в час?
0
Автор поста оценил этот комментарий
Не переживай. В следующей инкарнации возьмут, ежик
0
Автор поста оценил этот комментарий
Михалч - заканчивай уже!
0
Автор поста оценил этот комментарий

Сейчас 2021 на дворе, сходи в больничку, думаю там помогут с этим вопросом 👍

0
Автор поста оценил этот комментарий
С некоторыми и за бесплатно не трахаются
113
Автор поста оценил этот комментарий
Иллюстрация к комментарию
раскрыть ветку (5)
18
Ted Dele
Автор поста оценил этот комментарий
Вебсарвар
раскрыть ветку (1)
1
Автор поста оценил этот комментарий
Аппликащон сарвар
2
Автор поста оценил этот комментарий
А сам курс у Хирьянова очень хороший кстати)
а картинка прифотошоплена
раскрыть ветку (1)
0
Автор поста оценил этот комментарий
После песни про матрёшку я у Хирьянова мало чему был бы удивлен
0
Автор поста оценил этот комментарий
🤣
27
Автор поста оценил этот комментарий
Иллюстрация к комментарию
23
Автор поста оценил этот комментарий
Зачем я на ссылку в скриншоте нажал? 🤦🏻‍♂️
раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Захотел баг пофиксить

17
Автор поста оценил этот комментарий
Я так питон начал учить. Кто знает? С начала суток прошло 320 мин. Программа должны выдать число часов и минут.
раскрыть ветку (43)
34
Автор поста оценил этот комментарий

Дели без остатка на 60 - это часы. Остаток - минуты)

раскрыть ветку (2)
6
Автор поста оценил этот комментарий
Спасибо!
раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Если что, time // 60 для деления без остатка, и ответ в инте остаётся

0
DELETED
Автор поста оценил этот комментарий
Библиотека datetime на будущее
раскрыть ветку (16)
7
Автор поста оценил этот комментарий

Вот такие пользователи библиотек, потом из 2 чисел не могут найти бОльшее, без метода max.

раскрыть ветку (15)
3
Комментарий дня
Автор поста оценил этот комментарий

Так-то изобретать велосипед обычно в программировании - плохой тон

раскрыть ветку (12)
0
Автор поста оценил этот комментарий

Базара нет. Но задача выше дана чуваку для развития мышления, а не применения либы.

раскрыть ветку (11)
1
Автор поста оценил этот комментарий

Тут главное - определиться. Он учится кодить на питоне, чтобы потом фигачить в продакшн (тогда нужно учиться юзать либы) или просто "для развития мышления"?

раскрыть ветку (10)
1
Автор поста оценил этот комментарий

Путь в тупик, рано или поздно попадешь в ситуацию, когда нужно понимать как это работает уровнем ниже. Лучше понять это рано, чем поздно. В приличных конторах без понимания алгоритмов и умения выбора оптимальных решений к продакшну не пустят.

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Так ему никто не посоветовал заюзать либу DateTime и заглянуть в её код. Ему предложили велосипед, оправдываясь "развитием мышления". Он запомнит, что это и есть решение подобной задачи. А потом мы с тобой будем выгребать из продакшена такие пизанские башни.. Которые а) не покрывают несколько важных случаев, б) написаны неподдерживаемо.

В приличных конторах без понимания алгоритмов и умения выбора оптимальных решений к продакшну не пустят.

Я вас умоляю. Сколько этих контор в % от рынка труда? Крохи. Да и зачем учить решать задачу неправильно, чтобы потом в приличной конторе его переучивали?

0
Автор поста оценил этот комментарий

Впрочем, я лично такой подход production разработчиков полностью поддерживаю. Хоть и невозможно без слез смотреть как очередной мастер сохранил выборку всей таблицы из бд в массив и вытаскивает оттуда данные, пробегая по ним в цикле. Зато я понимаю, что конкуренции на рынке не предвидится.

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Это же пример человека, делающего велосипед, вместо использования функций СУБД. В этом смысле - да, соглашусь. А то в нашей отрасли старым программистом быть сложнее, чем молодым :)

0
Автор поста оценил этот комментарий

Чтобы нормально фигачить продакшн, нужно сначала развить мышление.

раскрыть ветку (5)
Автор поста оценил этот комментарий

Оно в школе/универе развивается.

С начала суток прошло 320 мин. Программа должны выдать число часов и минут.

Да эта задача и есть уровня 4 класса обычной школы. Если у человека настолько не развито мышление, в программисты ему рано/противопоказано.

раскрыть ветку (4)
2
Автор поста оценил этот комментарий

Оно в школе/универе развивается.

Все, если не там, то больше нельзя нигде?)

раскрыть ветку (3)
1
Автор поста оценил этот комментарий

Ага, жизнь потеряна, придется ждать новой.

раскрыть ветку (2)
0
DELETED
Автор поста оценил этот комментарий
А как пользование библиотек к сравнению относится?🤔
Да, можно два дня писать код, вместо того, чтобы просто использовать библиотеку... Если ты с ней работать будешь регулярно, то тебе придётся узнать, как оно под капотом работает
раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Тут не тот случай. Парень (или дама) скидывает свое задание с курсов, где нужно посчитать сколько часов и минут в 320 минутах.

Самое время юзать библиотеку! Да?

В итоге вырастет очередная кодящая макака, которая впадает в ступор от любой сколь нибудь нетривиальной задачи.

ещё комментарии
5
Автор поста оценил этот комментарий
Там серьезно такая неразбериха ?
раскрыть ветку (79)
80
Автор поста оценил этот комментарий
Иллюстрация к комментарию
раскрыть ветку (28)
31
Автор поста оценил этот комментарий

Если вдруг кто не видел классику - https://www.destroyallsoftware.com/talks/wat

Enough about languages that suck. Let's talk about JavaScript!
раскрыть ветку (1)
4
Автор поста оценил этот комментарий
Иллюстрация к комментарию
11
Автор поста оценил этот комментарий

Уж как я не люблю Js но тут же все логично и понятно, если хоть чуть чуть знаком с языком.

раскрыть ветку (15)
7
Автор поста оценил этот комментарий

Объясните логику сложения пустого массива с пустым объектом и почему такое выражение вопреки математике некоммутативно?

Иллюстрация к комментарию
раскрыть ветку (10)
4
Автор поста оценил этот комментарий
Время ночь, полез проверять с телефона. У меня другие результаты
Иллюстрация к комментарию
Иллюстрация к комментарию
раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Попробуйте написать print(typeof ({} + []))

3
Автор поста оценил этот комментарий

я не знаком с js вообще, но видимо потому что массив ([]) имеет свой оператор + (который видимо имеет смысл добавить элемент в массив). и пустой объект({})) имеет дефолтную реализацию оператора +.
т.е. это 2 разных оператора, а не один и тот же.

раскрыть ветку (2)
2
Автор поста оценил этот комментарий

Не, вообще не так, просто специфика преобразования типов. Просто в данном случае ( [] + {} ) массив, т.к. не подразумевает сложение будет преобразован в строку, а т.к. теперь мы прибавляем к строке объект будет тоже преобразован в строку.
Итого мы получим пустую строку + строку [object Object]

0
Автор поста оценил этот комментарий

Там все немного тупее про приведение типов. Но все равно это это не объяснение такой "логичности".

0
Автор поста оценил этот комментарий

первый уже разъяснили #comment_190887894

Ну со вторым все ясно унарный + приводит пустой массив к числовому значению 0.

0
Автор поста оценил этот комментарий
Зачем такое может понадобиться?
раскрыть ветку (3)
0
Автор поста оценил этот комментарий

Как и всегда - трудноуловимые баги, от которых рантайм не особо-то пытается спасти программиста.

раскрыть ветку (2)
0
Автор поста оценил этот комментарий

то есть сделать это [] + {} нужно для создания трудноуловимого бага? Понятно...

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Ну вообще да, в JS этого вполне достаточно) А как оно будет создано - втупую руками или багом проберется через много слоев абстракии - это уже не особо важно.

3
Автор поста оценил этот комментарий

Я знал что придет кто-то и скажет: тут же все логично

Автор поста оценил этот комментарий

тут же все логично
'5' - x + x ??

раскрыть ветку (2)
0
Автор поста оценил этот комментарий

Ну да, а что не логичного? '5' это строка, x это число => -x+x=-3+3 => 5

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Наверно посмотрел сперва на '5' + x - x а потом на 5 тремя строками ниже, х.з.

6
Автор поста оценил этот комментарий
Бардак
раскрыть ветку (6)
17
Автор поста оценил этот комментарий

на самом деле не нужно так делать и все будет ок

раскрыть ветку (5)
10
Автор поста оценил этот комментарий

Правильно! Нужно всегда писать код без багов и без тормозов! И жалетельно побыстрее

14
Автор поста оценил этот комментарий
писать на js? :)
раскрыть ветку (3)
18
Автор поста оценил этот комментарий

складывать числа и строки

3
Автор поста оценил этот комментарий

Писать на языке с динамической типизацией)

раскрыть ветку (1)
0
Автор поста оценил этот комментарий
Иллюстрация к комментарию
0
Автор поста оценил этот комментарий

Я просто положу то, что я только что из консоли php скопировал:
php > echo print 3*1;

31

раскрыть ветку (2)
0
Комментарий дня
Автор поста оценил этот комментарий

Ну тут, кстати, все логично. Сначала выполняется 3*1, получается 3, потом выполняется print 3, выводится на экран 3 и возвращается код 1, а потом выполняется echo 1, то есть выводится на экран 1, в итоге на экране 31

Автор поста оценил этот комментарий

Кхм, а на кой хер вы это в консоль писали?

25
Автор поста оценил этот комментарий

на самом деле всё вполне нормально и имеет свои обоснования как и почему что-то работает, например проблема с картинки это проблема с динамической типизацией и эта проблема присуща не только JS, но и почти всем языкам с ДТ.

раскрыть ветку (45)
9
Автор поста оценил этот комментарий

php более адекватно приводит переменные к одному типу при сложении, python при попытке сложить строку и число выдаст TypeError, но это всё языки с ДТ

раскрыть ветку (11)
8
Автор поста оценил этот комментарий

В PHP разделили операторы сложения и конкатенации, что избавило от большей части указанных проблем

раскрыть ветку (6)
9
Автор поста оценил этот комментарий

В питоне не разделяли и тоже норм. Самый ад из-за неявного преобразования типов там, где его не следовало бы позволять.
А всё почему? Потому что кто-то когда-то придумал, что исключение - это хуже чем некорректно работающая программа. Ага. Гениально.

раскрыть ветку (5)
0
Автор поста оценил этот комментарий

Просто нужно понимать что касты в жабаскрипте почти всегда в строки кастуют, потому нужно быть морально к этому готовым

А еще не писать на жабаскрипте, а писать хотяб на TS

раскрыть ветку (4)
0
Автор поста оценил этот комментарий

На счет TS, конечно, согласен, но вот это вот "почти"... оно всё и портит.

раскрыть ветку (3)
0
Автор поста оценил этот комментарий

Ну там может каст в число быть, если оно возможно, но все же лучше тогда уже явно делать касты, ну или не пользоваться этим без необходимости. На ноде той же только тайпуха.

раскрыть ветку (2)
0
Автор поста оценил этот комментарий

Да всё правильно, если этим еще и пользоваться. то вообще "привет"! Но вопрос-то не в том. Это как раскидать по столовой ложки дырявые и стулья с пиками точеными, ну и в ыпоняли, и говорить потом. что, мол,вы ими не пользуйтесь, ерите еду и идите на крыльце поешьте, там и воздух свежий и скамейки и в целом как-то поуютнее. Претензия не к языку в целом. а к его рудиментам, от которых одна боль что тогда, что сейчас.

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Ну выйти на крыльцо - хоть какой-то вариант, который спасает, особенно когда проект через пол года надо допиливать

0
Автор поста оценил этот комментарий

php>echo print 1+1;

21

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

echo print зачем ты делаешь?

Автор поста оценил этот комментарий

$x = 3 + "15%" + "$25";

echo $x;

Ага, более адекватно...

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

А какой результат тут ожидался? Чисто логически тут хрень получается. 15% он привел к числу, потому что первым знаком цифра, $25 не привёл и посчитал за 0, итого: 3 + 15 + 0. Ещё и варнинг выдал, что вы чего-то странного хотите.

6
Автор поста оценил этот комментарий
имеет свои обоснования
"Ну так помнлучилось исторически, читайте спеку, вы просто ленивые и не хотите глубоко изучить свой инструмент!!1"


это проблема с динамической типизацией и эта проблема присуща не только JS, но и почти всем языкам с ДТ.

Картинка про слабую типизацию, что ортогонально динамичности. Подобным страдают статически типизированные С/С++, в то же время Python - строг, даже будучи динамическим языком.

раскрыть ветку (13)
1
Автор поста оценил этот комментарий

А в чем строгость?

Поведение с картинки реализуемо где угодно?

Определи в питоне __neg__ от строки как int и доопредели в __add__(x) приведение x к типу this и получишь ту же чехарду с картинки.

На мой взгляд вся чехарда никак не связана с реальными проблемами.

Это как сломать мозг студенту ко/контр-инвариантностью когда в реале шансы на то что ему это понадобится примерно такие же как то что он придумает своя яп.

раскрыть ветку (12)
2
Автор поста оценил этот комментарий

Определи в питоне __neg__ от строки как int и доопредели в __add__(x) приведение x к типу this

Чувствуете, сколько придется сделать, чтобы поиметь проблем? В JS это из коробки. Это разница между гибкостью и плохим дизайном.

раскрыть ветку (6)
3
Автор поста оценил этот комментарий

Нет. Чтобы поиметь проблем нужно написать такое использование без понимания результата. На питоне ты везде получишь typeerror.

То есть нельзя просто бездумно написать что-то и ждать правильного ответ.

И там и там проблему придется отлавливать и появится она только в рантайме.

Суть в том что правила чтобы понимать результат довольно примитивны и описать их можно в трех строчках, но главное в том что они не нужны - у тебя все равно потребуют складывать числа с числами а строки со строками не важно приведет ли код к typeerr, к логической ошибке или вообще выполняется идеально.

раскрыть ветку (5)
3
Автор поста оценил этот комментарий

Нет.

Чтобы поиметь проблем нужно написать такое

Чему же вы противоречите?)


И там и там проблему придется отлавливать и появится она только в рантайме.

В одном случае ошибка будет, в другой - нет (она может отправиться в увлекательное путешествие, поломать немало данных по пути и не факт, что вообще что-нибудь явно упадёт). Рантаймовые ошибки - всегда зло, но падение как можно раньше - это меньшее из них.


Суть в том что правила чтобы понимать результат довольно примитивны и описать их можно в трех строчках, но главное в том что они не нужны - у тебя все равно потребуют складывать числа с числами а строки со строками не важно приведет ли код к typeerr, к логической ошибке или вообще выполняется идеально

Если я правильно понял, речь о том что никто в здравом уме не будет складывать числа со строками в явном виде. ОК. Но как насчет 100500 слоёв абстракции и какого-нибудь JSON, где вместо числа пришла строка? Это может легко произойти на практике, а отлаживать "дрейфующие" ошибки в больших кодовых базах очень трудозатратно.


В Python другие дефолты, поэтому круг возможных проблем сужается до узкого круга мест, где программист в явном виде разрешил (и должным образом обработал) это безобразие.

раскрыть ветку (4)
0
Автор поста оценил этот комментарий

Так же блин как и в питоне или любом другом языке - Если какой-то модуль тебе может выдать и строку и число описывай оба случая или явно сведи один к другому.

Просто проблема сама ничтожная.

А то что в питоне ошибка явная, так она все равно может раз в год вылезать плюс ошибки питнона это модно и ваша ошибка тоже может уйти гулять куда-то по try-except

раскрыть ветку (3)
2
Автор поста оценил этот комментарий

А то что в питоне ошибка явная, так она все равно может раз в год вылезать

Не может. Если интерпретатор на нее наткнется, то сразу и вылетит.


Если какой-то модуль тебе может выдать и строку и число описывай оба случая или явно сведи один к другому.

Вы отталкиваетесь от того, что уже знаете причину, не замечая слона в комнате - время и силы на ее поиск.


и ваша ошибка тоже может уйти гулять куда-то по try-except

1. Она уйдет только туда, куда программист захотел

2. Там будет стек-трейс, который укажет на точку возникновения с точностью до оператора, где бы она ни всплыла.

раскрыть ветку (2)
0
Автор поста оценил этот комментарий

Смотри.

Ошибка возникла не потому что js плохой. А потому что код

x = a + b;  - неправильный если ты не уверен что a и b того типа который ты думаешь.

Он неправильный и в js и в питоне. Просто в питоне он вылетает с ошибкой а в js он делает не то что ты хотел.

Если ты думал что a и b целые, но и a и b оказались строками то и питон не увидит проблемы.

То есть ты должен сразу так не делать. Либо ты уверен в том откуда у тебя взялось значение либо тебе нужно его обработать. Оно так везде. Это существенная часть программирования.

раскрыть ветку (1)
0
DELETED
Автор поста оценил этот комментарий

Определи в питоне __neg__ от строки как int и доопредели в __add__(x)
Ну раз пошла такая пьянка, то давайте уж вспомним про перегрузку операторов в C++. Чоб нет то?

раскрыть ветку (4)
3
Автор поста оценил этот комментарий

У плюсов и без этого есть о чем поговорить:

- указатели неявно приводятся к булам и наоборот,

- std::initilizer_list с перегрузками конструкторов дает впечатляющие спец.эффекты,

- препроцессор уже хоть и маргинализирован у модных-молодежных, но все равно добавляет магичности.

раскрыть ветку (3)
0
Автор поста оценил этот комментарий

указатели неявно приводятся к булам и наоборот
а в чем проблема?


std::initilizer_list с перегрузками конструкторов дает впечатляющие спец.эффекты
а можно поподробнее. а то я пишу на С или старых плюсах, а на новинки только облизываюсь.

препроцессор уже хоть и маргинализирован у модных-молодежных, но все равно добавляет магичности.
испортить себе жизнь можно абсолютно любым инструментом если он в кривых руках. но в плюсах вроде констэкспрешенны, темплейты и перегрузка покрывают подавляющую часть того где юзался препроцессор.

раскрыть ветку (2)
0
Автор поста оценил этот комментарий

а в чем проблема?

Семантически несовместимые типы свободно конвертируются друг в друга. Учитывая вывод типов, это может приводить трудноуловимым последствиям. Например, в плюсах примерно затем придумали nullptr_t, чтобы хоть как-то при перегрузках отличать интегральные типы от нулевого указателя.


а можно поподробнее

В плюсах можно конструировать объекты с помощью синтаксиса круглых скобок и фигурных. У обоих способов есть свои плюсы и минусы, но если есть хоть одна прегрузка с initializer_list, то компилятор будет всеми правдами и неправдами трактовать вызов фигурных скобок в его пользу. Это особенно неприятно для шаблонного кода.

Подробнее можно почитать у Мейерса в "Эффективном и современном С++".


испортить себе жизнь можно абсолютно любым инструментом если он в кривых руках.

Безусловно. Но стоит исходить из того, что код пишут не всегда гики, которым в кайф ползать по спеке, а зачастую - индусы (всех национальностей). И чем меньше wtf/sec у технологии, тем лучше.

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Например, в плюсах примерно затем придумали nullptr_t, чтобы хоть как-то при перегрузках отличать интегральные типы от нулевого указателя.
насколько я понимаю, чтобы отличать нулевой указатель от указателя на другой объект. целый тип не кастится неявно к типу указателя:

6.3.1.8 Usual arithmetic conversions

1 Many operators that expect operands of arithmetic type cause conversions and yield result

types in a similar way. The purpose is to determine a common real type for the operands

and result. For the specified operands, each operand is converted, without change of type

domain, to a type whose corresponding real type is the common real type. Unless

explicitly stated otherwise, the common real type is also the corresponding real type of

the result, whose type domain is the type domain of the operands if they are the same,

and complex otherwise. This pattern is called the usual arithmetic conversions:

т.е. неявно _Bool к указателю скастить не получится. а вот указатель к _Bool - без проблем и логика в этом преобразовании одинаковая для всех целочисленных типов:

6.3.1.2 Boolean type
1 When any scalar value is converted to _Bool, the result is 0 if the value compares equal
to 0; otherwise, the result is 1.
6.3.2.3 Pointers
3 An integer constant expression with the value 0, or such an expression cast to type
void *, is called a null pointer constant.
55) If a null pointer constant is converted to a
pointer type, the resulting pointer, called a null pointer, is guaranteed to compare unequal
to a pointer to any object or function

при том это интуитивно понятно (имхо). не вижу никаких проблем.
если есть хоть одна прегрузка с initializer_list, то компилятор будет всеми правдами и неправдами трактовать вызов фигурных скобок в его пользу
т.е. код типа A a{1, 2, 3}. если у класса A есть конструктор с std::initializer_list, то это будет его вызов даже не смотря на наличие конструктора принимающего 3 инта, верно? Ладно, пожалуй стоит почитать майерса, а то я слишком слабо знаком с этим чтобы увидеть тут какую-то беду.
1
Автор поста оценил этот комментарий

все же беда не только в динамической типизации, а в том, что у JS она одновременно динамическая, слабая и неявная. Отсюда и возникает слишком много магических преобразований.

1
DELETED
Автор поста оценил этот комментарий

динамическая типизация , а так же что "+" - это как оператор сложения так и оператор для конкатенации строк

раскрыть ветку (16)
2
Автор поста оценил этот комментарий

Почему у динамического питона нет таких проблем? https://ideone.com/0Uzl7Z

раскрыть ветку (15)
4
Автор поста оценил этот комментарий

Потому что помимо классификации статической/динамической есть понятие сильной/слабой типизацией. Питон относится к сильно типизированным языкам, где нет неявного приведения типов. И это круто как по мне.

1
DELETED
Автор поста оценил этот комментарий

Потому что для джс, на момент его появления, главное было выполнится не смотря ни на что (тк юзался он для "оживления фронта", и был чем тр вроде доп. фишкой для css), сейчас, когда логика на фронте довольно сложна такое поведение является проблемой, поэтому и  используются всякие Typescript и ему подобные

раскрыть ветку (13)
Автор поста оценил этот комментарий

поэтому и используются всякие Typescript

Которые все равно слабую типизацию не делают сильной. Равно как и тайпхинты в PHP.


Единственный способ победить этот класс проблем - отказаться от JS-рантайма в бизнес логике (в пользу WASM, например).

раскрыть ветку (12)
0
DELETED
Автор поста оценил этот комментарий

Зы тайпхинты в пхп со стрикт модом пробовали? Падает все ток так

0
DELETED
Автор поста оценил этот комментарий

Вы видимо не очень юзали тс, понятное дело все внешние источники данных должны прогонятся через анализаторы и орать если что то не подходит по типу или по интерфейсу

Вебасебляй уже несколько лет грозится выстрелить, но чет ни как, по мне это больше нежелание писать на джс и как то втиснуться в мир фронтендеров получющих 300к-400к за рюшечки, от чего у бэкенда бомбит

раскрыть ветку (10)
1
Автор поста оценил этот комментарий

понятное дело все внешние источники данных должны прогонятся через анализаторы и орать если что то не подходит по типу или по интерфейсу

Понятно ли при этом, что такой дополнительной работой мы обходим ограничения TS, типы которого в рантайме исчезают?

раскрыть ветку (4)
0
DELETED
Автор поста оценил этот комментарий

тайпскрит - конвертится в джс при деплое - джс кладется на сервер и юзается
О каких ограничениях речь?
Если (допустим, хотя таких СПАшек дофига, неговоря уже о либах) у нас приложение не имеет общения с сервером, и не получает данные от чистых джс файлов (которые не проходили компиляцию тс в джс) и мы не юзали any и object, а описывали все взаимодействие через типы и интерфейсы, то откуда там взяться ошибки по типам? Если я инициализировал все свои переменные с определенным типом, тс проверил что я случайно не передал в функцию где ожидался number строку, ток как там может произойти косяк с типами?
Если же мы имеем общение с бэком и/или получаем данные от чистых джс файлов, но при этом я все эти данные прогоняю через анализатор (а без этого уже ни как, тс тут работает только как вспомогательная тулза со своими джененриками и перегрузками, но ни как валидатор типов) то опять же откуда взяться ошибкам?

раскрыть ветку (3)
1
Автор поста оценил этот комментарий

Приложение, которое не получает данные извне - околобесполезно. Кроме того есть популярное в JS рантаймовое метапрограммирование (плагинчики, там, обобщенное программирование, на которое у дженериков не хватает сил), при котором TS вообще ничего не умеет сверх возможностей JS.


при этом я все эти данные прогоняю через анализатор

Вы вынуждены это делать, только потому, что это такая особенность платформы - за вас она этого не сделает.

раскрыть ветку (2)
раскрыть ветку (4)
0
DELETED
Автор поста оценил этот комментарий

и? по вашему коду чтоб такое было надо написать что-то типа
const a: string = 'hello';

const b: number = 3;

console.log(a + b);

Что сразу на ревью видно и можно за это отругать
а если делать по феншую то можно заюзать что-то типа такого https://ramdajs.com/docs/#add и тайпскритп при компиляции будет орать как не в себя

ИМХО
В джс много косяков, и весь синтаксический сахар который в нем есть аля классы, асинк авейт это тот еще адок вунтири, но как сам иструмент для реализации различных задач на фронте он вне конкуренции, а развитие всяких Typescript и ECMAScript делают разработку этих задач весьма комфортной
раскрыть ветку (3)
3
Автор поста оценил этот комментарий

на ревью видно и можно за это отругать

Наглядно это сделано умышленно.


а если делать по феншую то можно заюзать что-то типа такого

Можно и еще больше костылей, почему бы и нет?)


развитие всяких Typescript и EMSA делают разработку этих задач весьма комфортной

Я бы сказал не такой болезненной. TS - действительно неплохое болеутоляющее (фиксация статических контрактов), но новые стандарты ES - это чаще всего только сахар, который концептуальные проблемы не исправляет.

раскрыть ветку (2)
0
Автор поста оценил этот комментарий
Дизельные языки програмиирования?
5
Автор поста оценил этот комментарий
Иллюстрация к комментарию
Иллюстрация к комментарию
0
DELETED
Автор поста оценил этот комментарий
Это как рассказы, что в армии 24/7 ломом снег чистят. Присутствует, но не так страшно, как рассказывают
0
Автор поста оценил этот комментарий
Да нормально прёт, в какой то момент даже удовольствие начнёшь получать
раскрыть ветку (1)
1
Автор поста оценил этот комментарий
Стокгольмский синдром?)
0
DELETED
Автор поста оценил этот комментарий

простите, я не программист, но как тогда получить "8"? о_О

раскрыть ветку (5)
2
Автор поста оценил этот комментарий

5 + 3

раскрыть ветку (2)
0
DELETED
Автор поста оценил этот комментарий
так судя по картинке будет 53)
раскрыть ветку (1)
1
Автор поста оценил этот комментарий

5 + 3 будет 8, а на картинке '5' + 3, это '53')

1
Автор поста оценил этот комментарий

элементарно!

Иллюстрация к комментарию
раскрыть ветку (1)
0
DELETED
Автор поста оценил этот комментарий
спасибо xD хоть кто-то дал нормальный ответ
Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества

Недвижимость и ремонт

Теги

Популярные авторы

Сообщества