Вообще не имеет, но тут ведь экземпляр класса передается первым параметром.
Это псевдокод — иллюстрация.
В том и обяснение — нестатический метод первым параметром получает ссылку на сам класс — и именно поэтому имеет к ней доступ.
То есть ООП — это просто способ организации + сахар
Когда ты делаешь
var a = new MyClassA();
a.DoIt(1, 2);
Компилятор превращает в
var a = new MyClassA();
MyClassA.DoItStatic(a, 1, 2);
Где первый параметр автоматически именуется как this, который можно опускать.
Вдохновляющая история)
Хороший разбор с первопричинами дает более ценный опыт.
Навскидку, конечно, со многим можно не согласиться, но как нибудь в другой раз)
От себя добавлю, что очень ценным в копилку понимания было то, что методы — это по сути тоже сахар, позволяющий связать класс с функциями, предназначенными исключительно для его обработки и модификации
То есть
class MyClassA{
private int a;
public void DoIt(int b, int c){...}
}
На самом деле
class MyClassA{
private int a;
private static void DoIt(MyClassA this, int b, int c){...}
}
А еще мое имхо — самые мощные средства связаны с полиморфизмом (хотя это и не свойство ООП) и с сахаром, предназначенным для сокрытия.
Дзен кода — отсутствие кода.
Ненаписанный код выполняется мгновенно, не содержит багов, прост в понимании и использовании.
Обладает только одним минусом — обычно не выполняет требуемую задачу.
Но к этому идеалу нужно стремиться!
Ну с точки зрения кампаний это может быть и плюс — вместо одного незаменимого — парочка средненьких, которых, к тому же, можно заменить.
Ну то есть я не согласен с «явно увеличивает», но вот по поводу того, что проще заменить — это ведь плюс для проектирования и развития продукта.
Вроде у криптовалюты есть определенные характеристики — децентрализованная эмиссия и математические методы защиты транзакций.
Если применяется только блокчейн — это не делает ее крипто.
Просто электронная валюта / электронные ценные бумаги.
Впрочем в оригинальной статье вообще не было ничего даже про блокчейн.
Собственно в случае централизованной эмиссии и непонятно зачем там блокчейн — можно просто сделать централизованную систему хранения и защиты транзакций, и будет работать лучше.
Ну конечно, при желании можно это и так обставить и даже логично будет звучать.
Например, если человек рисует, у него развиваются не области, отвечающие за образное мышление, а области, отвечающие за «прием» образного мышления. Расширяется прием художественного канала.
А у агрессивного человека — вынужден он принимать агрессивную личность, и от того и специфические области мозга развиваются, и гормончики пошаливают.
Только вот откуда тогда эта личность получается? Что является источником и что — средой передачи?
Физика у нас одна на всех, какие физические процессы приемо-передачи могут осуществлять нейроны, и не могут воспроизводить приборы?
Почему их не принимают опосредовано?
Какая структура достаточно сложна и связана, чтобы их передавать?
В мозге миллиарды нейронов, процессы передачи импульсов, торможения и возбуждения нейронов неплохо изучены, как и крупномасштабные механизмы работы мозга (какие области примерно за что отвечают). У нас есть компьютеры, которые имеют высокую сложность и позволяют имитировать нейронные сети, показывая, как они неплохо справляются с определенными классами задач.
Да, нет полной теории, объясняющей работу сознания. Но и вопрос крайне сложный.
В любом случае более подходящей среды для такой вещи, чем мозг, видимо нет.
Нанеся специфические повреждения телевизору, вы сможете превратить канал «Рен-ТВ» в канал «Культура», пусть и с помехами?
Потому что изменение характера и личности из-за травм мозга и болезней имеет множество подтверждений.
Ну камон, вы ожидаете галер, кнутов и плантаций?
Или большая цифра года автоматически сделает мир прогрессивным, счастливым и свободным?
Понятно, что в глобальном смысле рабство побеждено — оно не считается нормой в большинстве стран, оно не законно и т.д.
Но в масштабах мира это большая и актуальная проблема — вот, к примеру, доклад ООН, во многих случаях рабство официально запрещено — но по факту существует.
Убийства, знаете ли, тоже противозаконны но, кажется, что с ними все еще нужно бороться.
И да, легко могу представить, как крупному дипломату или военному выдают медаль или другую оф награду с формулировкой в стиле «за борьбу с рабством»
Спасибо, очень неплохая статья — помогает понять процесс в базе.
Уроки по первому ogl действительно радикально проще — сделал инициализацию, очистку, отрисовку по точкам и flush.
Это забавный эффект — с одной стороны апи действительно стал лучше — вместо кучи исключений и флажков для разных режимов отрисовки — унифицированный пайплайн + шейдеры. Вместо нескольких способов отправки точек — только вертекс буфферы.
Но вместе с тем радикально вырос порог входа и базовый урок наполнен фееричные количеством бойлерплейта(который для реального проекта скорее всего будет сделан 1 раз и забыт)
Отлично получилось
Меня очень возмутила сборка раста из коробки на 180 кб, сократить ее значительно оказалось возможно, но до 4 кб дойти выглядит подвигом.
Хотя понятно, что стандартная библиотека.
Я ведь написал — «без изменения диеты».
В любом случае, чтобы сопоставить сколько ты сжег — нужно понимать, сколько ты потребил.
Проблема обычно в том, что с современной калорийной, сладкой и высокоэнергетической пищей можно легко выйти за норму в 2.5 к калорий и съесть за день, скажем 4к и организм легко усвоит тебе дополнительно 1.5 к калорий, которые ты потратил.
Конечно, спортсмен такое количество тоже может сжечь, но мы говорим о человеке, который только начал следить за весом/потреблением/расходом. Скорее всего, если он посчитает свое потребление, то увидит там цифры в духе «тебе нужно 7 часов активно заниматься бегом каждый день, чтобы это сжечь». А так пожалуйста.
Плюс математика процесса ведь не линейная, много энергии тратится просто на жизнедеятельность, пища усваивается по разному, организм может перейти в сберегающий режим, убивая тебя весь остальной день, кроме 3-х часов тренировок. Ты будешь растить хорошие, крепкие мышцы прямо под жирком.
Поэтому хороший совет — начать следить прежде всего за питанием. И только когда ты поймешь, как нужно, какая динамика, как питаться — включать в уравнение спорт.
Если же ты начнешь просто бегать — результата не будет.
Двигаться конечно нужно, но для здоровья, а не для снижения веса.
Похудеть, активно занимаясь спортом без изменения диеты — почти нереальное и малополезное занятие.
Это наверное дискуссионный вопрос, но вроде бы «стратегия» и так является частью «состояния». Ну то есть стратегия определяет семейство похожих алгоритмов с одинаковым интерфейсом, состояние — это стратегия применительно к бизнес логике + данные о непосредственно выбранном варианте.
Стратегия вообще универсальная и используется по факту и в «команде» и в «итераторе» (частный случай — алгоритм перебора коллекции)
Но в остальном согласен.
Ну то есть все с if-else нормально, но состояние — хороший способ их декомпозировать.
Просто тут примеры выглядят неудачными
Мне кажется сами условия — это неотъемлемая часть сложности предметной области, и вопрос лишь как ими управлять.
С самими if — else все нормально, их можно и нужно использовать.
Просто нужно понимать ограничения и сложности.
Но тут есть несколько разных проблем — большое количество условий и дублирование условных операторов на разных уровнях.
Первая проблема — большие каскады else if плохо читаемы. Их нужно просто декомпозировать по правильным модулям и сводить к плоским случаям в духе «либо выполнил операцию, либо вернул false ранним выходом». Ну и про нейминг не забывать.
Вторая проблема — множественные проверки, связанные с flow.
Их характерная особенность — когда в нескольких методах встречаются похожие наборы ифов или даже switch.
В этом случае да — речь скорее всего идет о том, что нужно использовать полиморфизм и состояния.
В остальных случаях все с ифами нормально. А если у вас нет хороших идей по организации кода — даже свич на 1000 строк неплохой архитектурный паттерн.
Это псевдокод — иллюстрация.
В том и обяснение — нестатический метод первым параметром получает ссылку на сам класс — и именно поэтому имеет к ней доступ.
То есть ООП — это просто способ организации + сахар
Когда ты делаешь
Компилятор превращает в
Где первый параметр автоматически именуется как this, который можно опускать.
В Python, кстати, self переменная задается явно
Хороший разбор с первопричинами дает более ценный опыт.
Навскидку, конечно, со многим можно не согласиться, но как нибудь в другой раз)
От себя добавлю, что очень ценным в копилку понимания было то, что методы — это по сути тоже сахар, позволяющий связать класс с функциями, предназначенными исключительно для его обработки и модификации
То есть
На самом деле
А еще мое имхо — самые мощные средства связаны с полиморфизмом (хотя это и не свойство ООП) и с сахаром, предназначенным для сокрытия.
Ненаписанный код выполняется мгновенно, не содержит багов, прост в понимании и использовании.
Обладает только одним минусом — обычно не выполняет требуемую задачу.
Но к этому идеалу нужно стремиться!
Ну то есть я не согласен с «явно увеличивает», но вот по поводу того, что проще заменить — это ведь плюс для проектирования и развития продукта.
Вроде в новости говорилось, что по договору раздела сбер должен провести ребрендинг в течении года.
Если применяется только блокчейн — это не делает ее крипто.
Просто электронная валюта / электронные ценные бумаги.
Впрочем в оригинальной статье вообще не было ничего даже про блокчейн.
Собственно в случае централизованной эмиссии и непонятно зачем там блокчейн — можно просто сделать централизованную систему хранения и защиты транзакций, и будет работать лучше.
Например, если человек рисует, у него развиваются не области, отвечающие за образное мышление, а области, отвечающие за «прием» образного мышления. Расширяется прием художественного канала.
А у агрессивного человека — вынужден он принимать агрессивную личность, и от того и специфические области мозга развиваются, и гормончики пошаливают.
Только вот откуда тогда эта личность получается? Что является источником и что — средой передачи?
Физика у нас одна на всех, какие физические процессы приемо-передачи могут осуществлять нейроны, и не могут воспроизводить приборы?
Почему их не принимают опосредовано?
Какая структура достаточно сложна и связана, чтобы их передавать?
В мозге миллиарды нейронов, процессы передачи импульсов, торможения и возбуждения нейронов неплохо изучены, как и крупномасштабные механизмы работы мозга (какие области примерно за что отвечают). У нас есть компьютеры, которые имеют высокую сложность и позволяют имитировать нейронные сети, показывая, как они неплохо справляются с определенными классами задач.
Да, нет полной теории, объясняющей работу сознания. Но и вопрос крайне сложный.
В любом случае более подходящей среды для такой вещи, чем мозг, видимо нет.
Потому что изменение характера и личности из-за травм мозга и болезней имеет множество подтверждений.
Или большая цифра года автоматически сделает мир прогрессивным, счастливым и свободным?
Понятно, что в глобальном смысле рабство побеждено — оно не считается нормой в большинстве стран, оно не законно и т.д.
Но в масштабах мира это большая и актуальная проблема — вот, к примеру, доклад ООН, во многих случаях рабство официально запрещено — но по факту существует.
Убийства, знаете ли, тоже противозаконны но, кажется, что с ними все еще нужно бороться.
И да, легко могу представить, как крупному дипломату или военному выдают медаль или другую оф награду с формулировкой в стиле «за борьбу с рабством»
Спасибо, очень неплохая статья — помогает понять процесс в базе.
Уроки по первому ogl действительно радикально проще — сделал инициализацию, очистку, отрисовку по точкам и flush.
Это забавный эффект — с одной стороны апи действительно стал лучше — вместо кучи исключений и флажков для разных режимов отрисовки — унифицированный пайплайн + шейдеры. Вместо нескольких способов отправки точек — только вертекс буфферы.
Но вместе с тем радикально вырос порог входа и базовый урок наполнен фееричные количеством бойлерплейта(который для реального проекта скорее всего будет сделан 1 раз и забыт)
Меня очень возмутила сборка раста из коробки на 180 кб, сократить ее значительно оказалось возможно, но до 4 кб дойти выглядит подвигом.
Хотя понятно, что стандартная библиотека.
Но мышцы красивее распределены)
В любом случае, чтобы сопоставить сколько ты сжег — нужно понимать, сколько ты потребил.
Проблема обычно в том, что с современной калорийной, сладкой и высокоэнергетической пищей можно легко выйти за норму в 2.5 к калорий и съесть за день, скажем 4к и организм легко усвоит тебе дополнительно 1.5 к калорий, которые ты потратил.
Конечно, спортсмен такое количество тоже может сжечь, но мы говорим о человеке, который только начал следить за весом/потреблением/расходом. Скорее всего, если он посчитает свое потребление, то увидит там цифры в духе «тебе нужно 7 часов активно заниматься бегом каждый день, чтобы это сжечь». А так пожалуйста.
Плюс математика процесса ведь не линейная, много энергии тратится просто на жизнедеятельность, пища усваивается по разному, организм может перейти в сберегающий режим, убивая тебя весь остальной день, кроме 3-х часов тренировок. Ты будешь растить хорошие, крепкие мышцы прямо под жирком.
Поэтому хороший совет — начать следить прежде всего за питанием. И только когда ты поймешь, как нужно, какая динамика, как питаться — включать в уравнение спорт.
Если же ты начнешь просто бегать — результата не будет.
Похудеть, активно занимаясь спортом без изменения диеты — почти нереальное и малополезное занятие.
Отличная статья!
Стратегия вообще универсальная и используется по факту и в «команде» и в «итераторе» (частный случай — алгоритм перебора коллекции)
Но в остальном согласен.
Ну то есть все с if-else нормально, но состояние — хороший способ их декомпозировать.
Просто тут примеры выглядят неудачными
С самими if — else все нормально, их можно и нужно использовать.
Просто нужно понимать ограничения и сложности.
Но тут есть несколько разных проблем — большое количество условий и дублирование условных операторов на разных уровнях.
Первая проблема — большие каскады else if плохо читаемы. Их нужно просто декомпозировать по правильным модулям и сводить к плоским случаям в духе «либо выполнил операцию, либо вернул false ранним выходом». Ну и про нейминг не забывать.
Вторая проблема — множественные проверки, связанные с flow.
Их характерная особенность — когда в нескольких методах встречаются похожие наборы ифов или даже switch.
В этом случае да — речь скорее всего идет о том, что нужно использовать полиморфизм и состояния.
В остальных случаях все с ифами нормально. А если у вас нет хороших идей по организации кода — даже свич на 1000 строк неплохой архитектурный паттерн.