Здравствуйте, Sinclair, Вы писали:
K>>Я часто после end; пишу комментарий вроде //next q, так становится понятнее. S>А можно просто делать отступы
1) Делание отступов тоже занимает время.
2) Я часто помещаю в одну строку несколько операторов.
3) Вместо отступов я размечаю функциональные блоки кода комментариями.
"Ты должен сделать добро из зла, потому что его больше не из чего сделать". АБ Стругацкие.
Здравствуйте, Khimik, Вы писали:
K>Здравствуйте, Sinclair, Вы писали:
S>>Зато эти отступы позволяют быстро видеть границы "вертикальных" блоков, а не выискивать глазами очередной end среди нагромождения ключевых слов:
K>Я часто после end; пишу комментарий вроде //next q, так становится понятнее.
У меня мозг устроен как-то не так как у остальных людей; это проявляется в том, что я пытаюсь войти во все тусовки, немного ознакомиться со всеми точками зрения, и не избегаю когнитивного диссонанса а стремлюсь к нему. Это привело, в частности, к тому, что у меня есть невроз: какая-то часть моей психики находится на стороне паскалистов, и бывало, что я хотел произнести “плюсовики”, а чуть не оговорился сказав “крестобляди”. С этим можно жить, и как мне кажется это помогает мне понимать психологию астисишников-паскалистов.
Я очень развит духовно, и поэтому едва освоил Паскаль в 14 лет, как через считанные месяцы стал одним из самых продвинутых какиров в 9 классе, и даже тогда я понял, что надо ставить отступы.
Нет такой подлости и мерзости, на которую бы не пошёл gcc ради бессмысленных 5% скорости в никому не нужном синтетическом тесте
Здравствуйте, пффф, Вы писали:
П>Попробуй пройтись отладчиком
1. Что такое отладчик и зачем он нужен?
2. А что, разве генерация отладочной инфы поддерживает только номера строк, но не поддерживает номер символа в строке?
3. Тернарник делает то же самое, пишется в 1 строчку, но никто не жужжит
Нет такой подлости и мерзости, на которую бы не пошёл gcc ради бессмысленных 5% скорости в никому не нужном синтетическом тесте
Здравствуйте, T4r4sB, Вы писали:
TB>1. Что такое отладчик и зачем он нужен?
Нет никакого желания холиварить с любителями медитировать над исходным кодом.
TB>2. А что, разве генерация отладочной инфы поддерживает только номера строк, но не поддерживает номер символа в строке?
Ты где-то такое видел?
TB>3. Тернарник делает то же самое, пишется в 1 строчку, но никто не жужжит
Я пишу в четыре строчки, если там есть какие-то вызовы:
auto var = getCondition()
? makeSomething()
: makeSomethingElse()
;
Это удобно ещё и тем, что можно по-быстрому закоментить какую-то ветку, вставить альтернативную реализацию, проверить, и потом удалить либо новую версию, либо старую
Здравствуйте, пффф, Вы писали:
П>Нет никакого желания холиварить с любителями медитировать над исходным кодом.
Я люблю медитировать над полноценными дампами, где сразу вся необходимая инфа про состояние программы в данный момент
TB>>2. А что, разве генерация отладочной инфы поддерживает только номера строк, но не поддерживает номер символа в строке?
П>Ты где-то такое видел?
Да. Когда свой компилятор нового языка писал (через генерацию LLVM IR), то добавить туда отладочную инфу с номерами символов, которая ещё и нормально подхватывалась MSVC — оказалось совсем не сложно
П>Это удобно ещё и тем, что можно по-быстрому закоментить какую-то ветку, вставить альтернативную реализацию, проверить, и потом удалить либо новую версию, либо старую
Закомментить ветку, вставить вывод лога итд — это несколько секунд, сборка занимает намного больше времени (крестопроблемы). Не знаю, как в Жабе, там наверное это действительно заметно.
Нет такой подлости и мерзости, на которую бы не пошёл gcc ради бессмысленных 5% скорости в никому не нужном синтетическом тесте
Здравствуйте, пффф, Вы писали:
П>Попробуй пройтись отладчиком
В принципе это то же, что и a(b(c), d(e)). Тут тоже в одной строчке три действия и те же вопросы про отладчик возникают, но вроде никто не призывает это разносить на 3 строки.
Некоторые отладчики (например идея) при установке брякпоинта умеют спросить, на какое именно выражение программист его хочет поставить. И по шагам умеют работать в пределах строки. Не знаю, что там в дельфи.
Здравствуйте, T4r4sB, Вы писали:
П>>Нет никакого желания холиварить с любителями медитировать над исходным кодом.
TB>Я люблю медитировать над полноценными дампами, где сразу вся необходимая инфа про состояние программы в данный момент
Я рад за тебя
TB>>>2. А что, разве генерация отладочной инфы поддерживает только номера строк, но не поддерживает номер символа в строке?
П>>Ты где-то такое видел?
TB>Да. Когда свой компилятор нового языка писал (через генерацию LLVM IR), то добавить туда отладочную инфу с номерами символов, которая ещё и нормально подхватывалась MSVC — оказалось совсем не сложно
Я рад за тебя
П>>Это удобно ещё и тем, что можно по-быстрому закоментить какую-то ветку, вставить альтернативную реализацию, проверить, и потом удалить либо новую версию, либо старую
TB>Закомментить ветку, вставить вывод лога итд — это несколько секунд, сборка занимает намного больше времени (крестопроблемы). Не знаю, как в Жабе, там наверное это действительно заметно.
Здравствуйте, vsb, Вы писали:
П>>Попробуй пройтись отладчиком
vsb>В принципе это то же, что и a(b(c), d(e)). Тут тоже в одной строчке три действия и те же вопросы про отладчик возникают, но вроде никто не призывает это разносить на 3 строки.
Не призывает, но это тоже неудобно
vsb>Некоторые отладчики (например идея) при установке брякпоинта умеют спросить, на какое именно выражение программист его хочет поставить. И по шагам умеют работать в пределах строки. Не знаю, что там в дельфи.
Я тоже не в курсе, что там в дельфи.
Но MSVC и VSCode так не умеют.
VSCode вообще не умеет в интелисенс для параметров шаблонов, только от безнадеги на нем сижу
Здравствуйте, пффф, Вы писали:
п> Это удобно ещё и тем, что можно по-быстрому закоментить какую-то ветку, вставить альтернативную реализацию, проверить, и потом удалить либо новую версию, либо старую
VCS, не?
Здравствуйте, T4r4sB, Вы писали:
TB>Я люблю медитировать над полноценными дампами, где сразу вся необходимая инфа про состояние программы в данный момент
Да, в догонку. Твой полноценный дамп не расскажет, каким путем программа пришла в это состояние. И он также не расскажет, куда программа двинет дальше.
Здравствуйте, пффф, Вы писали:
П>Да, в догонку. Твой полноценный дамп не расскажет, каким путем программа пришла в это состояние. И он также не расскажет, куда программа двинет дальше.
Да, бывает что приходится добавлять дополнительно отладочные принты. Но вообще код должен быть спроектирован так, чтоб в любой точке дамп позволял понять всё, что нужно.
Нет такой подлости и мерзости, на которую бы не пошёл gcc ради бессмысленных 5% скорости в никому не нужном синтетическом тесте
Здравствуйте, T4r4sB, Вы писали:
П>>Да, в догонку. Твой полноценный дамп не расскажет, каким путем программа пришла в это состояние. И он также не расскажет, куда программа двинет дальше.
TB>Да, бывает что приходится добавлять дополнительно отладочные принты. Но вообще код должен быть спроектирован так, чтоб в любой точке дамп позволял понять всё, что нужно.
А, ты хочешь поговорить о поведении сферических коней в вакууме, когда ты сидишь на проекте 20+ лет?
Я чаще меняю работу. И пройтись под отладчиком по коду, задав свои входные условия, и посмотреть, как проходит execution flow, для изучения очередного дерьмового фрейворка — это бесценно.
А методы медитации над херотой очень любят в дерьмоконторах типа яндекса или вк, я там это всё понюхал и свалил, сейчас промышленность поднимаю, а не развожу хомячков рекламой.
Re[2]: Оптимизация через разделение/вынос функционала
Здравствуйте, Khimik, Вы писали:
K>Азарту ради, я написал код с сортировкой с использованием дополнительной памяти (деление интервала значений на секции):
K>Прежде чем кликать по спойлеру, ответьте на вопрос — вы бы легко написали этот алгоритм?
По спойлеру не кликал, там какая-то студенческая практическая работа первокура, скорее всего.
Если бы ты знал, что приходится делать разработчикам в реальной жизни...
Но ты лучше экономь моск, а то кто без тебя Россию обустроит
K>Мой алгоритм вышел примерно на 30% быстрее стандартной быстрой сортировки со схемой Хоара. Памяти он расходует не особо много. А вы бы опять искали готовый алгоритм вместо голимого придумывания велосипеда?
Скорее всего ты обосрался с тестами, или намухлевал
Здравствуйте, Khimik, Вы писали:
K>1) Делание отступов тоже занимает время.\
Не занимает — их делает IDE. K>2) Я часто помещаю в одну строку несколько операторов.
Я вам показал пример оформления вашего же кода с несколькими операторами в одной строке. Какие вопросы у вас остались? K>3) Вместо отступов я размечаю функциональные блоки кода комментариями.
По факту — нет, не размечаете.
На написание комментариев уходит больше времени, чем на автоматические отступы.
При этом при чтении кода, на поиск функциональных блоков по комментариям уходит гораздо больше времени. А типичный код читается примерно вдесятеро чаще, чем пишется.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.