моделировать наследование от биологических родителей нужно другими механизмами, а не наследованием классов
Совершенно верно, вот и я говорю то же самое. Наследование в ООП это механизм для реиспользрвания кода, и ни чего большего от него ожидать не стоит. Ести требуется моделировть предметную область, нужно использовать соответствующие инструменты, а не пытаться натянуть сову на глобус.
Супер-тип/под-тип это фрагмент теории типов. Было время когда ООП ставили рядом. Но здесь и невооружённым взглядом видно, что это разные вещи. Например, рекурсивные определения в роде A = B | A имеют практическое применение, а в ООП невыразимы и не имеют смысла.
Наследование в ООП, изначально задумывалось как механизм реюзинга кода. В таком виде оно бывает довольно удобным в определённых ситуациях. Главное не перегружать его лишними смыслами, иначе получается всякая ерунда в стиле LSP из SOLID.
Jaynes introduces the concept of the "bicameral mind", a non-conscious mentality prevalent in early humans that relied on auditory hallucinations.
Прямо как современные системы из двух LLM агентов: где один генерирует ответы, а другой их критикует - провоцируя первого на дополнительную рефлексию. При этом ни тот не другой по сути не отражают смысла вопроса. Логи их переписки в самом деле напоминают записки шизофреника.
Если в программе потребуется иерархия объектов, отражающая объекты (даже реальные) предметной области, кто нам это запретит?
В реальности отношения между обьектами гораздо сложнее, чем общее-частное. Для тех же кошек и собак есть куча разных способов классификации, где у примитивного механизма наследования из ООП просто не хватит выразительности. Как минимум, у любого реального кота всегда есть два родителя, а не ноль, один или три. Котята после рождения уже ни как не связаны с жизнеными процессами своих родителей. В ООП все не так.
Наследование в ООП это один из способов чисто механического переиспользования кода. Вы буквально в пару ключевых слов, как бы переносите уже понаписанный ранее для других задач код в новое место, как альтернатива копипасту. Это даже проще (примитивнее), чем алгебраические типы данных из теории типов.
мне кажется у дяди боба в совершенной архитектуре максимально просто описано, там в духе что процедурное
Книжки Роберта Мартина называются "Чистый код" и "Чистая архитектура" (а ещё "Чистый кодер" и "Чистый эджайл"). Дядя Боб - консультант. Он классный оратор и популист, вроде современных блоггеров. У него можно получиться риторике. Но я бы не советовал воспринимать его заявления на полном серьёзе. Это скорее развлекательное чтение - жвачка для ума, вроде хабра.
Классика это "Совершенный код" Стива МакКоннела. Стив был практиком когда ее писал.
Спорно, во всяком случае в школьных учебниках информатики у моих детей, многие темы описаны так, будто их специально хотели запутать. Много зауми и разной воды не по существу. Без нормального преподавателя, который поможет такой текст расшифровать, отделив зерна от графоманства, эти учебники довольно бесполезны.
Работа в интернациональных командах, где все говорят на ломаном английском, довольно сильно искажает картинку. Навык быстро говорить начинает восприниматься чуть-ли не как С1. В реальности С1 это практически нейтив, но нейтивам такая речь бьёт по ушам как разговоры иностранцев на стройке.
Если ваши знания ценны, то это уже не инфоцыганство
Ценность этих знаний ученик сможет понять только в контексте, спустя годы работы. Но сейчас он пришёл в школу не за знаниями, а чтобы "войти в айти" и потом работать чилить под пальмой, получая мешки денег (как школы пишут в рекламе).
Препод с его знаниями и задачками оказывается крайним. Психологически он воспринимается не как помощник, а как препятствие на пути к успешному окончанию курса. Плюс на упражнения постоянно нехватает времени - у взрослых людей всегда полно своих других, реальных проблем, которые нужно решать здесь и сейчас.
Мне через толстую стену очень слышно, а им не слышно и не мешает.
По-моему, шум соседей это больше психология, чем физика. Я почему-то спокойно отношусь практически к любым звукам в своей квартире - например, тому же холодильнику, - но соседские сильно раздражают.
Раньше жил в тихом районе на окраине, где утром просыпался из-за чирикания какого-нибудь воробья за окном или от жужжания залетевшей в форточку мухи. От соседей был слышен каждый шорох, это переключало внимание, мешало сосредоточиться и в итоге сильно бесило. Порой хотелось уйти из дома, чтобы их не слышать.
Отчасти проблему удалось немного сгладить просто познакомившись. Почему-то после этого стал воспринимать соседский шум гораздо спокойнее. Может осознание, что там не абстрактный непонятно кто, а Макс из 36-й опять затеял ремремонт, или Ия сверху с подругами снова что-то отмечают, радикально поменяли отнотношение.
Но принципиально проблема внезапно решилась, когда переехал ближе к центру города - в более шумный район. Здесь, на общем фоне городского гула, соседские звуки слышны не так отчётливо. Да, если специально прислушиваться, я все так же слышу лай собак, работу посудомойки или как сосед осваивает гитару, но в обычном состоянии практически их не замечаю даже ночью и могут спокойно работать или отдыхать.
Astral уже доказали свою уникальность, написав на rust пакетный менеджер uv и линтер Ruff. А это лучшие на сегодняшний момент инструменты. Седующим наверное перепишут сам питон.
В какой-то момент времени пытались разделять ООП как набор программистских приемов и ООД - как принципы дизайна. Но как-то не прижилось. Хотя часть путаницы этим снималось.
ООП в свое время был полезной мантрой - вспомните возможности тех языков. Сейчас языки в самом деле сильно эволюционировали, подчас до неузнаваемости.
Поблема в том, что академический народ перестал выдумывать для них новые определения, как это делали в былые времена по несколько штук в год. Инженеры, видимо от безысходности, стали изобретать фреймворки с ничего незначащими именами. А по сути Spring это же отдельная парадигма.
И вдруг всплывает "мелочь" — целый кусок новой страницы вообще никто не трогал
Интересно, можно-ли таким образом собрать карту покрытия статически - не запуская самих тестов? У вас в коде уже есть метаданные о страницах, локаторах и связи с шагами сценариев. Осталось лишь все это отрисовать поверх сайта.
В динамике тесты могут фейлиться на промежуточных шагах по разным причинам. В свою очередь, это влияет на отчёт, поскольку все последующие шаги сценария не выполнятся и элементы не будут подсвечены. Будет ощущение, что их вообще ни кто не учел в тестах, хотя это не так.
Биоинформатика тут во многом похожа на юриспруденцию, где каждое утверждение требует доказательств. Уже масса стартапов погорела на том, что LLM их просто выдумывали.
Сейчас применимость нейросетей в науке уперлась в достоверность ответов. Чтобы отделить в них значимые факты от пустых фантазий нужны тесты и эксперименты, которые все ещё безумно дороги и требуют кучу человеческого труда.
У этой фичи изначально были проблемы с законом. Скрыто детектируя посторонних, она тем самым вмешивается в частную жизнь этих людей. Ведь изображения людей - в общем случае, за рядом несущественных здесь исключений - это персональные данные. Посторонние ни каких соглашений на обработку, вероятно, ни кому не давали.
Поэтому майки после анонса фичу быстро прикопали. Иначе бы их с радостью затаскали по судам, а суммы тут приличные. Сейчас, похоже, что нашли какую-то юридическую лазейку.
Простота await тоже обманчива. На деле асинхронщина нужна не так часто, как в коде раставляются async / await. Они как чума: если в каком-нибудь месте появляется await, то он сразу расползается по всему коду вверх - где надо и где не надо. async add(x: int, y: int) - легко.
Go из-за своей нарочитой корявости в этом месте, вынуждает остановится и задуматься - что мы вообще пытаемся здесь изобразить. Может нам и не понадобится асинхронная функция сложения, если весь IO вынести из нее наружу? Таким образом, на практике, код на Go получается в основном синхронным, который легко писать и тестировать - все как мы любим.
При этом, встроенные инструменты для асинхронщины в Go дают больше контроля. Здесь практически любые паттерны асинхроного control flow реализуются в полэкрана, описывая все ваши намерения явно. Это потом сильно упрощает поддержку.
Вы забываете про один важный момент: забираться на следующую ступеньку гораздо легче, когда снизу помогают те, кому ты помог забраться на предыдущую ступень.
Только когда они потом делают за вас вашу прежнюю работу. Но это не соревнование, а карьера.
Другими словами Нэш подтвердил лучшую эффективность соревнования по сравнению с конкуренцией.
Лучше или хуже это наши оценочные суждения, которые зависят от того кто оценивает и обстоятельств. Нэш показал, что всю эту романтику можно свести к скучным математическим уравнениям и моделям. Как в математике не существует формулы всего, так и в жизни нет какого-то универсального алгоритма всеобщего счастья.
Любые рекурсивно определяемые структуры, например деревья.
Совершенно верно, вот и я говорю то же самое. Наследование в ООП это механизм для реиспользрвания кода, и ни чего большего от него ожидать не стоит. Ести требуется моделировть предметную область, нужно использовать соответствующие инструменты, а не пытаться натянуть сову на глобус.
Супер-тип/под-тип это фрагмент теории типов. Было время когда ООП ставили рядом. Но здесь и невооружённым взглядом видно, что это разные вещи. Например, рекурсивные определения в роде A = B | A имеют практическое применение, а в ООП невыразимы и не имеют смысла.
Наследование в ООП, изначально задумывалось как механизм реюзинга кода. В таком виде оно бывает довольно удобным в определённых ситуациях. Главное не перегружать его лишними смыслами, иначе получается всякая ерунда в стиле LSP из SOLID.
Прямо как современные системы из двух LLM агентов: где один генерирует ответы, а другой их критикует - провоцируя первого на дополнительную рефлексию. При этом ни тот не другой по сути не отражают смысла вопроса. Логи их переписки в самом деле напоминают записки шизофреника.
В реальности отношения между обьектами гораздо сложнее, чем общее-частное. Для тех же кошек и собак есть куча разных способов классификации, где у примитивного механизма наследования из ООП просто не хватит выразительности. Как минимум, у любого реального кота всегда есть два родителя, а не ноль, один или три. Котята после рождения уже ни как не связаны с жизнеными процессами своих родителей. В ООП все не так.
Наследование в ООП это один из способов чисто механического переиспользования кода. Вы буквально в пару ключевых слов, как бы переносите уже понаписанный ранее для других задач код в новое место, как альтернатива копипасту. Это даже проще (примитивнее), чем алгебраические типы данных из теории типов.
Книжки Роберта Мартина называются "Чистый код" и "Чистая архитектура" (а ещё "Чистый кодер" и "Чистый эджайл"). Дядя Боб - консультант. Он классный оратор и популист, вроде современных блоггеров. У него можно получиться риторике. Но я бы не советовал воспринимать его заявления на полном серьёзе. Это скорее развлекательное чтение - жвачка для ума, вроде хабра.
Классика это "Совершенный код" Стива МакКоннела. Стив был практиком когда ее писал.
Спорно, во всяком случае в школьных учебниках информатики у моих детей, многие темы описаны так, будто их специально хотели запутать. Много зауми и разной воды не по существу. Без нормального преподавателя, который поможет такой текст расшифровать, отделив зерна от графоманства, эти учебники довольно бесполезны.
Работа в интернациональных командах, где все говорят на ломаном английском, довольно сильно искажает картинку. Навык быстро говорить начинает восприниматься чуть-ли не как С1. В реальности С1 это практически нейтив, но нейтивам такая речь бьёт по ушам как разговоры иностранцев на стройке.
Ценность этих знаний ученик сможет понять только в контексте, спустя годы работы. Но сейчас он пришёл в школу не за знаниями, а чтобы "войти в айти" и потом
работатьчилить под пальмой, получая мешки денег (как школы пишут в рекламе).Препод с его знаниями и задачками оказывается крайним. Психологически он воспринимается не как помощник, а как препятствие на пути к успешному окончанию курса. Плюс на упражнения постоянно нехватает времени - у взрослых людей всегда полно своих других, реальных проблем, которые нужно решать здесь и сейчас.
По-моему, шум соседей это больше психология, чем физика. Я почему-то спокойно отношусь практически к любым звукам в своей квартире - например, тому же холодильнику, - но соседские сильно раздражают.
Раньше жил в тихом районе на окраине, где утром просыпался из-за чирикания какого-нибудь воробья за окном или от жужжания залетевшей в форточку мухи. От соседей был слышен каждый шорох, это переключало внимание, мешало сосредоточиться и в итоге сильно бесило. Порой хотелось уйти из дома, чтобы их не слышать.
Отчасти проблему удалось немного сгладить просто познакомившись. Почему-то после этого стал воспринимать соседский шум гораздо спокойнее. Может осознание, что там не абстрактный непонятно кто, а Макс из 36-й опять затеял ремремонт, или Ия сверху с подругами снова что-то отмечают, радикально поменяли отнотношение.
Но принципиально проблема внезапно решилась, когда переехал ближе к центру города - в более шумный район. Здесь, на общем фоне городского гула, соседские звуки слышны не так отчётливо. Да, если специально прислушиваться, я все так же слышу лай собак, работу посудомойки или как сосед осваивает гитару, но в обычном состоянии практически их не замечаю даже ночью и могут спокойно работать или отдыхать.
Astral уже доказали свою уникальность, написав на rust пакетный менеджер uv и линтер Ruff. А это лучшие на сегодняшний момент инструменты. Седующим наверное перепишут сам питон.
В какой-то момент времени пытались разделять ООП как набор программистских приемов и ООД - как принципы дизайна. Но как-то не прижилось. Хотя часть путаницы этим снималось.
ООП в свое время был полезной мантрой - вспомните возможности тех языков. Сейчас языки в самом деле сильно эволюционировали, подчас до неузнаваемости.
Поблема в том, что академический народ перестал выдумывать для них новые определения, как это делали в былые времена по несколько штук в год. Инженеры, видимо от безысходности, стали изобретать фреймворки с ничего незначащими именами. А по сути Spring это же отдельная парадигма.
Интересно, можно-ли таким образом собрать карту покрытия статически - не запуская самих тестов? У вас в коде уже есть метаданные о страницах, локаторах и связи с шагами сценариев. Осталось лишь все это отрисовать поверх сайта.
В динамике тесты могут фейлиться на промежуточных шагах по разным причинам. В свою очередь, это влияет на отчёт, поскольку все последующие шаги сценария не выполнятся и элементы не будут подсвечены. Будет ощущение, что их вообще ни кто не учел в тестах, хотя это не так.
В линуксах, в пакете bsdgames есть пасхалка мотивам кинофильма WarGames (1983):
Биоинформатика тут во многом похожа на юриспруденцию, где каждое утверждение требует доказательств. Уже масса стартапов погорела на том, что LLM их просто выдумывали.
Сейчас применимость нейросетей в науке уперлась в достоверность ответов. Чтобы отделить в них значимые факты от пустых фантазий нужны тесты и эксперименты, которые все ещё безумно дороги и требуют кучу человеческого труда.
Будет включать режим "босс пришел" и мирно переключаться с пасьянса на ворд.
У этой фичи изначально были проблемы с законом. Скрыто детектируя посторонних, она тем самым вмешивается в частную жизнь этих людей. Ведь изображения людей - в общем случае, за рядом несущественных здесь исключений - это персональные данные. Посторонние ни каких соглашений на обработку, вероятно, ни кому не давали.
Поэтому майки после анонса фичу быстро прикопали. Иначе бы их с радостью затаскали по судам, а суммы тут приличные. Сейчас, похоже, что нашли какую-то юридическую лазейку.
Простота await тоже обманчива. На деле асинхронщина нужна не так часто, как в коде раставляются async / await. Они как чума: если в каком-нибудь месте появляется await, то он сразу расползается по всему коду вверх - где надо и где не надо. async add(x: int, y: int) - легко.
Go из-за своей нарочитой корявости в этом месте, вынуждает остановится и задуматься - что мы вообще пытаемся здесь изобразить. Может нам и не понадобится асинхронная функция сложения, если весь IO вынести из нее наружу? Таким образом, на практике, код на Go получается в основном синхронным, который легко писать и тестировать - все как мы любим.
При этом, встроенные инструменты для асинхронщины в Go дают больше контроля. Здесь практически любые паттерны асинхроного control flow реализуются в полэкрана, описывая все ваши намерения явно. Это потом сильно упрощает поддержку.
Только когда они потом делают за вас вашу прежнюю работу. Но это не соревнование, а карьера.
Лучше или хуже это наши оценочные суждения, которые зависят от того кто оценивает и обстоятельств. Нэш показал, что всю эту романтику можно свести к скучным математическим уравнениям и моделям. Как в математике не существует формулы всего, так и в жизни нет какого-то универсального алгоритма всеобщего счастья.