Раньше тоже вручную вбивал, но последние три года получаю чеки по qr-коду и счастлив. Продолжать жрать кактус, когда есть нормальная еда, под предлогом «а вдруг нормальную еду отберут» как-то чересчур по-спартански.
Надеюсь, для людей, рекомендующих «правило спирали» в аду есть отдельные котлы. Помню, на stackoverflow тоже все рекомендовали, не разобравшись. За десять лет, наверно, уже можно было понять, что это правило неправильное, нет? Как оно разберет эту строку, например?
int M[3][3]
А никак, потому что это бред.
Вот есть нормальное правило «право-лево»: cseweb.ucsd.edu/~ricko/rt_lt.rule.html
1. Сначала разбираем всё справа.
2. Потом разбираем всё слева.
3. Если есть круглые скобки, то порядок меняется, как в арифметических выражениях.
Всё.
Я делаю проще — оставляю в браузере вкладки. Сейчас вот накопилось 218. Лайфхак: если копить вкладки, то рано или поздно (у меня примерно раз в три года) что-то случится и вкладки утеряются и можно с чистой совестью начинать жизнь с чистого листа!
А в целом мне ваша статья понравилось, потому что я давно недоумеваю, почему никто не озадачивается таким немаловажным вопросом, как дизайн исходного кода. Как правильно писать текст на веб-страницах уже давно изучают в университетах, а исходный код до сих пор пишут кто на что горазд.
Мне отсутствие скобки несильно помешало, потому что мне и так не сразу понятно было, какие скобки куда относятся. Для меня, как видите, ваш вариант труднее воспринимать. Но восприятие текста гораздо менее важно, чем отсутствие ошибок. Первая задача стиля, как я это вижу, — способствовать минимизации ошибок, а уже потом можно думать над читабельностью.
P.S. Такую расстановку скобок я (и мои коллеги вслед за мной) использую около десяти лет, на работе. Я всегда в поиске более лучшего стиля, и время от времени что-то меняю, но к этим скобкам вопросов еще не возникало.
На мой взгляд, второй подход и является более логичным. У нас не две отдельные сущности, функция и список аргументов, а одна целая сущность — функция. И функция «содержит» аргументы, как вы сказали. Это не какой-то список аргументов куда-то передаётся, а аргументы являются неотъемлимой частью именно этой функции, потому что без них это уже будет другая функция. Ведь функция определяется не именем, а сигнатурой.
Мне кажется, здесь вы так сконцетрировали внимание на идентификаторах, игнорируя исключительную важность скобок, что часть скобок растеряли. Я тоже не сразу заметил ошибку, строка воспринимается как набор идентификаторов, где-то там между ними затерялись скобки, что к чему относится, где имена функций, где аргуметы, непонятно.
Я сейчас используя такой стиль:
Здесь сразу видно, где имя функции, потому что к нему привязана открывающая скобка списка аргументов. И в целом структура вложенности прослеживается чуть лучше, у вас же этот важный момент полностью игнорируется.
Справедливости ради надо сказать, что comss.ru это нормальный портал с промоакциями на антивирусы, я на него даже подписан. В данном случае там лежит ссылка на официальный сайт Anydesk.
По личному опыту: если уменьшить градус категоричности и оформлять своё мнение, как мнение, а не как истину в последней инстанции (а это действительно так, все могут ошибаться), то выглядеть оно будет заметно менее высокомерным. Например, вместо it doesn't make any sense, сказать sorry, but it doesn't make any sense for me. Уверен, что на второй вариант количество жалоб будет меньше. А если еще спокойно объяснить, почему it doesn't make any sense, то вообще должно стремиться к нулю.
Привет вас из мира сурового C. Тоже недавно начал строгую типизацию для борьбы с неправильным порядком аргументов при передаче в функцию. Пока велосипед выглядит примерно так:
У меня ZX Spectrum появился в конце 90-х, когда все вокруг играли в PC и Playstation, а я уже давно не играл в свою Dendy, ибо надоела. Поэтому игры ZX Spectrum всерьез не воспринимались, скорее было любопытно посмотреть всё, до чего добирались руки. Поиграл я мало, но всё же некоторые жанры, недоступные ранее на Dendy (а в современные игры удавалось редко поиграть), для себя удалось открыть. Итак, что запомнилось:
Заголовок спойлера
— Castle Master II: The Crypt/Total Eclipse/Driller. Для меня было настоящим открытием, что в 80-х уже существовали 3D-игры от первого лица! Да еще и на обычном спектруме! И даже не wireframe, а с заливкой граней! До этого я, как и многие, считал первой такой игрой Doom (хотя даже он, как мы знаем, был не совсем 3D). А примеры с 3d графикой на бейсике убедили меня, что на спектруме ничего подобного попросту невозможно сделать. Тем поразительнее было случайно наткнуться на Castle Master II.
— Elite. Ну куда же без неё. Для меня это было что-то непонятное, честно пробовал поиграть, не зашло. А вот мой друг однажды поиграл в нее чуть дольше, а я смотрел из-за плеча и запомнил один эпизод. Друг выпустил ракету по пиратскому кораблю, и пираты вместе с ракетой улетели за пределы радара. Через некоторое время на радаре появился и начал приближаться объект — каково же было удивление, когда мимо нас пролетел всё тот же пиратский корабль, удирающий от летящей за ним ракеты! Словно мир за пределами радара живет своей жизнью даже без нас. Была еще чем-то похожая и еще более непонятная для меня серия Tau Ceti.
— Space Crusade. С этой игрой я открыл для себя жанр тактического симулятора и поиграл довольно долго. Были еще более старые игры, типа Laser Squad, но они не зашли.
— Nether Earth. RTS на спектруме, 1987 год! До этого я думал, что Dune II родоначальница жанра.
— Теплая ламповая серия Dizzy — открыла для меня жанр adventure.
— Turbo Esprit — свободная езда на автомобиле по городу задолго до GTA!
— Spindizzy — приключения гироскопа в изометрической проекции, которые я честно почти прошёл.
— Knight Lore/Head Over Heels/Alien 8. Серия похожих игр с изометрическими комнатами. Играл больше в Alien 8.
— Ivan 'Ironman' Stewart's Super Off Road — крутые изометрические гонки по бездорожью на одном экране. С трехмерным детальным рельефом! Пробовал играть на других платформах, но любовно отрисованные пиксели на спектруме понравились больше.
— Lemmings. Лемминги. Пробовал позже на других платформах, но и тут любовно отрисованные по пикселю причесоны леммингов понравились именно на спектруме.
— ATV Simulator — открыла для меня жанр гонок-платформеров, представителем которого является современная серия Trials от RedLynx.
— Wheelie — это уже не симулятор, а скорее обычный платформер, но в качестве главного героя мотоцикл! Необычно.
— Boulder Dash — затягивающая головоломка с подкопами под камни.
— Krakout — красочный арканоид, за которым я провел немало времени (и даже родственники просились поиграть).
— Deflektor — классная головоломка с лазером, возможно, первая в этом поджанре.
— Cyclone — провел немало времени, летая на вертолете и спасая человечков в этой игре.
Было еще много игр, тайм-менеджер Tapper, улетные гонки на мотоцикле 3D Deathchase, Paperboy, драки Barbarian, всевозможные бродилки-стрелялки типа Saboteur и Cybernoid и т.д. Но вроде больше ничего не зацепило, если вспомню еще что-то интересное, напишу.
А никак, потому что это бред.
Вот есть нормальное правило «право-лево»: cseweb.ucsd.edu/~ricko/rt_lt.rule.html
1. Сначала разбираем всё справа.
2. Потом разбираем всё слева.
3. Если есть круглые скобки, то порядок меняется, как в арифметических выражениях.
Всё.
P.S. Такую расстановку скобок я (и мои коллеги вслед за мной) использую около десяти лет, на работе. Я всегда в поиске более лучшего стиля, и время от времени что-то меняю, но к этим скобкам вопросов еще не возникало.
Мне кажется, здесь вы так сконцетрировали внимание на идентификаторах, игнорируя исключительную важность скобок, что часть скобок растеряли. Я тоже не сразу заметил ошибку, строка воспринимается как набор идентификаторов, где-то там между ними затерялись скобки, что к чему относится, где имена функций, где аргуметы, непонятно.
Я сейчас используя такой стиль:
Здесь сразу видно, где имя функции, потому что к нему привязана открывающая скобка списка аргументов. И в целом структура вложенности прослеживается чуть лучше, у вас же этот важный момент полностью игнорируется.
Говорящие фото тоже впечатляют
"… Такой невиданной “непрухи”
Ты не испытывал давно.
Проблемы множатся как мухи,
Код превращается в беду."
У вас тут опечатка в последнем слове.
По названию последней переменной нетрудно догадаться, что ошибки с неправильным порядком аргументов неизбежны)
— Castle Master II: The Crypt/Total Eclipse/Driller. Для меня было настоящим открытием, что в 80-х уже существовали 3D-игры от первого лица! Да еще и на обычном спектруме! И даже не wireframe, а с заливкой граней! До этого я, как и многие, считал первой такой игрой Doom (хотя даже он, как мы знаем, был не совсем 3D). А примеры с 3d графикой на бейсике убедили меня, что на спектруме ничего подобного попросту невозможно сделать. Тем поразительнее было случайно наткнуться на Castle Master II.
— Elite. Ну куда же без неё. Для меня это было что-то непонятное, честно пробовал поиграть, не зашло. А вот мой друг однажды поиграл в нее чуть дольше, а я смотрел из-за плеча и запомнил один эпизод. Друг выпустил ракету по пиратскому кораблю, и пираты вместе с ракетой улетели за пределы радара. Через некоторое время на радаре появился и начал приближаться объект — каково же было удивление, когда мимо нас пролетел всё тот же пиратский корабль, удирающий от летящей за ним ракеты! Словно мир за пределами радара живет своей жизнью даже без нас. Была еще чем-то похожая и еще более непонятная для меня серия Tau Ceti.
— Space Crusade. С этой игрой я открыл для себя жанр тактического симулятора и поиграл довольно долго. Были еще более старые игры, типа Laser Squad, но они не зашли.
— Nether Earth. RTS на спектруме, 1987 год! До этого я думал, что Dune II родоначальница жанра.
— Теплая ламповая серия Dizzy — открыла для меня жанр adventure.
— Turbo Esprit — свободная езда на автомобиле по городу задолго до GTA!
— Spindizzy — приключения гироскопа в изометрической проекции, которые я честно почти прошёл.
— Knight Lore/Head Over Heels/Alien 8. Серия похожих игр с изометрическими комнатами. Играл больше в Alien 8.
— Ivan 'Ironman' Stewart's Super Off Road — крутые изометрические гонки по бездорожью на одном экране. С трехмерным детальным рельефом! Пробовал играть на других платформах, но любовно отрисованные пиксели на спектруме понравились больше.
— Lemmings. Лемминги. Пробовал позже на других платформах, но и тут любовно отрисованные по пикселю причесоны леммингов понравились именно на спектруме.
— ATV Simulator — открыла для меня жанр гонок-платформеров, представителем которого является современная серия Trials от RedLynx.
— Wheelie — это уже не симулятор, а скорее обычный платформер, но в качестве главного героя мотоцикл! Необычно.
— Boulder Dash — затягивающая головоломка с подкопами под камни.
— Krakout — красочный арканоид, за которым я провел немало времени (и даже родственники просились поиграть).
— Deflektor — классная головоломка с лазером, возможно, первая в этом поджанре.
— Cyclone — провел немало времени, летая на вертолете и спасая человечков в этой игре.
Было еще много игр, тайм-менеджер Tapper, улетные гонки на мотоцикле 3D Deathchase, Paperboy, драки Barbarian, всевозможные бродилки-стрелялки типа Saboteur и Cybernoid и т.д. Но вроде больше ничего не зацепило, если вспомню еще что-то интересное, напишу.