Ответы пользователя по тегу Веб-разработка
  • Можно ли заменить javascript языком dart/flutter?

    @deliro
    Хочется уже какой-то стабильности

    Для этого есть Elm на фронтенде и Rust на бэкенде
    Ответ написан
    Комментировать
  • Как подключиться к WIFI из сайта?

    @deliro
    Напомнило баян с башорга про "драйвера для cd-rom находятся на диске"
    Ответ написан
    Комментировать
  • Как подсчитывать время, которое пользовать проводит на веб-сайте?

    @deliro
    1. Пользователь открыл страницу и ушёл заваривать кофе. Потом забыл о странице и ушёл в лес на неделю. Вернулся спустя неделю, закрыл страницу. Сколько времени он провёл?
    2. Пользователь открыл страницу, проскроллил до середины за 10 секунд, переключился на другую, поработал там 30 минут, вернулся к твоей странице, посмотрел 5 секунд, закрыл её. Сколько времени он провёл?
    3. Всё тоже самое, только у пользователя стоит аддон, который выгружает вкладки из памяти.
    4. То же самое, что пункт №2, только это происходит на мобиле, он не выгружает браузер из памяти сутки, после чего телефон садится, после чего, спустя 12 часов, телефон снова включается и пользователь запускает браузер, вкладка с твоим сайтом всё ещё болтается в фоне
    5. Пользователь открыл страницу, но читает он со скоростью 1 буква в минуту и так он просидел 24 часа, после чего проскроллил ещё на страницу вниз и принялся читать новую порцию инфы. Сколько времени он проведёт суммарно после того, как дочитает эту порцию инфы?
    Ответ написан
    3 комментария
  • Что произошло с дизайном веба — почему стали такие большие разрешения для мобильных устройств?

    @deliro
    1. Доля мобильного трафика достигает 80-90% на большинстве ресурсов
    2. Минимальное десктопное разрешение, которое есть у 99% десктопных юзеров — 1366х768 (самые дешёвые 15.6 дюймов ноутбуки, которым уже 10 лет от роду. Я не шучу, с таким разрешением я первый ноут купил в 2010. А в 2009 на ПК уже был моник 1440х900). При этом самое частовстречаемое — Full HD (1920x1080). Всё что ниже — таблетки

    Отсюда вытекает вопрос: а зачем ради полутора землекопов сжигать деньги кастомеров/инвесторов, разрабатывая им отдельный интерфейс, если они и мобильной версией могут пользоваться, т.к. сейчас они полнофункциональные? Либо, если не разрабатывать отдельный, то зачем проектировать интерфейсы, ориентируясь на тех 1.5 землекопов, заставляя страдать (условно) остальные 99%?

    Более того, эти 1.5 землекопа обычно оказываются неплатёжеспособной аудиторией (раз уж у них до сих пор монитор/ноут старше 10 лет).
    Ответ написан
    6 комментариев
  • Какой стек технологии выбрать для сайта объявлений с посещаемостью до 500.000 в день?

    @deliro
    Зачем брать PHP для создания с нуля?

    12млн просмотров в день, если вспомнить типичное распределение нагрузки, выльется в пиковые 500-1500 RPS. При этом, большая часть времени будет тратиться на ожидание IO — базы данных и кэши. Что уже говорит о том, что язык должен поддерживать асинхронность, гринтреды, акторы или что-то подобное. Причём, 1000 RPS — это уже достаточно много, чтобы задумываться об оптимизациях и, возможно, горизонтальном масштабировании. И это, пожалуй, единственное требование для вашего продукта.

    Я бы брал Golang, как хороший компромисс между производительностью, надёжностью и скоростью разработки. Но нужно понимать, что плохо написать можно на любом инструменте.

    UPD.
    Я не рассматриваю Golang, как "преждевременную оптимизацию", а наоборот, как инструмент, который позволит отсрочить необходимость оптимизации.
    Ответ написан
    7 комментариев
  • Добавлять ли sourcemaps на готовый сайт?

    @deliro
    Добавлять сорцмапы на прод не надо. Но их надо генерировать и заливать в sentry, чтобы падения фронта можно было анализировать.
    Ответ написан
    Комментировать
  • Авторизация на секретных куках, это плохая практика в моем случае?

    @deliro
    В целом, это неплохо с некоторыми оговорками:
    1. Нельзя отозвать сессии
    2. Нельзя хранить там что-то изменяющееся и критичное, т.к. все предыдущие куки, которые ты выдал, будут валидными, даже если ты выдал новую
    3. Потеря секрета = возможность хакеру выдать себе любую сессию
    Ответ написан
    Комментировать
  • Сколько стоит разработка?

    @deliro
    В общем случае, стоит это ровно столько, сколько заказчик готов платить и за сколько ты готов работать. Отдельно считаются необычные хотелки заказчика (потому что фильтры фильтрам рознь), правки, варианты дизайна и, конечно, поддержка.

    Но конкретную цифру тебе тут никто не скажет. Я примерно такой проект на старте своей карьеры сделал за 10к, сейчас меньше 200к бы не взялся. Если ты говоришь месяц и считаешь, что будешь фигачить фуллтайм - считай свою месячную зарплату за цену.
    Ответ написан
  • Как узнать на сколько у тебя убогий UI/UX дизайн сайта?

    @deliro
    Я совсем не дизайнер, но вкинуть могу.

    1. Дизайнер должен отлично знать язык и его правила. "Картеж", "предостовляем", "отлиный способ" и "кыргызстане" с маленькой буквы отпугнут намного больше людей, чем убогий дизайн. Можно, конечно, долго упираться и говорить: "Это всего лишь макет", — нет, именно вот такое потом поедет на продакшн и будет "красоваться" там и пугать клиентов;

    2. За такие формулировки нужно бить палкой:
    Картинка
    5e63bd0fab28f886922363.png

    3. Дизайнер не может себе позволить такое показывать кому-либо, кроме мусорной корзины:
    Картинка
    5e63bdf80a97e041204847.png

    4. Чёрт, возьми! Отличное качество картинки!
    Картинка
    5e63bec9b73ca494712861.png


    В общем, паря, скачай себе с ближайшего трекера хотя бы одну книгу по дизайну и одну — по русскому языку, а потом продолжи работу.
    Ответ написан
    2 комментария
  • Где сделать красивый скрин сайта?

    @deliro
    Смотри, я сделал

    5e4d43b87d8a9758700837.jpeg

    В винде так можно сделать скриншотилкой от Яндекс.Диска, например
    Ответ написан
    6 комментариев
  • Как создать редактируемую таблицу на веб-странице?

    @deliro
    Чем тебе помочь? Возьми Django и его tutorial и делай. А Flask забрось подальше в угол, пока не научишься программировать.
    Ответ написан
  • Как вы используете jQuery и прочие библиотеки JS, установленные через npm?

    @deliro
    Собирают исходники в бандл (bundle) системами сборки — webpack / gulp. На выходе получают один js файл (если не использовать code splitting), в котором есть все библиотеки, выполнен tree shaking (удалён мёртвый код), код минифицирован (чтобы меньше весить и быстрее передаваться пользователю) и доведён до целевой версии (babel, который позволяет писать разработчику код с новыми фичами (из ES6), переводя его в целевой (сейчас это чаще всего ES5))

    Далее этот бандл автоматически или (реже) вручную внедряется в HTML.

    То, про что говоришь ты — это примерно как в 2020 писать на скалах углём.
    Ответ написан
    6 комментариев
  • Как стек backend выбрать для frontend разработчику?

    @deliro
    TS, PostgreSQL
    Ответ написан
    Комментировать
  • Сколько стоит час веб-разработчика-фрилансера?

    @deliro
    Ты веcь такой кругом молодец, то знаешь, это знаешь. А теперь представь себе среднестатистический проект, который должен приносить бизнесу деньги. За две недели работы ты едва напишешь хлипкий CRUD для данных, неправильно смаппив бизнес-сущности в объекты ORM, ещё через месяц натянешь какой-то слайдер на jQ, попутно захватив 2мб JS кривых библиотек, а через два заказчик поставит тебе плохую оценку, потому что твой ценник он оплатил не за то, что ему нужно, а потому что ты знаешь монады, которые ему даром не сдались.

    А теперь давай представим простого программиста. Из алгоритмов он с трудом вспоминает сортировку пузырьком, а двусвязный список — предел его знаний о структурах данных, и даже этим списком он пользовался два раза в жизни. Хаскель он никогда не видел в глаза, C++ учил только в школе, вместо этого пишет неэффективный код на PHP. И у него есть опыт. За день он распишет сущности, за второй сделает универсальный CRUD, на третий день поднимет фронт на React'е с SSR. Да, внутренности проекта будут "медленными". Вместо O(logN) что-то будет выполняться за O(N) или даже O(N^2), но всем похер. Пока всё работает на приемлемом уровне — бизнес радуется.

    Кстати, к чему эта поучительная лапша? Я хотел сказать, что всеми этими модными словами можно пугать друзей и преподавателей, но в реальной жизни все алгоритмы уже реализованы, все типы данных уже подобраны оптимально. Знать их полезно для себя (чтобы мозг не атрофировался), но не для работы. Для работы тебе нужны такие навыки как:

    * Оптимальный баланс между говнокодом и идеальным кодом
    * Оптимальный баланс между скоростью разработки и оптимизацией кода
    * Оптимальный баланс между поддерживаемым кодом и костылями
    * Умение использовать те инструменты, с которыми ты работаешь. Опять же, для того, чтобы писать быстро, при этом имея минимальное количество говнокода и обеспечивая максимальную поддерживаемость (в пределах сроков). Например, можешь выкинуть в помойку свой Vim, как бы круто ты себя не чувствовал, разрабатывая в консольном редакторе, если продукты от JetBrains позволят за это же время сделать что-то лучше или чего-то больше
    * Чувство "знаю больше менеджеров". Это то чувство, когда тебе кажется, что "вот эта фича скоро изменится" и надо сделать архитектуру заранее более гибкой. Или "вот эту фичу мы через месяц выпилим" и не надо тратить на неё силы — напиши костыль и через месяц с чистой совестью удали его
    * Знания, как сделать ту или иную фичу. Потому что фичи повторяются (немного видоизменяясь) от проекта к проекту. И если ты сделал что-то за два дня, в следующий раз ты похожее сделаешь за три часа

    Что касается инструментов, выбери любой полноценный фреймворк, который умеет решать 90%+ потребностей "из коробки": Symfony, Django, Laravel

    Всякие "минималистичные" поделия вроде Falcon, Flask (в PHP не знаю, я на питоне пишу) оставь хипстерам. Пусть они говорят: "Мой фалкон такой быстрый, он написан на Cython". Тебя это не должно волновать, потому что бизнес с твоей скоростью разработки уже заработал достаточно денег, чтобы купить ещё десять серверов, пока фалконисты неделю гуглили, как прикрутить миграциии и запустить юнит-тесты на VPSке за пять баксов.
    Ответ написан
    5 комментариев
  • Какой способ посоветуете в реализации свойств полей для продукта?

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

    @deliro
    S3
    Ответ написан
    Комментировать
  • Зачем нужен бэкенд, если можно создавать полноценные приложения на frontend фреймворках?

    @deliro
    Может быть, не знаю, что за панацея — этот всеми любимый Firebase, но как, допустим, на нём валидировать данные помимо валидации на клиенте? И я прошу учесть, что клиент никогда не является секьюрной стороной и всегда может подменить запрос, изменить код приложения и вообще отправлять запросы в обход фронтенда.

    Я представляю, как сделать на нём простейший CRUD, где юзеру будут доступны только его записи. А онлайн-банкинг получится? А как насчёт очереди заданий? Сделай мне без бэкенда простейший сервис, который меняет формат фильма и меняет его размер/аспект. Ну чтобы на ffmpeg, все дела. И естественно клиенту нельзя не отдавать ответ, пока не отрендерится весь фильм, надо делать это асинхронно. Или сделай мне приложение, куда я вкину исходники на Си/Go, выберу компилятор, а приложение отправит мне обратно бинарник скомпиленный. А вот ещё, смотри, придумал. А сделай мне систему, такую же, как Sentry, чтобы туда можно было спамить ошибками, а она мне на Vue.js на фронте выводила красивые графики всякие, ну ты знаешь. Или напиши мне телеграм-бота без бэкенда. А как насчёт логов? Например, я хакер и отправляю запросы через curl. У тебя будут логироваться они?
    Ответ написан
    Комментировать
  • Где лучше хранить флаг - в куки или в локалсторадж?

    @deliro
    Если у тебя один домен — в localStorage. Нет смысла таскать эту куку между запросами. Если есть поддомены — в куке, т.к. ты просто никак не пошаришь localStorage между доменами.

    Ещё лучше — в стейте своего SPA. Зачем тебе флаг кукой/стораджем, обозначающий, что юзер авторизован? Ну получай его при загрузке своего SPA и пусть он в ОЗУ хранится. Тем более, ты получишь реактивность.
    Ответ написан
    Комментировать