Задать вопрос
  • Как определиться с зависимостями лендинга?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    Смешались в кучу кони, люди, GSAP, React, Three.js... Стоит немного систематизировать инструменты хотя бы по задачам, которые они решают. Не привязываясь к конкретным фреймворкам из большой троицы, у нас есть несколько классов инструментов в теме креативных сайтов:

    • Про готовые CSS-анимации - animate.css, Wow.js, и.т.д. Там много динозавров из времен jQuery. Такие штуки часто бывают не в тему дизайна, но стоит посмотреть и забыть. Хотя для сайтов в духе дизайнерской дичи, вроде той, что успешно делают в студии Артемия Лебедева - может быть и ок.
    • Про интерполяцию всего и вся. Тут обычно выбирают между GSAP и Anime.js. Первый вариант - более замороченный, есть полезные плагины, второй - попроще, но тоже хорош, в некоторых кругах даже более популярен. Для совсем простых задач - можно свой инструмент написать.
    • Про скролл, в основном в контексте CSS-анимаций. Тут Locomotive Scroll рулит.
    • Про переходы между экранами. Грубо говоря прокаченный роутер. Самый популярный - Barba.js. Раньше еще был Highway.js, но в последне время что-то про него мало говорят.
    • Про экспорт готовых анимаций из софта для анимаций. Тут нужно отталкиваться от софта. Обычно вопрос возникает в контексте AE и простых мультиков - тут Lottie, говорят, неплох. Но нужно дизайнера заранее консультировать по теме, чтобы лишнего не намалевал.
    • Про визуализацию данных. Тут полезно знать про d3.js, в основном ради готовых примеров.
    • Про трехмерный WebGL, чтобы не писать все руками. Самый популярный вариант - Three.js, в основном за счет экосистемы и горы готовых решений, но есть и альтернативы на любой кус и цвет. Для 2D -эффектов вообще ничего не нужно в большинстве случаев.
    • Плюс не стоит забывать про всякие вспомогательные штуки вроде WebFontLoader, Hammer.js, LeaderLine, и.т.д. К анимациям они не относятся, но в работе могут быть полезны, чтобы не писать все самому.


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

    А вообще угадать весь стек на много проектов вперед с первого раза, не имея ни малейшего представления о том, что там будет нужно, а что нет, скорее всего все равно не получится, так что может быть стоит попробовать разное в разных проектах (тем более речь идет про некоммерческие проекты, можно себе позволить), и посмотреть на то, какие вообще варианты бывают в разных классах задач, и что они помогают делать, а что - нет.
    Ответ написан
    1 комментарий
  • Покупка доменного имени и VPS для ООО?

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

    paran0id
    @paran0id
    Умный, но ленивый
    Дяденьки, отработавшие без диплома уже Х лет, упускают из виду, что за последние Х лет мир ИТ изменился. И не то что бы учить стали лучше, или задачи повысились до университетского уровня - нет, просто потребовался фильтр, отсеивающий на подлёте тех, что вчера таксист - сегодня погромист.

    И, да, отработал без диплома, и без военника, и вокруг половина таких же. Но у нас есть опыт, а у вас нет.
    Ответ написан
    3 комментария
  • Npm, Webpack, NodeJs с чего начать?

    @deliro
    Фронт развился в какую-то неправильную сторону, это правда
    Вкатиться на фронт очень сложно, это тоже правда. Причём, необоснованно сложно.

    Я бы выделил два пути, как можно въехать во всё это:
    1. Создать приложение на Vue или React по туториалам, затем разобраться, как и зачем оно всё
    2. Разобраться как и зачем оно всё (aka Vanilla JS), потом заняться реактами

    Имхо, вариант №2 предпочтителен и более прост, потому что на варианте №1 есть огромный шанс застрять, никогда не разобравшись, как оно работает а при любых нешаблонных ошибках поднимать лапки.

    Что здесь нужно понимать:
    1. Есть разные версии ES (ecmascript), они все обратносовместимые. Программист может писать на любой версии, какая ему нравится. Обычно берут последнюю стабильную

    2. Для проекта обычно есть две версии ES: та, на которой пишут программисты и та, которая исполняется в браузере или в ноде (об этом позже). Например, программист пишет на ES8, а код транслируется на ES5. Это позволяет использовать последние предсмертные хрипы писки моды JS при этом запуская всё на древнейшем говне вроде IE11. Перегонкой кода из JS/TS одной версии в JS другой версии занимается транспилятор: babel / esbuild / swc

    3. Новые версии JS содержат расширения стандартной библиотеки, которых нет в старых браузерах (например Array.from, Object.entries и т.п.). Эти дырки затыкают полифиллы, они же shims. Самая популярная дырозатыкательная машинка — corejs

    4. Весь код очевидно не пишется в одном файле и может быть написан на TypeScript (он же TS), JSX/TSX (реактовый синтаксис). Всё это нужно собрать в один или несколько файлов, то есть скомпоновать. Этим занимается bundler: часть webpack / esbuild / spark / etc.

    5. Этот же парень отвечает за то, чтобы та тысяча библиотек, что лежит в node_modules, попала в итоговый условный main.js, но не целиком, а только то, что используется. Последнее называется tree shaking (типа навозную кучу node_modules потрясли как дерево, что упало — то не нужно)

    6. (то самое "позже) Код может исполняться не только в браузере пользователя, но и на сервере без браузера вообще. Это нужно для SSR aka Server Side Rendering. SSR — это такой глобальный вонючий костыль для SEO. Дело в том, что стандартные SPA приложения содержат один DOM элемент, куда цепляется всё остальное приложение вроде реакта или вью, которое уже содержит всю вёрстку прямо в JS. Но не все поисковики согласны с таким подходом и некоторые (не будем показывать пальцем на яндекс) не умеют выполнять JS и индексируют только тот самый единственный DOM элемент, который существует на этапе отдачи страницы в браузер. Это уже потом к нему JS движком дорисовывается весь остальной сайт. Соответственно, сайт индексируется от слова "никак", а некоторым это важно. Например, когда SPA — это не админка. Для этого есть два выхода: страницы, важные для SEO, рендерить чем-то не-реактовым или сделать SSR — делать за яндекс работу на сервере (на ноде), представляя в уме, что у нас есть DOM и браузер (на самом деле нет), на выходе получать начальное состояние HTML, отдавать его клиенту (браузеру или поисковому роботу), а JS'ом её т.н. "гидрировать", иными словами — оживлять.

    7. webpack отвечает за всё вот это сверху в том или ином виде. Это такой кухонный комбайн, в который вкидываешь кучу хлама в одном виде, а получаешь другую кучу хлама в другом виде.

    Начать советую с parceljs, который сильно проще в освоении, чем webpack. И на написании кода максимально без библиотек.
    Ответ написан
    1 комментарий
  • Как рисовать изображением?

    glaphire
    @glaphire
    PHP developer
    Есть вариант:
    1. На один слой вставить картинку с желаемой "текстурой".
    2. Создать слой поверх него, закрасить, ластиком сделать нужную фигуру - так текстура будет просвечивать под фоном.
    3. Если нужно еще как-то обработать надпись, то можно манипулировать этими двумя слоями через выделение (select), но надо быть аккуратным с резкостью краев (там есть доп.параметры)
    Ответ написан
    1 комментарий
  • Какая разница между генераторами и массивами?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Ну собственно именно то, что написано.
    "Генератор позволяет" не значит "генератор гарантированно сэкономит память, ужав миллион строк в одну". Это значит, что если есть возможность не создавать массив в памяти перед тем как перебирать его значения, то можно написать функцию-генератор, результат которой будет выглядеть как массив, но при этом будет выдавать по одному значению. Это возможно в таких случаях, как генерация значений на лету или чтение данных из внешнего источника.

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

    То есть надо чётко понимать, что "экономит память" генератор только по сравнению с созданием полноценного массива.

    Там где вместо создания массива можно обойтись циклом, можно использовать и генератор. Но можно и не использовать - код будет прекрасно работать и без него.
    Там, где реально нужен массив, например с произвольным доступом или для накопления результатов вычислений, генератор превращается в тыкву
    Ответ написан
  • Как найти работу, если есть скиллы, но нет опыта?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Извиняюсь за такой ответ, но вам к психологу. Серьёзно. Излишняя дотошность в любом деле вредит ему, нужно уметь находить баланс. А про невротизм вам вряд ли кто-то подробно и тактично расскажет в рамках данного ресурса. Попробуйте задать этот же вопрос, например, на b17.ru (только без технических подробностей, конечно же).
    Ответ написан
    2 комментария
  • Менеджер файлов для пользователя в проекте на PHP?

    ddv88
    @ddv88
    Binance Futures
    задолбал Google запросами: "file manager php", "media manager php", "media library php"

    Именно поэтому правильность гугления оценивается отдельно на собеседованиях.

    Вам нужен менеджер для клиента, а не для сервера. Соответственно и гуглить нужно например так "filemanager js", "filemanage vue", "filemanager react" и тд
    Первая же ссылка https://vuejsexamples.com/5-best-file-manager-for-....

    Вот этот кстати с готовой либой на пыхе.
    https://github.com/n1crack/vuefinder
    Ответ написан
    Комментировать
  • Как frontend разработчику тестировать локальный сервер?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    хм а в чем проблема?

    в вашем проекте создаются папки
    sql
    sql\up
    sql\down

    В up складываются миграции по наращиванию
    В down по убыванию
    Формат пусть будет номер тикета (дата) + описание

    Сами файлы делятся на 2 типа модификация схемы и наполнение \удаление данных

    В итоге подтянув изменения вы просто выполняете скрипт(ы) и получаете актуальную базу
    Ответ написан
    Комментировать
  • Как подружить Denwer PhpMyAdmin и MySql?

    SagePtr
    @SagePtr
    Еда - это святое
    Denwer устарел много десятилетий назад. Уже даже не сможет подключиться к современному MySQL из-за неподдерживаемых протоколов аутентификации.
    Ответ написан
    5 комментариев
  • Должен ли исполнитель компенсировать комиссию за Безопасную сделку в случае невыполнения заказа?

    CityCat4
    @CityCat4
    //COPY01 EXEC PGM=IEBGENER
    Я бы вернул... Стоимость этой комиссии будет много "меньше" чем отрицательного отзыва, потому что заказчик, если занозится, будет на всех возможных площадках писать "Денис - КАЗЕЛ, потому что ...блаблабла ...". Потеря репутации может сильно дороже выйти.
    Ответ написан
    5 комментариев
  • Почему на некоторых сайтах страницы не открываются в новом окне при ctrl+click?

    nowm
    @nowm
    Это происходит из-за того, что ссылка находится внутри элемента, на который навешано прослушивание события click. При этом это навешанное событие не проверяет ни источник клика, ни использование модификаторов (shift, alt, ctrl и так далее). Далее, когда вы кликаете по ссылке, при условии, что навигация происходит не в текущей вкладке, событие клика передаётся по цепочке всем родителям этой ссылки, и если один из родителей слушает click, он его обработает.

    Это обычное следствие кривых рук отсутствия опыта — никакой стратегии тут нет. Люди просто не умеют просчитывать варианты того, в каких обстоятельствах будет работать их код.

    И если перейти на частности, то на сайте, который вы упомянули, на строку таблицы, внутри которой находится ссылка, навешано событие, которое при клике открывает страницу /en/subtitles/***. Если вы просто кликаете по ссылке, то вы переходите по корректному адресу, потому что используется та же самая вкладка, но если вы открываете ссылку в новом окне, кликая не правой клавишей мыши, а левой плюс кнопка-модификатор Ctrl, событие клика передаётся в тег TR, который переадресовывает текущую вкладку на адрес /en/subtitles/***.
    Ответ написан
    2 комментария
  • Где скачать список зарегистрированных доменов?

    @demure
    Максимально полный список доменов по всем зонам можно тут посмотреть https://allregistered.domains, на сегодняшний день - это более 315 млн зарегистрированных доменов.
    Можно скачать списки просто доменов, а можно и доменов с указанными NS адресами по всем зонам. Аналогов в сети я еще не видел. Плюс ежедневные обновления.
    Ответ написан
    Комментировать
  • Возможно ли сделать hack/чит не нарушая авторские права?

    hint000
    @hint000
    у админа три руки
    Если вы не наносите ущерб кому-либо, то обычно всем пофиг (ну могут забанить, да и всё).
    Нанести материальный ущерб своим читом вы можете, например, в том случае, если в игре практикуется монетизация инвентаря, монетизация опыта и т.п. Тогда уже не пофиг, деньги всем нужны.
    Кому не пофиг, тот уж найдёт в чём вас обвинить.
    Ответ написан
    Комментировать
  • Как веб студии продвигают свои услуги?

    @d-sem
    Качественная работа, сарафанное радио, откаты, родственные связи.
    Ответ написан
    Комментировать
  • Если домашняя папка зашифрована, данные всеравно могут украсть?

    CityCat4
    @CityCat4
    //COPY01 EXEC PGM=IEBGENER
    зашифровал домашнюю папку по инструкции

    Зачем? Ну то есть от кого пытаетесь защититься?
    От жены/мужа/соседа - смысла особо не имеет, разве только в общаге живете.
    От работодателя при удаленке - ну, может какой-то смысл есть...
    От работодателя в офисе, от государства - смысла нет, так как никто Вашу "зашиту" ломать не будет. Ломать будут Вас.

    Шифрование файловых систем никак не связано с паролем пользователя. Оно выполняется либо паролем, вводимым с клавиатуры (зачастую не хранимым нигде - если пароль забыли, данным пиз..ц), либо сертификатом, который может где-то храниться - и если знать где и его стырить - можно и расшифровать.
    Ответ написан
    4 комментария
  • Должен ли WEB-разработчик уметь настраивать VPS/сервер?

    Adamos
    @Adamos
    Вопрос "должен ли" - всегда идиотский. Никто никому ничего не должен. В частности, нанимать и платить.
    Если вы такой крутой фронтендер, что вас ценят именно на этом фронте настолько, чтобы работодателю было жалко тратить ваше ценное время на настройки, он лучше наймет девопса - скорее всего, вам это все не понадобится.
    Но как можно стать крутым специалистом, вообще не интересуясь настолько смежными областями? Я не знаю.
    Вы такими сомнениями и прикидками сами себе ограничиваете рост статусом веб-макаки, которую можно только посадить в опенспейс на узкоспециализированную работу и до настройки серверов просто не допускать. Зато - "не должен", да...
    Ответ написан
    3 комментария
  • Где хранится код сайта?

    pavelsha
    @pavelsha
    Кот Жрëдингера. Только добрый.
    Разово заплатите старому программисту, хостеру или фрилансеру, которому можете доверять за работу.

    получите архив и памятку как и куда разворачивать можно

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

    t-alexashka
    @t-alexashka
    Сразу пишу legacy код
    Я не знал что есть такая утилита. Я обычно через php.ini комменчу че не нужно и раскоменчю что нужно.
    Ответ написан
    Комментировать
  • Перезагрузка компьютера, чем прочитать дампы?

    Zettabyte
    @Zettabyte
    Проф. восстановление данных ▪ Вопрос? См. профиль
    Написано что сохранено в дампе. Чем его прочитать?

    https://www.nirsoft.net/utils/blue_screen_view.html
    Ответ написан
    Комментировать