Задать вопрос
  • Почему плохо писать код в шаблонах?

    @sidni
    Php Developer
    Все познается на больших проектах,
    в качестве примера возьмем методику MVC опенкарта где есть три слоя абстрации:
    1) если это запрос то для этого есть модель
    2) если это что-то из пхп кода то это контроллер
    3) если это хтмл то это шаблон
    Парни почистили от мусора код и "выкинули" в свет. Все просто красиво и самое главное бесплатно и без смс.
    Но, а теперь взглянем почему же все ненавидят опенкарт. А потому что разработчиками не предусмотрены моменты как можно расширять и кастомизировать код, и все пишут свои кастомайзы там где и предусмотренно, в контроллере и когда владельцы сайта начинают баловаться модулями то оказывается схожие по функционалу модули пытаются внедрить одновременно свой код в одно и то же место одного и тогоже контроллера и начинается чихорда когда одни функции используют данные которые будут получены двумя строками ниже или два разных модуля добавили свои параметры в стандартную функцию.
    многие умники догадались что можно весь треш перевести в шаблон где уже все данные получены, и контроллеры и шаблоны начинают разрастаться когда 3000-5000 строк в одном файле это норм и не такое видали, сайт начинает глючить, найти ошибку или добавить свой кастомайз становится просто невыносимым, я еще молчу про ocMod или vqMod (но это уже другая история)
    итог 3 версия опенкарта использует twig темплейты, где нельзя так просто "ворваться" со своим php кодом, но и основных проблем не решила.
    Ответ написан
    Комментировать
  • Почему плохо писать код в шаблонах?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Ну вот сломалась у тебя база данных. Ошибку выдаёт. Что будешь делать? Пол-шаблона то уже вывелось.

    Вообще хороший вопрос, в чем-то показательный.
    Новички все поголовно мыслят позитивными сценариями, причем линейными. Запросил - получил - вывел.
    И только с опытом приходит понимание, что на этапе запросил могут возникнуть проблемы. что на этапе "получил" из бд вылезто то, то что надо было вывести в заголовке страницы. Как этот фарш теперь провернуть назад? Что этап "вывел" тоже не так прост - иногда надо вообще ничего не выводить, а сделать редирект к примеру.

    Именно поэтому вывод начинается только после того, как вся логика отработала и все данные получены.
    Ответ написан
  • Почему плохо писать код в шаблонах?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Во-первых это хорошо для здоровья, например коллеги не будут вас бить ногами по нежным местам.
    Во-вторых - все что относится к формированию данных должно быть отделено от вывода, в идеале вынесено в модель, если завтра понадобится изменить модель, то никуда кроме места где описана модель лезть будет не нужно.
    В-третьих - такова структура нормальных приложений, мухи отдельно - котлеты отдельно, это позволяет быстро и точечно менять любой отдельный независимый компонент.
    Ответ написан
  • Как в Laravel routers подменить путь, если параметры запроса не найдены?

    @Kostik_1993
    Web Developer
    Cобери путь в контроллере, проверь наличие файла и верни тот который считаешь нужным
    Ответ написан
    Комментировать
  • Как избавиться от такого дублирования кода?

    Можно воспользоваться panic/recover и модифицировать возвращаемые параметры(если все-таки нужно вернуть ошибку)

    func myFunc() (err error) {
    	defer func() {
    		if r := recover(); r != nil {
    			log.Println(r)
    			internalhttp.NewJsonResponse().ErrorResponse(w, r)
    			err = r.(error)
    		}
    	}()
    	
    	...
    	
    	if err := myOtherFunc(); err != nil {
    		panic(err)
    	}
    
    	return
    }
    Ответ написан
    1 комментарий
  • Можете оценить фреймворк?

    Konata69lol
    @Konata69lol
    backend developer (php/go)
    С этим фреймворком вы наверняка провалите проект, т.к. будете вместо написания бизнес логики дописывать
    сам фреймворк, прикручивать к нему недостающие компоненты, фиксить баги и т. д.
    Ответ написан
    Комментировать
  • Поиск на сайте, с учётом разных вариантов написания слова (как у Google)?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Стивен Скиена - Алгоритмы Руководство по разработке, глава 8, страница 300. Но лучше не изобретать велосипед и просто взять движок полнотекстового поиска с поддержкой нечёткого поиска.
    Ответ написан
    1 комментарий
  • Как организовать выгрузку файлов с s3?

    inoise
    @inoise Куратор тега PHP
    Solution Architect, AWS Certified, Serverless
    По тому что в большинстве своем это длительный процесс. Создаём где-то в фоне задачу, которая выкачивает нужные объекты, пакует архив и загружает во временный s3, отдавая ссылку на файл. В php не делать скачивание и запаковку - отдать задачу серверу. Если это все происходит в AWS то это можно сделать на lambda, sqs, или даже с применением stepFunctions. Можно много чего придумать. Там есть несколько ETL сервисов, можно подумать в эту сторону. Всегда есть вариант использования просто виртуалки. В любом случае синхронно это не слелать
    Ответ написан
    1 комментарий
  • Где почитать о сборке пк?

    Jump
    @Jump
    Системный администратор со стажем.
    Скажите, что еще нужно добавить к этому и где можно прочесть как правильно подобрать комлектующие?
    Добавить можно что угодно, в зависимости от задач. Что именно вы хотите прочитать непонятно. Подбор комплектующих осуществляется на основании задач, стандартов и спецификаций производителя.

    На основне 1070 и AMD Ryzen 7 2700.
    Странно в основе указывать видеокарту.
    Ответ написан
    2 комментария
  • Где почитать о сборке пк?

    Punkie
    @Punkie
    Например, ITC делают сбалансированные сборки: https://itc.ua/articles/pk-mesyacza-iyul-2019/
    Ну и ютуб.
    Ответ написан
    Комментировать
  • Как работает switch?

    В спецификации на гошку это описано.
    In a case or default clause, the last non-empty statement may be a (possibly labeled) "fallthrough" statement to indicate that control should flow from the end of this clause to the first statement of the next clause

    То есть, fallthrough передает управление первой строчке следующего кейса, не проверяя никаких условий.
    Ответ написан
    7 комментариев
  • Как усовершенствовать код?

    mad_maximus
    @mad_maximus
    Для начала почитать про psr, потом избавиться от глобальных переменных и почитать про внедрение зависимостей, классы (если их вообще можно ввести в вп).
    Ответ написан
    Комментировать
  • Как начать делать игры после разработки сайтов?

    @HellWalk
    Сейчас я работаю бек энд разработчиком php. Немного знаю js, сейчас изучаю golang и пишу на нем проект. PHP был выбран как самый простой язык для начала карьеры, но писать сайты порой бывает скучно, а меня всегда манила разработка игр.

    Ну так и начинайте - сделайте какую-нибудь браузерную стратегию с общим миром. PHP + базового JS для этого вполне хватит (бои сделайте автоматическими - когда сразу результат боя выводится).

    Это может быть даже интересней, чем работа в "офисном" геймдеве, там своих проблем хватает.

    + будет свой проект в портфолио.

    Так же интересно, насколько глубокие знания математики нужны.

    Математика (если мы берем сферу простых браузерных игр без 3D графики) нужна для расчета баланса, экономики, но к этому моменту 99% инди-разработчиков и так отваливается - потому что думают, что разрабатывать игры, это также весело и легко как и играть в игры.
    Ответ написан
    Комментировать
  • Как начать делать игры после разработки сайтов?

    swanrnd
    @swanrnd
    Издатель HTML5 игр
    Все зависит от жанра. HTML5+JS+PHP хватит.

    Я бы сделал простенькую игру, Вот, допустим взять Тюрягу. Можно без графики сделать небольшой прототип. Повторить их механики.

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

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Вступить в команду в качестве программиста или геймдизайнера. Учить тот язык, который потребуется. Мне кажется, что (настоящему) программисту выучить любой язык не проблема при желании и необходимости (разве что С++ может показаться излишне сложным, если выбрать его в качестве первого языка, но в качестве второго уже не так страшно).

    Если самому собирать команду, то, скорее всего, придется забыть о программировании, т.к. других хлопот слишком много будет. И другие направления в геймдеве придётся долго и глубоко изучать, так что разумно будет программирование принести в жертву. И нужно будет чётко сформулировать, чем ваша игра будет выделяться, доказать это (хотя бы себе и команде), а потом повесить это в рамку в качестве иконы и всё время помнить об этом - ведь это то, что принесёт деньги. Абстрактная просто игра в вакууме прибыли не генерирует. Ну и всем остальным KPI тоже, конечно, уделять внимания в качестве управленца.

    Хотя, если ваша цель сделать простенькую игру в одиночку, и прибыль с проекта вам не нужна, то можете взять любой игровой движок, тот же Unity, и просто начать что-то делать. А дальше уже в зависимости от степени вашей мотивации и вовлечённости, вы либо добьетесь высот в этом деле, либо бросите, поняв, что это не ваше.
    Ответ написан
    3 комментария
  • Как начать делать игры после разработки сайтов?

    Zoominger
    @Zoominger
    System Integrator
    PHP был выбран
    как самый простой язык для начала карьеры

    Известное заблуждение. PHP гораздо более сложен, чем думают неопытные веб-"программисты".

    насколько логична моя идея войти в gamedev через бэк енд

    Ну примерно так же логична, как идти в пилоты пассажирских авиалайнеров после сдачи прав на категорию "B".

    Так же интересно, насколько глубокие знания математики нужны.

    Смотря, чем хотите заниматься. Если шлёпать код для баз данных или бэки для личных кабинетов, то не надо. Для написания 2D и 3D движков и приложений хорошая матподготовка на уровне хорошей профильной специальности необходима.

    Без обид, хотите в гейдев - учите C#.
    Ответ написан
  • Как обновить уникальное поле?

    be_a_dancer
    @be_a_dancer
    Backend/Fullstack Developer
    Так. Вопрос по слагу решается просто unique:table,id_to_ignore.
    Все безобразие, что вы понаписали решается двумя строками.
    $validatedFields = $request->validate($rules);
    $model->fill($validatedFields);
    Ответ написан
    6 комментариев
  • Почему у меня такой маленький вклад?

    DevMan
    @DevMan
    В интерфейс пользователя вклад выводится как заработанная сумма очков, делённая на 10 и округлённая методом floor (отбрасыванием дробной части числа).
    Ответ написан
    2 комментария
  • Почему у меня такой маленький вклад?

    0xD34F
    @0xD34F
    Потому что

    вклад выводится как заработанная сумма очков, делённая на 10 и округлённая методом floor
    Ответ написан
    1 комментарий