Ответы пользователя по тегу PHP
  • Логин через бота телеграм, кто как привязывает пользователей?

    thecoder
    @thecoder Автор вопроса
    Разработчик веб-приложений и сервисов.
    Мой повседневный вариант, который охватывает только часть сценариев: в личном кабинете есть кнопка "подключить бота", которая генерирует код подключения и выводит инструкцию "активируйте бота и введите код".

    Можно перейти по ссылке на бота или найти вручную на телефоне по имени. Ввод кода в самом боте может быть отдельной командой или даже единственной командой для ботов-уведомителей. Пока не подключили, в кабинете висит состояние "выписан код 123-456-789, ждем подтверждения в боте".
    Ответ написан
    Комментировать
  • Ajax или websocket для отправки сообщений?

    thecoder
    @thecoder
    Разработчик веб-приложений и сервисов.
    Websocket использую как индикатор, что "на сервере поменялось", пересылая минимум информации. С клиента наверх через ws ничего не отправляю. Клиент понимает, что надо дернуть API, имеет при себе сессионные ключи и шлет полноценный запрос. Иначе путаница с данными. У некоторых клиентов ws не работает и надо заменить на другой метод. Основная логика "дернуть API и поменять состояние клиента" остается неизменной.

    Подход имеет право на жизнь в личных кабинетах, списках заказов и т.п. не слишком быстро обновляемых данных. WS соединение висит, почти не потребляя трафика и отправляет числа для индикаторов кол-ва заказов.
    Ответ написан
    Комментировать
  • Прогресс выполнения php foreach в ajax запросе?

    thecoder
    @thecoder
    Разработчик веб-приложений и сервисов.
    Вот обзор методов как асинхронно получать сообщения с сервера (вышеупомянутый комет - один из вариантов): stackoverflow.com/questions/11077857/what-are-long...

    Раньше делал врукопашную через веб-сокеты. Сейчас можно интеллигентнее.

    Вот хорошая обертка вокруг вебсокетов, реализующая паттерн подписки на события: wamp-proto.org Перед отправкой тяжелого аякс запроса, клиент устанавливает вебсокет-соединение и подписывается на событие "обновление %". Серверная часть внутри цикла отсылает сообщения подписчикам.
    Ответ написан
    Комментировать
  • Нужна ли каптча при csrf защите?

    thecoder
    @thecoder
    Разработчик веб-приложений и сервисов.
    Никаких препятствий для бота csrf не представляет. Например, я могу открыть сайт через phantomjs и программно нажать кнопку сабмита. Все нужные поля и куки будут на месте.

    Csrf нужен для того, чтобы уже залогиненный у вас пользователь не мог в фоновом режиме выполнять действия, посещая левый сайт. Т.е. зашел на порносайт, а он наспамил втихаря записей в твиттер, потому что в твиттере пользователь уже залогинен. Чтобы этого не было - генерируют токен при открытии оригинального сайта и привязывают к пользовательской сессии.
    Ответ написан
    Комментировать
  • Как выполнить php код при нажатии?

    thecoder
    @thecoder
    Разработчик веб-приложений и сервисов.
    Внутри обработчика нажатий блока на js можно отправлять XMLHttpRequest на сервер, например функцией $.get jQuery (это происходит в фоне, без перезагрузки страницы). На сервере уже считать и суммировать нажатия.
    Ответ написан
    Комментировать
  • Top level веб-разработка. Где и как?

    thecoder
    @thecoder
    Разработчик веб-приложений и сервисов.
    Вопрос космического масштаба. Полагаю, что не существует единого понятия hi-end класса. Это как в ресторане попросить "принесите самое вкусное блюдо". Стоимость проекта? Объем кода? Нагрузка? Изящество кода? С какой командой это делать? Лично мое понимание профессионализма и высокого класса - это когда клиент доволен и поставленные задачи решены, несмотря на неожиданные препятствия и противоречия.

    Нюансы реализации, естественно, совершенствуются и удачные ходы приходится собирать по крупицам.

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

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

    Модульность и низкая связность, автоматизация, выстраивание производственного процесса - достаточно занудная работа, которая значительно завязана на личные предпочтения, привычки, сложившийся стиль в команде. Здесь тоже нет однозначно выигрышного рецепта.

    Для новичков статей и учебников миллион. Чем дальше в лес, тем меньше информации в обучающем формате и вообще информации. В предельном случае максимального углубления в технологии, одиночество, т.к. не будет людей с кем посоветоваться, потому что они еще уроки для начинающих не освоили.

    В качестве практических действий, чтобы ответ не был слишком обобщенным, предлагаю подписаться на Youtube-каналы Академии Яндекса - там попадаются интересные фишечки, до которых самостоятельно можно долго доходить.

    www.youtube.com/channel/UCTUyoZMfksbNIHfWJjwr5aQ

    Англоязычные рассылки:

    css-weekly.com

    javascriptweekly.com

    nodeweekly.com

    Естественно, любимый БЭМ :)

    getbem.com

    ru.bem.info

    Успехов в совершенствовании.
    Ответ написан
    Комментировать
  • Как работают таймеры в играх?

    thecoder
    @thecoder
    Разработчик веб-приложений и сервисов.
    Если речь идет об игре, то все состояния, таймеры, основной цикл реализуются на сервере, а клиент получает обновления, чтобы показать адекватную картинку. Мне кажется важно иметь возможность обновить клиента именно в тот момент, когда произошло событие. Например, пришло сообщение в чате.

    Полагаю, подразумевался вопрос "как обновлять состояние игры в браузере". По ссылке расписаны варианты как дергать сервер, с примерами реализации: stackoverflow.com/questions/11077857/what-are-long...

    Вариант "дергать каждую секунду" не рассматриваем. Самый простой в реализации на клиенте для старых браузеров: long polling. Но если поддерживаются WebSockets (а сокеты сейчас все, кроме оперы мини поддерживают), надо использовать сокеты. Если забить на IE, то можно Server-sent events.
    caniuse.com/#search=web%20sockets
    caniuse.com/#search=eventsource
    Ответ написан
    Комментировать
  • Ценится ли IT-специалист, который умеет все?

    thecoder
    @thecoder
    Разработчик веб-приложений и сервисов.
    Очень глубокий и сущностный вопрос. Люди не винтики с рождения и всегда развиваются по всем направлениям сразу. Конечно, узкую специализацию проще продать, но в действительности узкой специализации не существует. Вы не сможете очень глубоко развиться, игнорируя остальные направления.

    Например, дизайнер, который не просто лепит всякий треш на потоке, потому что руку набил, а старается расти - неизбежно интересуется всеми проявлениями гармонии. Музыкой, литературой, кино, а также сопутствующими областями, в т.ч. 3D-моделированием, программированием и даже SEO. Иначе упрется в потолок. Хороший программист и веб-технолог находятся примерно в такой же ситуации.

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

    То, что будут поверхностные знания в некоторых областях - ничего страшного. Это типичное состояние руководителя (в т.ч. ведущего разработчика) "в общих чертах вопрос понятен, чтобы отличить качественную работу от лажи, но глубже разбираться нет смысла".

    В качестве резюме: дорого продать можно узкую специализацию, но как минимум также дорого можно продать широкий спектр навыков.
    Ответ написан
    Комментировать