И в чем он не прав?
254
48
evilpapech сказал(а):↑но в этом случае просто прикрути проверку на бул
Нажмите, чтобы раскрыть...в целом справедливо
тут зависит от постановки задачи.приведение типов в нетипизированных языках - вещь коварнаяв целом использовать тройное сравнение в нетипизированных это best practiceИначе потом можно днями отлавливать баги Вот вам смехушечка - https://jsisweird.com/И вот еще олдовый видосик. WAT? WAT
в ютубе обрезанная изза прав, вот из вк
evilpapech сказал(а):↑1) брэйсы содержащие только один стейтмент, отмазка в виде зато код расширяемый не катит, задача изначально такая что функция может вернуть либо да либо нет и ни в какой параллельной вселеной она не может возвращать что-то еще
2) проверка и сравнивание значения булевой переменной (=== true опустить надо)
3) неиспользование тернарника в наиочевиднейшем случае
Нажмите, чтобы раскрыть...по-моему, эти вещи могут затриггерить только новичка, который пытается писать всё до мелочей по своему учебнику. взрослого программиста, работающего на серьёзными задачами, будут интересовать более масштабные вещи, архитектура и всё такое, а не то, какие у тебя там стоят скобочки.
haHAA сказал(а):↑bool === true это уже кринж
bool ? 'yes' : 'no'Нажмите, чтобы раскрыть...Тут это не нужно, но есть некоторые которые любят все так писать. Т.к. бывают проблемы с null и 0.
Кринж не кринж, но никто не запрещает так писать. И читаемость кода это не портит.
Не знаю насколько это изменит потребление памяти.
Некоторые вообще пишут !== false, вот тут уже немного рофлить начинаешь с кода и злиться)) Хотя опять же, бывают случаи когда это необходимы. И из за такой малейшей ошибки, могут быть большие последствия. И люди не парятся, а просто делают максимальную проверку всегда и везде.
Может это и неправильно, но количество ошибок это снизит.
Salovar сказал(а):↑Я бы тебе рассказал, что я видел в китайских библиотеках для микроконтроллеров, но ты потом спать не будешь...
Нажмите, чтобы раскрыть...И что же ты там видел?
Pudgewerksaw сказал(а):↑Адекватный код. Главная проблема в названии функции. И в чем бухтешь вообще, мало ли что там новички понаписывают.
Нажмите, чтобы раскрыть...Я тебе больше скажу это отличный код. Он читается на раз два и все понятно. Единственое что можно поправить это else убрать и сделать просто return "No"
Neels99 сказал(а):↑Название метода boolToWord, то дословно boolean в слово.
Тут не нужно видеть условие, достаточно кода, чтобы понять, почему и для чего так сделано.Я понимаю, 3 дня интенсива js сделали из тебя мидл-сеньор js девелопера, но тут мало того, что понятно, человек учится и это учебно-тренировочный код, так ещё и не по делу докопался.А сверху предлагаешь в реализацию метода, добавить вывод, что не boolean был передан. Давай ещё try-catch присунем, в примитивный метод.Нажмите, чтобы раскрыть...интерпретатор пролога
задача таки логическая
Meepka сказал(а):↑И что же ты там видел?
Я тебе больше скажу это отличный код. Он читается на раз два и все понятно. Единственое что можно поправить это else убрать и сделать просто return "No"
Нажмите, чтобы раскрыть...Когда в одних и тех же либах enable то 0, то 1, проверки типо if(true == условие), дефайн дефайна дефайна дефайна, в которых происходит перезапись бит справа налево и наоборот, а в результат 0 действий, структуры, в которых параметры дублируются, кучи ошибок. Это прям надо скидывать. Там п****ц похлеще того, что ты выложил. Либы от gd32 чекни
Salovar сказал(а):↑Когда в одних и тех же либах enable то 0, то 1, проверки типо if(true == условие), дефайн дефайна дефайна дефайна, в которых происходит перезапись бит справа налево и наоборот, а в результат 0 действий, структуры, в которых параметры дублируются, кучи ошибок. Это прям надо скидывать. Там п****ц похлеще того, что ты выложил. Либы от gd32 чекни
Нажмите, чтобы раскрыть...Ну так скидывай мы посмотрим
Meepka сказал(а):↑Я тебе больше скажу это отличный код. Он читается на раз два и все понятно. Единственое что можно поправить это else убрать и сделать просто return "No"
Нажмите, чтобы раскрыть...Ну не, а что если ты туда бросишь не true, а число)
По-моему тут явное нарушение least surprise principle.
Потому что в будущем человек может забыть закастить в bool (а это частая история). И получить “No” на чем-то, что должно каститься в true и давать “Yes”.
“Правильный” вариант всё таки тернарка
function boolToWord(bool) {
return bool? “Yes” : “No”;
}
либо бросить исключение:
let type = (typeof x);
if (type === ”boolean”) {
throw new TypeError(“boolean expected, but got ” + type;
);
}
// та-та-та
Salovar сказал(а):↑Куда ты смотреть собрался, если читать не умеешь? Либы для мк от gd32. Открываешь любую. Начинаешь смотреть.
Нажмите, чтобы раскрыть...Тоесть ты вкинул какойто бред, но пруффы предлогаешь искать мне самому?) Звучит гениально. Просто ору с того как челы на ходу сочиняют какие они тру программисты, а как дело до пруфов доходит то ищите сами
YoshkinKot сказал(а):↑Ну не, а что если ты туда бросишь не true, а число)
По-моему тут явное нарушение least surprise principle.
Потому что в будущем человек может забыть закастить в bool (а это частая история). И получить “No” на чем-то, что должно каститься в true и давать “Yes”.
“Правильный” вариант всё таки тернарка
function boolToWord(bool) {
return bool? “Yes” : “No”;
}
либо бросить исключение:
let type = (typeof x);
if (type === ”boolean”) {
throw new TypeError(“boolean expected, but got ” + type;
);
}
// та-та-та
Нажмите, чтобы раскрыть...если в фукнцию с именем boolToWord будет попадать число, то это хреновый код и не важно как ты его там написал тернарником или еще как.
Meepka сказал(а):↑Тоесть ты вкинул какойто бред, но пруффы предлогаешь искать мне самому?) Звучит гениально. Просто ору с того как челы на ходу сочиняют какие они тру программисты, а как дело до пруфов доходит то ищите сами
если в фукнцию с именем boolToWord будет попадать число, то это хреновый код и не важно как ты его там написал тернарником или еще как.
Нажмите, чтобы раскрыть...Я расписал конкретные моменты, а ты по слову enable в либах gd32 не способен это проверить и просишь пруфы. Ты как бы опозорился и обосрался, если что. Разжевывать тебе никто не будет ничего. Не способен гуглить - твои проблемы
Meepka сказал(а):↑если в фукнцию с именем boolToWord будет попадать число, то это хреновый код и не важно как ты его там написал тернарником или еще как.
Нажмите, чтобы раскрыть...твоя идея плоха, по очевидной причине: людям свойственно ошибаться
да это плохой код, но если можно снизить вероятность случайной жопы, то лучше это сделать
проверять типы в целом действие скорее лишнее, если это не публичный метод либы, а деталь реализации
как говорится сам дурак — смотри контракт
а тут ваще можно спокойно расширить контракт и всё: мы взяли и решили более общую задачу, автокаст к булу + перевод в строку
это то, что называется хак, красивый код, и как по мне хороший стиль
а ты просто игнорируешь мой аргумент и говоришь: ну, не ошибайтесь, лол
написать код так, чтобы он при ошибке человека со стороны всё равно выдавал ожидаемый результат для большинства людей тут достаточно просто, он к тому же еще и короче получается, читаемей и лаконичней
YoshkinKot сказал(а):↑твоя идея плоха, по очевидной причине: людям свойственно ошибаться
да это плохой код, но если можно снизить вероятность случайной жопы, то лучше это сделать
проверять типы в целом действие скорее лишнее, если это не публичный метод либы, а деталь реализации
как говорится сам дурак — смотри контракт
а тут ваще можно спокойно расширить контракт и всё: мы взяли и решили более общую задачу, автокаст к булу + перевод в строку
это то, что называется хак, красивый код, и как по мне хороший стиль
а ты просто игнорируешь мой аргумент и говоришь: ну, не ошибайтесь, лол
написать код так, чтобы он при ошибке человека со стороны всё равно выдавал ожидаемый результат для большинства людей тут достаточно просто, он к тому же еще и короче получается, читаемей и лаконичней
Нажмите, чтобы раскрыть...Чел зная название енума и либы не может проверить высказывание. Ты реально с ним ведешь диалог? Он же явно неадекватен
RedScoop сказал(а):↑Идеальное решение https://ibb.co/mvDrsXf
Я тот чел, что словил 24 минуса
Нажмите, чтобы раскрыть...зачем тебе тайпхинт и одновременно проверка типа ручками, при условии, что ты тернарник сделал?
вот это уже шиза по-моему
как гирляндой обвесился, надо знать меру
ты мог оставить тайпхинты и всё
а можно даже было бесплатно расширить контракт и убрать тайпхинт на аргумент
потому что я не вижу проблемы в
boolToWord(0) -> “False”
boolToWord(“lol”) -> “True”
это достаточно удобно использовать
Salovar сказал(а):↑Чел зная название енума и либы не может проверить высказывание. Ты реально с ним ведешь диалог? Он же явно неадекватен
Нажмите, чтобы раскрыть...Я привык общаться со стенами, мне норм.
Спор и посты на публичном форуме преследуют несколько иную цель, нежели переубеждение конкретно взятого человека, с которым бы я разговаривал тет-а-тет.
А неадекват может привести разговор в интересную плоскость, ранее не освещенную.
Тут окромя нас есть еще и публика, которая всё это читает и делает выводы.
Считай ты им обрывки лекций читаешь, а сам учишься формулировать и доносить свои мысли.
У меня вот не всегда получается, судя по фидбеку здесь и в жизни.
Люди жалуются, что мои объяснения чересчур мудреные и вообще для роботов каких-то. Но я вот учусь выражаться чуть проще, но иногда не получается важные нюансы донести.
В общем, это моя life-long проблема и я форумы для этого использую. Потому что где еще найти столько поводов умничать и простыней писать.
Совсем недавно я тут учился правописанию и синтаксису в русском языке, по которым у меня в школе были двойки. А тут как бы есть прикол запятые правильно ставить и текст форматировать. Доставляет мне извращенное удовольствие. И вроде как даже научился.
Тернарный оператор разве не является синтаксическим сахаром?
Semenofsky сказал(а):↑24 минуса получил чел, но месседж же по факту
Типо сверху реально шок контент
Нажмите, чтобы раскрыть...Токсиков никто не любит, да и это не значит, что так он будет писать дальше. Абсолютно справедливо попущен в комментариях.
Gachi boSS сказал(а):↑Тернарный оператор разве не является синтаксическим сахаром?
Нажмите, чтобы раскрыть...нет не является
потому что есть фундаментальная разница между statement и expression
тернарный оператор это не statement, это expression
есть языки, где есть только выражения (ну например семейство языков LISP)
есть языки, где в основном есть только statements (очевидным примером будет язык ассемблера наверное)
есть языки, где есть: и то, и другое (например обсуждаемый выше JS)
Тема закрыта
-
ЗаголовокОтветов ПросмотровПоследнее сообщение
-
Сообщений:2
Просмотров:2
-
Сообщений:2
Просмотров:3
-
Сообщений:5
Просмотров:5
-
Сообщений:9
Просмотров:13
-
Сообщений:2
Просмотров:3