Pull to refresh
3
0

Software Engineer

Send message

Сравниваем c# операторы ?: vs if-else vs switch

Reading time 4 min
Views 8.6K
Сегодня на ревью прилетела очередная фабрика животных:

public static class AnimalsFactory
{
    public static Animal CreateAnimalByTernaryOperator(bool isCat)
    {
        return isCat ? (Animal)new Cat() : new Dog();
    }
}

В который раз расстроился, что C# заставляет делать каст объекта Cat к Animal. Но пусть лучше будет каст, ведь через if-else оператор код получается ещё длиннее:
public static class AnimalsFactory
{
    public static Animal CreateAnimalByIfElseOperator(bool isCat)
    {
        if (isCat)
            return new Cat();

        return new Dog();
    }
}

Отвлечёмся на минуту от ревью и попробуем разобраться:

  • будет ли отличаться IL-код в этих примерах?
  • будет ли один из примеров в выигрыше по производительности?

Читать дальше →
Total votes 6: ↑5 and ↓1 +4
Comments 14

Как начисляются проценты по кредиту и как это применить

Reading time 2 min
Views 103K
Всем привет! Когда я взяла ипотеку, решила досконально разобраться в том, как начисляются проценты, как лучше вносить досрочку и так далее. Сама я экономист. В общем, делюсь, надеюсь, будет полезно.

Платёж по кредиту состоит из двух частей — процентов банку и погашения основного долга.
При этом ежемесячно начисляемые проценты рассчитываются по формуле:



Исходя из этого:

  1. Сумма ежемесячно начисляемых процентов самая большая в начале, потому что в начале самый большой остаток основного долга. По мере его снижения снижаются и проценты.
  2. Сумма процентов “скачет” от месяца к месяцу, потому что зависит от количества дней в месяце.
  3. Срок кредита в расчёте ежемесячно начисляемых процентов не фигурирует, а это значит, что неважно, на какой срок брать ипотеку — переплата будет одинаковой, если одинаковы ежемесячные платежи.
  4. При внесении частичного досрочного погашения с уменьшением ежемесячного платежа переплата будет точно такой же, как в случае сокращения срока, если продолжать платить прежний ежемесячный платёж, а не уменьшенный.

Приведу расчёты по каждому пункту.
Читать дальше →
Total votes 64: ↑52 and ↓12 +40
Comments 202

Осторожно доктор

Reading time 11 min
Views 73K


Это ответ на неожиданную статью на Хабре психиатра с тридцатипятилетним стажем Александра Геннадьевича Данилина, также довольно известного youtube влогера. До его статьи на Хабре я не обращал на его творчество внимания, как выяснилось, зря.

Но сначала короткое предисловие.

Для меня психиатрия болезненная и личная история. К сожалению, это очень специфичная область медицины, в которой эзотерика и мракобесие очень успешно сопротивляются научному знанию. Дело в том, что доказательной медицине вообще чуть более тридцати лет. И медицинское сообщество только сейчас с кровавой рвотой исторгает из себя всякую гомеопатию. В психиатрии же ввиду объективных факторов процесс идет тяжелее всего. Эта область все еще является заповедником для шарлатанов, невежд, идиотов и фриков от науки со своими особыми трактовками и истинами, почерпнутыми из “философских размышлений”. Революция в нейронауках, в частности, в психологии и психиатрии происходит прямо сейчас. Увы, не для всех.
К не слишком компетентным, но придерживающимся стандартных программ и методик лечения психиатрам, я отношусь довольно холодно. Тем не менее, они делают то, чему их научили. Как правило, это позволяет им вывести пациента из острого психотического состояния. Ну, а дальше у него по крайней мере будет шанс. Возможно, в будущем разработают лучшие методики, будут лучше лечить. Но вот фрики, выковыривающие свои антинаучные гипотезы из известного места и применяющие их при лечении тяжелых пациентов, вызывают во мне острое нестерпимое желание жечь, жечь, жечь в драконьем пламени. Я слишком хорошо знаю, к чему приводит их невежество.

Я был в этом аду, я в нем горел.
Читать дальше →
Total votes 268: ↑242 and ↓26 +216
Comments 413

Что нового в C# 8?

Reading time 14 min
Views 72K

«Восьмерка» еще даже не вышла RTM а я уже пишу про нее пост. Зачем? Ну, основная идея что тот, кто предупрежден — вооружен. Так что в этом посте будет про то что известно на текущий момент, а если это все подстава, ну, поделом.


Читать дальше →
Total votes 108: ↑98 and ↓10 +88
Comments 230

Организация системы эвентов в Unity — глазами геймдизайнера

Reading time 4 min
Views 4.7K
Всем привет!

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

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

В итоге моя система позволяет не делать таких ссылок вовсе. Она решает главную задачу: мне с ней удобно работать, она не захламляет код лишним мусором и, вроде бы, не так ужасна по производительности как постоянные вызовы GetComponent().

Буду рад любой критике на тему, почему так делать не надо, и как делать всё-таки надо.
Читать дальше →
Total votes 11: ↑8 and ↓3 +5
Comments 14

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Registered
Activity