вопрос: правильно ли, что все функции должны называть в snake_case, а структуры в CameCase?
Разве это не Hungarian notation но на уровне именований самого языка?
Нет, никто не мешает называть как угодно что угодно
Что я имею ввиду: в go у тебя все PascalCase если экспортиться и camelCase если нет То есть, чтобы сделать Hungarian notation тебе надо явно добавить в название тип (например SomeInt) В Rust получается, что если я вижу snake_case, то это функция / метод, а если PascalCase, то это структура Понимаете о чем я?
Он ругается если называю по-другому
#[allow(non_snake_case)]
Бесит что есть варнинг на non_snake_case имя крейта
И основной вопрос в чем: Hungarian notation читается плохой практикой (и я с этим согласен) и считается уже очень очень давно Почему при этом Rust, создававшийся после языков где был Hungarian notation решил делать такой синтаксис? Может это не "Hungarian notation" или же "Hungarian notation" это нормально?
Но да, я просто "стандартный подход"
ну коде, что следует гайдлайнам, все будет как в гайдлайнах на удивление большинство кода действительно следует гайдлайнам, так что если будет snake_case то это 100% функция/метод/макрос PascalCase - кастомные типы / любые структуры или перечисления (ну и на крайняк union)
Если есть причины, по которым это плохо, вкидуй
где ты нашел венгерскую нотациюв расте?
для меня венгерская нотация это вообще что то на уровне trait ISomething (типа интерфейсов в джаве), в остальном это уже зависит от компилятора в данном случае компилятор позволяет убрать "ограничение" на следование гайдлайнам главное, что компилятор по умолчанию заставляет писать на основе уже придуманных гайдлайнов - остальное уже чаще всего не нужно
Самый ярый пример I перед интерфейсом Подробно раскрывал вот здесь
И это всё, кажется?
Сам и написал поди 😁
Я имею ввиду сам факт, что функции / методы и структуры деляться по неймингу подходит под понятие венгерской нотации: "тип описывается названием"
Вот тут согласен, если 100% кода такие, то венгерская нотация не работает Кейс закрыт
в среднем это называется кодстайл, а не венгерская нотация
А вот это реально работает? Можно так разрешить на уровне кода писать в другом стиле?
можешь отключить любую ругань по стилям #![allow(nonstandard_style)]
да, в lib.rs напиши и норм
Все варнинги можно отключить
А гошка твоя так может? 😉
Ну там совсем копец с этим, ГОлаг
Да, но я не понимаю в чем логика разделения стиля кода между функциями и структурами В итоговом коде получается что используются всевозможные варианты написания Красота кода – намаловажный параметр и множество вариантов написания ее портят
раст позволяет тебе сделать с ним что угодно (ну практически), но только если ты это сам явно укажешь таким издевательством на уровне всего крейта не занимаются, обычно над блоком кода максимум по умолчанию и так хорошие и читаемые линтинги, так что это очень малая доля ситуаций (ну или вот как пример выше, если нужно сделать из синтаксиса кашу https://github.com/gravl4/ADC_UDP_LOGGER/tree/main/src)
А этим кто-то пользуется?
чтобы было понятно по имени какая это конкретно сущность.
Так вот суть в том, что слава богу нет Так любой программист просто отключает правила форматера и какой смысл его добавлять... Ребята, я знаю, что вы сейчас начнете говорить: "та не прав" – но вам не кажется, что это реально странно? Зачем это давать разработчикам? Какая от этого польза?
таким бредом нормальные люди не страдают)) это просто пример каши "потому что захотелось" на деле весь код следует гайдлайнам на уровне стандарта компилятора, и этого вполне хватает
Я скажу - ты не прав. И что дальше?
Объясню, это чисто путь JS: "Дадим все, а дальше они разберутся" – но люди в итоге не разбираются и у нас в итоге куча гавнокода в котором очень тяжело жить (и это причина почемя я не люблю JS)
Была бы польза от запретов всего на свете
Если ты запретишь вкусовщину в языке то у тебя просто появится конкурент и не один
писать на JS != писать на Rust и отношение к языкам тоже, скажем так, разное я бы сказал, что JS на уровне семантики позволяет относиться к синтаксису также наплевательски, как к памяти ну в общем я думаю мой посыл понят)))
Она есть и ты знаешь о каком я языке) Как минимум потому что я хочу скорее найти больше аргументов за Rust, а не наоборот
оке, в расте этого запрета нет. Какие минусы мы получили?
Появятся конкуренты, которые скажут: "Вот там вам дали эту свободу, из-за нее вы страдаете потому что куча людей начали ей слишком сильно пользоваться, а у нас этого нет, значит и страданий этих не будет" – и это будет реальным преимуществом
"Вот у вас отобрали эту свободу, из-за этого вы страдаете, потому что вам она нужна" и это тоже будет преимущество
Всм правильно ли? Так принято
Обсуждают сегодня