Обновить
5

Пользователь

Отправить сообщение

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

Да, это действительно альтернативный вариант (хоть я и не так часто встречал такое в реальном коде). И это уже лучше, чем иметь непрерывную простыню.

Хотя на мой взгляд, есть у этого и минусы по сравнению с функциями. Как минимум, функциям можно дать красноречивые названия, описывающие происходящее.

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

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

С кодом ведь точно так же, хорошо структурированный код проще воспринимать, по нему удобней ориентироваться.

Ему придётся прыгать вверх-вниз по коду, читая каждую такую функцию.

Это разве проблема в современных IDE/редакторах кода? Обычно для того, чтоб перейти к определению фукнции или вернуться обратно, достаточно нажать одну-две кнопки.

“row[inn] = (int)row[inn]; if strlen(row[inn]) != 11 throw new Exception…” было бы “checkInn(row[inn])”

Выглядит как код на С++, написанный в стиле Си, что само по себе не очень хорошо пахнет в большинстве контекстов.

Просто в результате вместо одной легко читаемой последовательно простынки было бы 50 носовых платков, каждый из которых невозможно переиспользовать,

Смысл деления на функции не только в том, чтоб их можно было переиспользовать, но и в том, чтобы:

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

  2. Ограничить контекст, в котором код выполняется.

И то, и другое нужно как раз для того, чтоб в коде было быстрее и проще понять, что происходит. Даже если код читается так же легко, как приключенческий роман, то для того, чтоб понять, что происходит в функции, (и найти место, которое ему нужно поправить) человеку придется прочитать все 500 строк кода, и к тому моменту, когда он дойдет до конца, он уже забудет, что конкретно там было в начале.

Так устроено человеческое мышление: человек не может удерживать в кратковременной памяти больше, чем 7±2 вещей. В простыне будет и сложнее найти нужное место в коде, и проще совершить ошибку из-за слишком большого контекста, о котором стоит помнить.

А вот серваку вызов полусотни абсолютно лишних функций совсем скорости не добавит.

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

И это следующий интересный вопрос. А что вообще происходит с алмазом при достаточно мощном ударе, но мимо плоскостей спайности? Он бьется как стекло?

Ну… отчасти. При сильном ударе мимо плоскости спайности трещина не имеет готовой дорожки и идет куда придется. Это будет выглядеть как раскол кремния или стекла. Поверхность скола получается не плоская, а раковистая — изогнутая, в виде вложенных дуг, будто отщелкнули чешуйку. У геологов это так и называется — раковистый излом. Любой, кто видел скол бутылочного стекла или скол кремневого наконечника, представляет картину.

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

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

Кстати, в статье не упомянуто, но в С++23 на замену CRTP пришел dedusing this, который позволяет писать миксины более понятно и менее многословно

  • без вариантов т.к. потребует непонятно откуда берущегося избытка других людей, причем не за миску баланды работающих.

По щелчку пальцев, конечно, специалисты не появятся. Но сама по себе эта проблема решаемая, если не отмахиваться от неё, а вкладывать ресурсы в её решение.

Так не бывает и быть не может, банально потому что количество ресурсов на планете ограничено.

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

И ограниченность ресурсов планеты тут слабый аргумент. За последние сто лет на планете врядли стало больше ресурсов, однако средний уровень жизни радикально вырос. Все потому, что важно не только количество ресурсов, но и умение этими ресурсами распоряжаться.

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

Собственно, потому для общества полезно стремиться к тому, чтоб поменьше людей падало на дно, а побольше - становились вежливыми и образованными, и могли приносить больше пользы. Опять же, на 100% достичь этого едва ли возможно, но стремиться к этому нужно.

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

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

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

И отрезанность от мирового рынка - это не неизбежность, а следствие политики государства.

а какие менее экологичные компоненты использовались на Союзах?

Союз-5 по выводимой нагрузке (~17т) ближе с Протону (~23т), чем к отстальным Союзам(до ~7 т), так что скорей всего имелось в виду более экономичное топливо по сравнению с Протоном.

Вы не путайте процент от ВВП, и процент от бюджета
По первой ссылке речь идет об 1% от ВВП, а по второй об 2.76%-2.9% от бюджета (что примерно равно 0.4% от ВВП, как указано на графике).

Сейчас у нас, по сути, открывается аналог того периода (не только в части науки). Затраты уже большие, потоки госфинансирования уже переключены от корпоратов на науку и культуру, но отдача, когда это увидят нытики "на земле", всегда запаздывает.

А можно пруфы про потоки госфинансирования, переключенные на науку/культуру? Насколько я знаю, бюджеты на науку в РФ в последние годы только сокращаются.

  1. Как уже сказали выше, методы на 1000 строк и функции на 9 аргументов - это говнокод. Не надо так писать, и будет меньше проблем. Даже 100 строк для функции - уже много, если там не какой-то switch с минимумом логики. Функция должна быть такой, чтоб её можно было уместить в голове. Проблемы у вас возникли как раз

  2. Само по себе use-after-move не является ошибкой, в отличии от use-after-free. Объект после перемещения должен находиться в консистентном (но не обязательно определенном) состоянии. А объект в консистентном состоянии очень даже можно использовать (например, очистить и присвоить новое значение). Просто не стоит ожидать, что после перемещения объект будет таким же, как и после него.

  3. Если вы хотите быть уверенным, что аргумент, полученный функцией, не изменился где-то в середине функции, то просто сделайте его константным! Для этого и придумали константность. Но переместить его уже не получится, да.

Большинство - это вы и ваш круг общения? А общее население России? Оно не телек смотрит? А "флешка" - это физический носитель? А жёсткий диск или SSD? А из 8 миллиардов человек, тоже большинство платит за стриминг?

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

А как по-вашему, больше народу смотрит контент с физических носителей (от флешек до SSD), чем онлайн?

Если просто взять и отключить стриминг именно ФИЛЬМОВ - даже ВВП, скорее всего, особо не изменится.

Не скажу насчет ВВП, но удобство для обычных людей точно упадет, и спасибо за это они не скажут.

Вы бредите. То, что я прямо говорю, что проблема не в кодеке - это не равно "топить за ухудшение".

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

Это точно. Скорее уж вы - на стороне капитала, мы - на стороне народа. И народу нужен не кодек, народу нужен массовый виральный контент (в смысле не тиктоки, а длинная форма). И дело тут НЕ в картинке, а В СМЫСЛЕ.

С чего вдруг вы взяли, что я против того, чтоб в контенте было больше смысла? Я обеими руками за. Однако техническое развитие видеосервисов (в том числе разработка кодеков), и смысловое наполнение контента - это вещи перпендикулярные. Если не вкладываться в техническое развитие, смысловое наполнение контента от этого не вырастет.

Я не навязываю, я просто постулирую, что ложные тезисы (я специально сгущаю краски)

  • "все проблемы фильмов у нас из-за кодеков"

  • "менеджеры не те"

  • "студенты и программисты не те"

Имеют мало общего с реальностью. И проблема тут не в кодеках. Проблема в реальной экономике и вахтёрах.

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

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

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

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

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

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

У этого есть другие названия. Классическая "классовая борьба" (только вместо заводов-пароходов тут права на контент), экономика "рантье" или неофеодализм. Главное - вы будете проигравшим. Качество контента упадёт, цены вырастут, качество станет или дороже, или начнутся "пессимизации" ряда демографик зрителей.

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

Есть понятие разумной достаточности, а есть понятие излишества.

Это 420р по-вашему, разумная достаточность, а 720р - уже излишество? А может вообще возможность смотреть видео онлайн - это излишество? Вон 20 лет назад люди фильмы на дисках носили и не жаловались.

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

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

Есть так же видео, которых в хорошем качестве нигде не найти. Как правило, это что-то совсем старое. Если оно того стоит, то я конечно посмотрю, но это редкость. Обычно даже старые фильмы по новой оцифровывают с пленки уже с хорошим качеством.

Современный контент, как правило, доступен в качестве от HD и выше. И смотреть в плохом качестве его обычно скорей вредно.

Если брать фильмы, мультфильмы, и прочий развлекательный контент, - то в них авторы контента зачастую проделывают большую работу над качеством картинки. Чего ради я должен портить себе удовольствие от просмотра, выбирая 420р? Естественно, я стараюсь смотреть контент в самом высоком качестве, доступном для меня, чтоб увидеть как можно больше того, что авторы захотели показать.

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

Если подытожить, то если лично вам хватает 420р видео, то ради бога, никто не запрещает вам смотреть видео в плохом качестве. Но не нужно навязывать это другим.

А потребление контента - дело привычки, можно профилировать, многие еще помнят VHS, есть флешки, пиринговые сети, диски в конце концов. Плюс культурная пропасть.

Многие, конечно, помнят. Многие помнят даже времена до повсеместного распространения интернета и смартфонов. Но деградировать до технологий 15-20 летней давности мало кто будет рад.

Я скорее считаю что физические медиа и обладание контентом важнее, чем стриминг. А публицистические видосы можно и в 480p смотреть.

От лица обычных потребителей контента могу сказать, что 480р сильно хуже смотрится, чем 720р даже на обычном смартфоне. А уж если взять среднестатистический монитор компа, то 420р на нем будет смотреться как мыльное г-но, 720р ещё куда бы ни шло, и только честные 1080р радуют глаз.

В итоге, если контент, для которого картинка играет роль, доступен только в 420р, то я дважды подумаю, хочу ли я это смотреть. А если есть выбор между сайтом, на котором можно контент только в 720р, и сайтом, на котором его можно посмотреть в 1080р, то выбор между ними очевиден (в пользу последнего), даже если для второго придется заморачиваться (например, включать ***). И поверьте мне, я не один такой, тем более что современные производители контента -- фильмов, сериалов, мультфильмов, аниме и т. д. много вкладываются в то, чтоб показать зрителю красивую, детализированную картинку.

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

Верим?

Ну так в развитых странах в с/х занято порядка 1-2% населения. Если они продолжат работать по прежнему графику, это на ситуацию в целрм сильно не поменяет. Тем более что ИИ производительность труда в с/х едва ли сильно повысит.

Но вообще, если вы хотите поднять средний уровень доходов (зачем-то), то вам надо вводить не налог на богатство, а налог на бедность.

Я правильно понял вашу логику: чтоб уменьшить количество бездомных, нужно вводить налоги на отсутствие жилья/прописки. А чтоб было меньше больных, нужно ввести налог на болезни?

Как это, по вашему, должно сработать?

Это в смысле, что капиталист не всю полученную прибыль вкладывает в расширение производства?

Нет, это про то, что норма отдачи капитала в среднем - 5% в год, а экономика в среднем растет на 3% в год, то, если капиталист всю свою прибыль вкладывает в производство, то его капитал за , к примеру, 20 лет вырастет в 2,65 раза, а экономика в целом - в 1,8 раз.

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

Конечно, как вы и сказали, капиталист не всю свою прибыль тратят на расширение производства. Часть он потратит на яхты и все такое. Но большую часть прибыли он все же вложит в расширение капитала, и неравенство продолжит расти.

Много букв и совершенно пустые выводы.

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

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

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

Совершенно закономерно, что в такой ситуации он ушел, нежелая дальше участвовать в этом цирке.

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

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

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

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

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

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

1
23 ...

Информация

В рейтинге
4 749-й
Зарегистрирован
Активность