7

Ох уж этот *СиПлюсПлас*

Так получилось что я научился писать на языке С++. Как так получилось? Амбиции, тщеславие, желание выебнуться. Главные чувства, пульсирующие в моём сердце, когда я слушал лекцию Рылова В. по плюсам в нгу на фите. До сих пор помню его слова:

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

(с) Рылов В.

Я начал кодить на плюсах примерно на втором курсе универа, т.е. 2015 год. Сейчас двадцать четвертый, жесть. Девять лет прошло. Конечно я не кодил непрерывно на этом языке. Последний год до работы на заводе я вообще бросил их, обещая себе наивно, что не вернусь к ним. Думал, что перешёл на Python. Но... Вот я снова с ними. В первые года отношений я испытывал влюблённость, меня тянуло к ним как сейчас тянет к своей мадам. Но потом стали появляться звоночки. Причём громкие. Мне больно было слушать их. Сердце разрывалось. Я не понимал, язык ведь идеальный, на нём можно столько крутого всего делать. На нём делают ААА игры (и ни на чём больше!), потому что такой уровень науки (да-да, в компьютерных играх используются бешенные технологии) можно захерачить только там. Чтобы игра выглядела красиво, игралась драйвово, ничего не лагало. На этом языке такие мощные штуки делаются, ну разве кроме запуска ракет. Там вроде до сих пор Fortran в моде. Короч писец. Язык крутой. И понятное дело не простой. На нём сложно (тогда мне казалось, что это сложно, хи-хи-хи) программировать. Я принял эти правила. Но почему было так больно. Когда...

Я уже не вспомню, что конкретно мне отдавало болью. Поэтому поделюсь сегодняшней задачкой. Я на неё потратил полдня. Первые полдня я создавал этот канал. Тайм-менеджмент на вершине! Так вот, есть такой код:

Ох уж этот *СиПлюсПлас* Мат, Программист, Смешанные чувства, Бомбёж, Страсть, C++, Длиннопост

Вывод:

0a


Код выводит число в шестнадцатеричном формате. Мне, как embedded программисту часто приходится работать именно с этим представлением. Выяснил, что плюсах до 20 стандарта вообще какие-то проблемы с выводом шестнадцатеричных чисел. Есть функции на Си, но блинский, плюсы, ё-моё, а своё?

Идём дальше. Теперь нам потребовалось написать вот так:

Ох уж этот *СиПлюсПлас* Мат, Программист, Смешанные чувства, Бомбёж, Страсть, C++, Длиннопост

Вывод:

15 45 e4

Да, кто внимательный, заметил, что пиздец чёт дохуя одинаковой хуйни. Программист на то и программист, что любит избавляться от дублирования. Я по крайней мере точно, у меня это синдром. Прям не могу спокойно на это смотреть. Я специально использовал переменные разного типа данных, чтобы не было соблазна запихать их в массив и в цикле перебрать это добро. Поэтому решение с моей колокольни лишь одно: нужно реализовать собственный манипулятор ввода/вывода, по примеру с setw, setfill или hex. Как истинный гуру программирования я заглянул в свою душу, чтобы отыскать ответ, а душа мне говорит:

Гугли. Ну а хули, я загуглил. Вот ответ. Портянка слабо говоря немаленькая (именно длину кода я имею в виду). Однако у меня получилось встроить её в проект:

Ох уж этот *СиПлюсПлас* Мат, Программист, Смешанные чувства, Бомбёж, Страсть, C++, Длиннопост
Ох уж этот *СиПлюсПлас* Мат, Программист, Смешанные чувства, Бомбёж, Страсть, C++, Длиннопост

Итого, что мы имеем. Я добился уменьшения длины строки. Теперь вместо

<< std::setw(2) << std::setfill('0') << std::hex << (int)a

я напишу:

<< Utils::hex << a

Результат на лицо. Я доволен. Пока не начал считать строки кода...

Было 6 строк кода, а теперь 32! Вау, сэкономил ... длину строки. Да, конечно я могу вынести пространство Utils в отдельный файл и подгружать, когда мне нужно воспользоваться этим "волшебным" манипулятором ввода/вывода. НО: а я воспользуюсь им вообще когда-нибудь? Зачем я потратил 4 рабочих часа на это? Ну были бы у меня те 3 длинные строчки (в рабочем проекте мне нужно вывести 6 переменных, но написать пришлось бы всего один разок). Что я получил? На самом деле я получил удовлетворение. Малюсенькое. Да, теперь я спокоен. Но проблема в том, что я это не контролирую. Если я вижу, что могу что-то улучшить, я это делаю практически не задумываясь, чего мне это будет стоить. Сколько сил уйдёт.

Да, вы можете сказать, что не в языке дело, а во мне. Да, это правда. НО блять сука но. Но заключается в том, что этот язык, язык С++ даёт мне кучу возможностей для улучшения. Буквально бесконечную возможность способов себя заебать.

Не так: "я могу вот так сделать круто, а могу вот так круто сделать". Нет. Я могу попробовать 10 способов, которые в результате не дадут никакого эффекта. И только сука 11 способ приведёт меня туда, куда нужно, удовлетворив мой тщеславный перфекционизм. Язык как будто поощряет меня ебать себя через колено. И я как наркоман этим пользуюсь.

В целом вот весь тэйк, я нарик и снова попал в заложники.

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

Говорят Си плас плас очень перегружен возможностями Типа одно и тоже можно сделать десятью способами И по этому его не выучить и за век И это бесит

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

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

1
Автор поста оценил этот комментарий
Говорят в IT можно войти с ударом ноги. Хрена лысого, я пока читал мозг сломал. Респект кто умеет в IT.
раскрыть ветку (1)
2
Автор поста оценил этот комментарий

ахахахаха, спасибо, что попытались прочитать:)

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

Пришёл невыспавшийся:
*сурово пишет макрос*
Бахнув лавандового рафа:

Иллюстрация к комментарию
раскрыть ветку (1)
1
Автор поста оценил этот комментарий
Оооо, концептыыы🤤 жаль мне сейчас доступен ток 17 стандарт, и то обрезанный, без string_view. Приходится ограничиваться просто неограниченным шаблонным параметром🙃
0
Автор поста оценил этот комментарий

Не, ну а хули


#define PRINTHEX(x) (std::cout << std::setw(2) << std::setfill('0') << std::hex << (int) (x) << '\n';)


PRINTHEX(a);


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

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

Ахахах, оуееее! Наконец-то суровый сишник)) Вообще мне конечно нужны абстракции и продумывание архитектуры для утилитки. Засорять пространство имён макросом как-то не очень хочется) Но решение с макросами конечно по-своему элегантно)) круто что вспомнили про них, так держать!

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

Да, это она. Там где области обрезать. И именно в терминале - это так лампово!☺️

Я сделал, кривовато, не смог раскидать параллельные процессы по ядрам проца. Правда на с#, он мне больше понравился. Прям на чпу-станке. Ссылок нет, не выкладывал. И забросил. Пришлось ковырять убоюдочный яваскрипт, потому что на нём один из станков работает. Немного разобрался, дописал таймауты в нужных местах. А с# занялся по причине, что нужна была софтина, типа калькулятора, которая за меня сложные куски G-кода писать будет.

Я вообще не програмер. Я наладчик ЧПУ. И третью в своей жизни игру я сделал уже на рпгмейкере, год назад, от скуки, пока лежал в больнице, за месяц. Большая часть времени ушла на реализацию стрельбы, потому что движком она не предусмотрена вообще никак.

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

Для тебя программирование это работа. А для меня убивалка времени на работе)

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

А чем наладчик ЧПУ от программера отличается? Разве вам не приходится их программировать? Или вы уже готовые скрипты юзаете?

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

Огонь!!!!

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

Ахахаха, это как? Типа права на игру продали?

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

Я начал учить этой весной ради того, чтобы Xonix терминальный написать. Который я последний раз писал на ДВК-2 и ДВК-3 в 1986г. Прям как в детство вернулся)

Кстати, слабо?

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

Xonix - это игра, где нужно поле обрезать для шарика? Звучит круто и как прогресс?)


Кстати, слабо?

ну написать саму игру не сложно, а именно в терминале это сделать - звучит мягко говоря заёбно, но круто. Чисто apt-get скачать и поиграть на линухе из терминала афигенная идея))) Если сделаете, киньте ссылочку

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

Результат на лицо. Я доволен.

Странные вы, айтишники... лицо-то хотя бы не своё? ))

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

ахаха, как это не своё, конечно своё🥰

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

Ты задавал вопросы, я на них отвечал с тем опытом, который есть у меня.

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

Понял, спасибо за твои ответы)) было очень комфортно общаться

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

Да я уже самореализовался-то за 15 лет. Жизнью доволен более чем

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

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

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

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

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

и вы там не самореализуетесь?)

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

Есть, просто команда разбросана по глобусу. Но во взрослом мире, не в аутсорсе, никто не играет больше в детский сад. Ты сам должен понимать свои обязанности и решать задачи. И нести ответственность за решения. Да и на самом деле, в продукте, ты не программируешь особо. На три строчки кода с либой ты неделю готовишь обоснование необходимости решения в виде документа со сравнением различных подходов и библиотек, после аппрува оного ты две недели ждешь аппрува/покупки либы которая тебе нужна и готовишь дизайн-документ как ты будешь это решать. И вот после раунда этих документов - ты таки начнешь писать код. Кароче пизда любому энтузиазму. Разбивается об бетон реалий ибо тебе уже похуй каким способом ты будешь решать задачу.

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

И вот после раунда этих документов - ты таки начнешь писать код.

А это уже зависит от места работы. Я вот на заводе батрачу и тут как ни странно больше свободы. Именно программистам. Тут нет сформированного годами айти отдела. Он только появляется по факту. На другом заводе тож работал, там также. Условно чем хочешь, тем и занимаешься. Над тобой нет менеджеров, которые тебя трясут за сроки по каждой таске. Конечно тебе приходится отчитываться перед шефом, но там шеф не сравнится с зубастыми манагерами из типичного айти. Конечно заводское айти я ток привёл в пример. Оно сильно отличается от софтверного айти. И это хорошо как по мне. Значит может быть ПО-ДРУГОМУ. И возможно софтверное айти когда-нибудь тоже начнёт меняться. Я понимаю, что у вас ситуация очень-очень непростая. Сложно менять работу, когда у тебя целая семья, 2 ребёнка тем более. Искать новое место работы, где не факт, что будет лучше. А поначалу может даже хуже, пока ко всем привыкнешь, в новый проект вольёшься, испыт грёбанный пройдёшь - это треш. Поэтому проще смириться с текущими условиями и перестроиться на "детский сад" закончился. Но я к счастью не в таких условиях. И могу искать, а то и может создавать "детский сад".

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

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

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

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

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

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

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

почему самореализация и дети взаимоисключают друг друга? Надеюсь вы не намекаете на то, что самореализация подразумевает задерживаться на работе?😱

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

Ну, пока молодой можно себе позволить. Потом ты просто решаешь задачу по работе и идешь читать Тараканище доче или строить лего с сыном.

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

а как же самореализация?)

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

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

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

идеальный код

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

показать ответы
0
Автор поста оценил этот комментарий
Я сам технарь. Окончил техникум, институт, есть производственный опыт. Но попытался, что-нибудь понять. У нас была информатика в технаре. Там преподавали написание алгоритма на языке Бейсик. Вот что-то похожее с этим кодом. Но могу ошибаться.
раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Какая у вас специальность? А по какой работаете?)

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

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

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

Это я много раз слышал)) Но мой вопрос немного глубже. Я занимаюсь программированием, потому что того просит моя душа. Это моя страсть. Так получилось, что я решил связать своё стремление и то, чем я хочу зарабатывать деньги. Т.е. работу с увлечением. Но тот факт, что я пришёл на работу программистом, где мне платят деньги, не означает, что я отказываюсь от своей страсти в пользу работы. Повторюсь, только потому что мне платят за это деньги. Работодатель мной не владеет. Бизнес мной не владеет. Я свободный человек, который "типа" ограничен трудовым договором. Но по факту я решаю, сколько времени я потрачу на ту или иную задачу, сколько я буду писать код и насколько глубоко я буду погружаться, до какой поры буду оптимизировать код. И в целом это сложно кому-то контролировать. Разве что не поставить надо мной человека, который разбирается в моём коде, в моей предметной области. Короч тим лида, который будет 8 часов в день стоять над душой. Тот же самый бизнес не даст просто ему денег на это, потому что этот специалист дорогой и он будет заниматься чем-то другим. А у меня есть выбор. Подстраиваться целиком и полностью под бизнес или искать свой, менее проторенный путь.

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

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

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

Тогда эта строка может вывалиться за границу экрана и это уже пичалька

это боль, согласен(

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

Таких много. Помню себя таким в году так 15м, но потом полегчало и я понял что в принципе похер на код, если он работает. Сделать его читабельным - да, но пытаться выполировать из него конфетку - не стоит, много времени уходит. Как мне объяснил коллега - если идеально задизайненный и написанный модуль новогодних скидок релизнут в апреле - это феил.

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

Т.е. вы стали ориентироваться на бизнес в своей работе?

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

Во, точно, слово забыл. Реально монструозно. А вообще нет, cout как и printf стандартные либы, только первая это уже плюсы, а вторая тянется прямо из Си. Но все равно printf("0x%x\n", num); значительно короче и более понятно, хотя это так пока количество выводимых переменных мало.

раскрыть ветку (1)
0
Автор поста оценил этот комментарий
Принтф читается оч неприятно. Эти проценты, \n который заменяется на кроссплатформенный std::endl. Да кода больше писать, но он читабельней и смотрибельней принтфа. Конечно, если ты на си 10 лет жоско без передыху кодил, от плюсов тошнить будет.
показать ответы
0
Автор поста оценил этот комментарий

Когда заполняешь массив, пишешь например
i = {0 = aaa, 1 = bbb, 2 = ccc} и значения будут по индексам 0, 1, 2
если объявить как i = {aaa, bbb, ccc} то значения будут по индексам 1, 2, 3

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

Можешь сам с 0 начать массив, никто не запретит. Но неявно идёт с 1, просто учитывай.
Удобно во многих случаях, на самом деле. См. "нулябрь", например.

раскрыть ветку (1)
0
Автор поста оценил этот комментарий
Это надо как-то указывать каждый раз, что ты с нуля хочешь начать?
показать ответы
0
Автор поста оценил этот комментарий

Дыа! Более того, на Lua любая переменная - массив. Просто нулевой длины, пока явно не скажешь.
Массивы малой заполненности - как раз-два, любой элемент массива может иметь своё количество элементов.
Индексы начинаются с 1 по умолчанию, а не по умолчанию - хоть i['картошкофри'] объявляй
Две нативных функции перебор массивов (помимо стандартного):
for i, v in ipairs (some_arrray) - для нумерованного массива, i - индекс, v - значение
for k, v in pairs(some_array) - для ненумерованного массива, k - ключ, v - значение. Может выдавать пары ключ-значение в любом порядке, но всегда даст с ключом соответствующее ему значение и всегда переберет все элементы массива.

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

ляпотааааа

Индексы начинаются с 1 по умолчанию

а вот это как будто кринж, как это может быть удобно?

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

Конкретно в этом случае я бы вынес все в функцию. Ну а потом понял бы что есть print. Ну и взял бы уже его перегрузку. Эта куча << << << << просто выносит мозг без реальной неоходимости. По мне это имеет место на лабораторках чтоб показать что это не Си, а все-таки С++, но в реальном проекте эти уголки - пиздец. Хотя по работе я больше C#/NodeJS, плюсы использую в ардуинке, стм32 и прочих микриках.

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

Кучу перегрузок print делать довольно жёстко. В других языках print довольно удобная вещь. Можно написать print("{} la la la {} labuten", a, b); - и кайфуешь. Или в питоне ваще f-строки, просто ляпота. В сишке ток printf, ну либо свой print реализовывать. Но это ещё заморочнее чем то, что я сделал. Угловые скобки это стандартная библиотека. Добавив поддержку этих скобок обеспечивается более лучшая поддержка кода. Не нужно тянуть лишние зависимости. Всё реализовано стандартными средствами. Просто это выглядит монструозно (как по мне).

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

Ну, есть три уровня программирования чпу.

Сейчас все генерируют программы. Но это тысячи, десятки тысяч строк кода.

Есть те, кто пишет вручную, пользуясь встроенными циклами (процедурами)

А есть такие, как я, которые делают это на смеси ассемблера с фортраном.

И, пожалуй, четвертый, уникальный уровень. Те, кто может писать фоновые подпрограммы. Прикол в том, что станок может выполнять только одну программу и никаких параллельных процессов. Ну вот я так могу.

В моих уроках тут расписан как раз гибрид фортрана с кастрированным ассемблером.

А вообще, программирование в процессе наладки - это самая простая часть)

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

Но это же ПРОГРАММИРОВАНИЕ!!!))) Почему тогда вы не программист?)

В моих уроках

а ссыля есть?

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

У меня один коллега на прошлой работе такой был. Никто ему не хотел отправлять код на ревью, т.к. знали, что он найдёт, до чего доебаться что оптимизировать, шлифануть и отрефакторить. Поэтому, если был выбор, отправляли на проверку кому угодно, только не ему)

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

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

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

Это проблема не языка как такового. Просто преждевременная оптимизация вредна. Здравое количество говнокода вполне может жить в проекте

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

Это проблема не языка как такового.

Может дело и не прям в языке, но в "фандоме", который вокруг него создан. Культ вокруг плюсов, то, зачем он нужен и КАК на нём нужно программировать. И этот культ будет влиять на мышление людей, которые создают Плюсы, т.е. разрабатывают стандарт C++. И получается, что это становится в том числе проблемой языка. Хотя конечно, можно кодить без этих представлений. Если ты можешь не ориентироваться на мнения своих коллег и мнение коммьюнити. Но я мне сложно. Мне важно чужое мнение(

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

Это проблема не языка как такового. Просто преждевременная оптимизация вредна. Здравое количество говнокода вполне может жить в проекте

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

Просто преждевременная оптимизация вредна.

Согласен.

Здравое количество говнокода вполне может жить в проекте

Абсолютно согласен))

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

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

Я специально использовал переменные разного типа данных, чтобы не было соблазна запихать их в массив и в цикле перебрать это добро.

Lua:

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

типа на Lua можно запихивать переменные разного типа в массив?

показать ответы