Ответы пользователя по тегу Веб-разработка
  • Как лучше организовать структуру сайта услуг?

    @Akela_wolf
    Extreme Programmer
    Я бы вытащил раздел "Проблемы" на верхний уровень. А уже в нем сделал подразделы: компьютеры-телефоны-телевизоры и т.д. Это привлечет внимание пользователей к важному слову, потому что на подобный сайт приходят чтобы решить имеющуюся проблему, то есть это понятие в навигации сайта должно быть первым.

    И так же, на верхнем уровне, форму "Задать вопрос" или "Описать проблему", если функционал сайта такое предполагает.
    Ответ написан
    Комментировать
  • Как создать кнопку на сайте, которая блокирует функционал до завершения действия кнопки?

    @Akela_wolf
    Extreme Programmer
    Что значит "блокирует функционал"? Запрещает взаимодействовать с сайтом?

    Повесьте "поверх всего" прозрачный (или полупрозрачный) (position: fixed, размер по окну браузера), который будет перехватывать все клики. Таким образом, пользователь кликать по контенту сайта не сможет никак. Останутся нажатия кнопок на клавиатуре, но это уже по специфике сайта надо смотреть.
    Ответ написан
    4 комментария
  • Какой стек технологий выбрать для высоконагруженного MVP?

    @Akela_wolf
    Extreme Programmer
    Писать надо на том, что знаешь. От языка способность держать высокую нагрузку зависит слабо - есть вполне себе хайлоад (лично видел, платежная система), написанный на PHP.
    Для серьезного хайлоада важнее другая характеристика: не скорость работы, а стоимость ошибки. Если ваш хайлоад "ляжет" из-за какой-то ошибки (да еще с потерей части данных) - это будет очень-очень-очень плохой экспириенс для пользователей. А если это будет происходить неоднократно - потеря посетителей вам гарантирована.
    Поэтому у меня для хайлоада приоритеты:
    1. Надежность
    2. Скорость разработки
    3. Производительность

    Итак, по пунктам.
    Надежность. Это про то, насколько строго язык отлавливает ошибки программиста и насколько просто на нем написать подверженную ошибкам муть. Насколько просто будет сопровождать код, написанный на данном языке. В этом пункте ключевые слова "архитектура", "покрытие тестами" и "статическая типизация". Первые два пункта - это про любой язык, так как реализуются на уровне процессов разработки. Из предложенного списка языков статическую типизацию обеспечивают Java (Kotlin) в мире JVM и Typescript (не Javascript) в мире Node.js

    Скорость разработки. Это про наличие большого количества готовых библиотек и про богатые возможности языка для выражения требуемых программисту структур данных и алгоритмов. Тут фавориты те же: Java/Kotlin и Typescript. На мой взгляд, JVM-мир сложнее, но дает все-таки больше возможностей (тот же Spring обеспечивает создание бинов за пару аннотаций).

    Производительность. Не могу сказать о Node.js - не тестировал на производительность, но JVM обеспечивает очень хорошую скорость. Еще один немаловажный момент: очень часто в хайлоаде приложение чего-то ждет. Например, отправив запрос в БД ожидает ответа. А в это время могло бы обрабатывать другой запрос другого пользователя, а получив ответ из БД - вернуться к обработке первого (reactive programming). Для этого у нас есть разные реактивные фреймворки для той же Java (Reactor, Vert.x и т.п.) и, что особенно приятно, корутины в котлине, которые позволяют писать асинхронный код почти настолько же просто как и синхронный. На Javascript с их async/await тоже можно такое писать, хотя возможностей все-таки поменьше чем в Котлине.
    Опять же, с корутинами достаточно легко и просто реализуется многопоточность, в ноде с ней не все так просто (хотя она тоже есть).

    Таким образом, мой личный выбор для хайлоада: JVM и Kotlin.
    Альтернативный вариант: Node.js и Typescript.

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

    P.S. Также Kotlin является официальным языком для Android, поэтому можно подумать о том чтобы писать и мобильное приложение и сервер на одном языке.
    Ответ написан
    Комментировать
  • Какие символы разрешить в логине (имени пользователя)?

    @Akela_wolf
    Extreme Programmer
    Я бы разрешил латинские и русские буквы (если сайт включает русскоязычную аудиторию, конечно), пробел, дефис и подчеркивание, а также цифры и спецсимволы. Минимальная длина - 3-4 символа, максимальная длина - на ваше усмотрение (12-16 символов или даже больше).

    Логин регистронезависимый (то есть star guardian и Star Guardian - одинаковый логин). Также сделал бы список запрещенных логинов, таких как root, admin, moderator, support, helpdesk и т.п., которые можно использовать для социальной инженерии, чтобы представиться кем-либо из администрации сайта.
    Ответ написан
    Комментировать