All streams
Search
Write a publication
Pull to refresh
0
0
Pushkoff @Pushkoff

C++ программист

Send message
Купил себе E52… 1.5 месяца в ремонте, но корпус все равно шевелится…
даже не смотря на то что очень понравился аккумулятор (а он был главной причиной выбора), в следующий раз очень хорошо подумаю прежде чем купить, что-то от фирмы Nokia…
Куда собрался уходить Баглан?
преждевременная пессимизация опаснее преждевременной оптимизации…
ну и нужно объяснение Кнутта его знаменитой фразы и что он разочарован в том, в каком контексте ее обычно используют…
Я хочу пройти собеседование в Яндексе, но не хочу слать резюме…
тем кто переходит с процедурных языков такое решение не очень очевидно, но по моему для обучения этому есть ВУЗы…
а я плюсанул…
обычно когда вспоминают о без ифовом программировании, в качестве альтернативы указывают статическую типизацию на шаблонах… и последний вариант на нее отличненько ложится, так как все известно в компайл тайме…
почему бы просто не поискать нормальную библиотеку синхронизации на С++?
по моему в LOKI есть хороший базис для такой библиотеки на основе автоматических переменных…
допустим этот код
        void processRequest ()
        {
            state_mutex.lock ();
            ++ num_back;
            unsigned tmp_num_back = tmp_num_back;
            state_mutex.unlock ();

            backend->doSomething (tmp_num_back);

            state_mutex.lock ();
            ++ num_requests;
            state_mutex.unlock ();
        }

будет выглядеть так
void Process()
{
  {
    AutoLock lock(SomeLock);

    ++ num_back;
    unsigned tmp_num_back = tmp_num_back;
  }

  backend->doSomething (tmp_num_back);

  {
    AutoLock lock(SomeLock);

    ++ num_requests;
  }

для большего удобства можно завернуть в дефайн
в смысле группы ядер, либо процессоры… так как в некоторых моделях L2 и L3 могут разделяться между несколькими ядрами, а доступ к этим кешам в пределах сотни тактов…
если разные ядра, то сначала запись в память, а потом чтение из нее, что больше чем кеш промах…
не тучу, а только то что используется… в своем языке вы решаете это копипастой…
дело в том что в играх есть не только графика… и всегда есть чем занять процессор, когда он освобождается от графики…
сейчас уже не редкость, что параллельно видеокарте, работает софтовый растеризатор, для того чтоб повысить эфективность кулинга объектов и на видюху отправлять только то, что действительно есть на экране…
они медленнее аналогов на шаблонах…
а как же великие программисты близарда которые написали ВоВ на С++??
(это я об этом )
чистый си либо удобнее и медленее, либо быстрее, неудобнее и слишком много копипасты…
поищите в сети реализацию универсальной сортировки на С и С++, решение на шаблонах выигрывает из-за отсутствия вызовов функций по указателю…
1, данный код имеет отношение к говнокоду в не зависимости от области применения…

2, я рассказал свою точку зрения, и прочитав все коменты понял что она не лишена здравого смысла, но не могу понять вашу точку зрения, то есть вы из-за довольно простой операции, такой как смена UI будете перелопачивать всю кору? то есть фактически переписывать все, где тут здравый смысл?
я 4 года работаю в геймдеве и знаю что привязывать что-то из core-system к UI большой грех, так как UI может поменяться в любое время дня и ночи, более того вы привязались к конкретному типу контрола, что является еще более изменчивым вариантом…
во вторых кора должна уметь жить сама по себе без какого либо вывода, так как тут уже говорили, однажды придется ее запустить в виде консольной утилиты…
лучше поищите доку от Сони pitfalls of object oriented programming
и что нибудь об Data Oriented Design и Aspect Oriented Programming чтоб зря не терять время в ожидании неизвестно чего…
мне кажется автор придает слишком большой смысл цифре 10…

Information

Rating
Does not participate
Location
Киев, Киевская обл., Украина
Registered
Activity