• Как разделить строку через тире?

    Руками добавлять по 4 символа в стрингбилдер и возможно регулярной , возможно linqом для извращенцев.
    Ответ написан
    Комментировать
  • Как написать нужные методы для работы с базой данных?

    skobkin
    @skobkin
    Гентушник, разработчик на PHP и Symfony.
    Вы, видимо, абсолютно не понимаете суть Data Mapper, который используется в Doctrine. Сущности не должны знать вообще ничего о базе данных. Вы где-то увидели работу с Active Record и решили, что и сюда нужно притащить такой же подход. Это неправильно. Здесь для получения данных вам нужно пользоваться репозиториями.
    Ответ написан
    2 комментария
  • В каком месте правильно писать запросы в symfony 3?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    В репозиториях.
    Ответ написан
    Комментировать
  • Как правильно организовать логику в Windows Forms c#?

    newross
    @newross
    Product owner
    реализовать паттерн MVVM или MVP. Еще упростить задачу можно перейдя на WPF.
    Ответ написан
    2 комментария
  • Как вывести список на comboBox?

    combox
    itemssource
    displaymemberpath or itemtemplate
    selecteditem
    binding
    datacontext
    Ответ написан
    Комментировать
  • Почему TextBox не растягивается?

    <DockPanel LastChildFill="True" Height="25">
    
                <Button DockPanel.Dock="Right" Content="Send" MaxWidth="50"/>
                <TextBox HorizontalAlignment="Stretch" Margin="0,0,5,0" Background="Blue"/>
            </DockPanel>
    Ответ написан
    Комментировать
  • Реально ли сейчас сделать "крутую" игру, имея такое изобилие инструментов?

    saboteur_kiev
    @saboteur_kiev Куратор тега Разработка игр
    software engineer
    Уровня крайзис - никак. Как вы себе представляете, как пару соратников смогут создать, написать и главное протестировать весь контент?

    Как вы собираетесь продать это все, избежать попадания на торренты?
    Ответ написан
    Комментировать
  • Реально ли сейчас сделать "крутую" игру, имея такое изобилие инструментов?

    k12th
    @k12th
    console.log(`You're pulling my leg, right?`);
    Контент-то как раз и есть самое трудоемкое. Вы же не думаете, что Ведьмак-3 делался командой из трех человек?

    Попробуйте написать пару квестов, задизайнить пару локаций (на бесплатных ассетах, для пробы). Теперь умножьте это на пару-тройку сотен, прибавьте музыку, лору, ошибки коммуникации, споры о вижене и тупо баги в движке и в ассетах. А, и баланс. Вы знаете, как делать баланс в играх?
    Я уже не говорю о том, что ассеты из магазина быстро набьют оскомину в первую очередь вам самому, что единомышленники имеют тенденцию сливаться с проекта, просить жрать, вступать в брак, рожать детей, что у вас у самого идея может поменяться в ходе работы, и тогда как минимум треть выбрасывается, а треть переделывается.
    Ответ написан
    Комментировать
  • Паттерн Repository и Active Record?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Что такое репозиторий? Это что-то что отвечает за хранение данных. Целиком и полностью. То есть вот простенький интерфейс простенького репозитория:

    interface UserRepository {
        public User getUser(UserID id);
        public void add(User user);
        public void remove(User user);
    }


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

    Репозиторий который умеет только выборки делать - это не репозиторий. Это штука для выборок, Finder. Так же мы должны тут заметить, что "строками таблиц" является объект типа User, а репозиторий представляет собой абстракцию от таблицы (очень упрощенно. есть еще паттерн table data gateway который отвечает именно за одну таблицу, репозиторий же может хэндлить и связи между таблицами и вообще оперирует именно объектами предметной области а не их отображением на базу).

    Active Record же делает именно то, что говорит название. Это объект, который представляет собой одну строку из таблицы. Он сам может себя вставить, обновить или удалить из таблицы. Однако "найти себя" он не может к примеру, за это отвечает какой-то другой объект (мне нравится название Finder, поскольку это именно то что делает объект - ищет наши строки таблиц). Частенько для упрощения методы файдеров делаются как статические методы.

    По сути ActiveRecord есть ничто иное как упрощенная комбинация из Domain Object + Row Data Gateway.
    Ответ написан
    Комментировать
  • На самом деле ли в книге ошибки?

    @dmitryKovalskiy
    программист средней руки
    Вы пишете код вне конструктора или методов класса Zoo. Соответственно код подчеркивается. Если прямо вот так написано в книге - это ошибка.
    Ответ написан
    4 комментария
  • Как вам такой способ оптимизации игры?

    GavriKos
    @GavriKos Куратор тега Разработка игр
    Это называется LoD - https://ru.wikipedia.org/wiki/Level_of_Detail
    Реально используется давно и часто.
    Про редактор - непонятно, зачем он нужен.
    Ответ написан
    Комментировать
  • Visual Studio. Вместо кнопки "запустить" появилась кнопка "присоединение". F5 не работает Как запустить проект?

    Nipheris
    @Nipheris Куратор тега C#
    Возможно, у вас не открыт ваш солюшен. Проверьте, что в Solution Explorer отображается содержимое солюшена.
    Ответ написан
    Комментировать
  • Зачем используют интерфейсы при проектировании архитектуры приложения?

    Nipheris
    @Nipheris Куратор тега C#
    Я думаю интерфейсы в этом примере применяются как и везде - для контроля за связями между компонентами крупной системы и для обеспечения заменяемости компонент.

    Раз уж так, разрешите мне прилинковать старый ответ: Какова роль интерфейсов в ООП?
    Ответ написан
    Комментировать
  • Зачем используют интерфейсы при проектировании архитектуры приложения?

    @LEKAPb
    Использование интерфейсов это всего лишь подход,который упрощает тестирование и позволяет более легко подменять реализацию, и еще много чего. С использованием интерфейсов проще создавать декомпозитные приложения с возможностью расширяемых модулей. Самый простой и понятный пример зачем нужны интерфесы, это создать систему подключаемых плагинов к приложению.www.vr-online.ru/content/c-plagin-za-5-sekund-3890
    Ответ написан
    Комментировать
  • Цена перехода с С# на C++?

    GavriKos
    @GavriKos
    Самая боль для новичка, с которой вам придется столкнуться в плюсах - это ручное управление памятью. Это если консольные прилаги (а с них и надо начинать!).
    По поводу времени перехода - забудьте такое понятие - его невозможно измерить. Например, простую консольную программу вычисления факториала (если представляете как ее писать на шарпе) вы напишете в тот же день, когда установите студию. А написать что то очень серьезное возможно не сможете еще года пол.
    Книги - ищите поиском, тема 100 раз поднималась.
    Процесс перехода - в кратце - чутка читаете про синтаксис (Шилдт), выбираете себе маленькую задачу, реализуете, просите кого то проверить.
    Ответ написан
    1 комментарий
  • Немного про замыкания в PHP?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    А каковы границы тут ?


    А тут никто никуда не ходит вообще. У вас есть скоуп функции и наружу вы ходить не можете. Вы можете снаружи прокидывать нужные переменные в скоуп вашего замыкания (use ($tax, &$total)). То есть вы просто даете вашему замыканию попользоваться этими переменными.

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

    p.s.
    Но в вашем случае в этом нет ровным счетом никакого смысла. Если вам надо просто сумму посчитать - вам стоит использовать функцию array_reduce, правда тогда придется изменить еще и способ, как вы храните ваши "продукты". А еще вот эта штука:

    $pricePerItem = constant(__CLASS__ . "::PRICE_" .
                        strtoupper($product));


    Попахивает "дурными решениями". Пощадите тех, кто будет работать с вашим кодом через пол года (даже себя самого). Код должен быть не "коротким" а "понятным". Код чаще читают чем пишут. Все должно быть не двусмысленно, выражать что вы хотели сделать и не требовать комментариев (а все что требует комментариев выносится в приватные методы с адекватным названием).
    Ответ написан
    5 комментариев
  • Как перевести число в строку без потери формы?

    Если задача именно избавиться от экспоненциальной формы, то подойдет такое решение
    string formatted = String.Format("{0:F20}", value);
    Ответ написан
    Комментировать
  • В чём проблема с доступом к полям структуры внутри списка?

    Когда вы достаете структуру из списка через индексатор, то возвращается ее копия, вот для нее вы и вызываете метод. Потом она уничтожается, а та что лежит в списке останется не измененным.
    Ответ написан
    Комментировать
  • C#. Операторы доступа для сокрытия, но не для защиты?

    yarosroman
    @yarosroman Куратор тега C#
    C# the best
    Это в С# есть рефлексия и метаданные у классов, в том же С++ все это отсутствует. Плюс не во всех случаях рефлексия работает. Плюс в будущем, придется использовать библиотеку, и вы просто забудете, что можно трогать (если все публичным сделать), а что нельзя.
    Ответ написан
    Комментировать
  • C#. Операторы доступа для сокрытия, но не для защиты?

    @Sing303
    Инкапсуляция позволяет повысить надёжность программы и делает код более самодокументированным.

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

    Не понятно, почему вы не хотите следовать инкапсуляции в своих проектах, разве это добавляет сложности?
    Ответ написан
    1 комментарий