• Насколько полезно писать велосипеды?

    xez
    @xez
    TL Junior Roo
    Думается, что при написании велосипедов и использовании только нативных возможностей языка и браузера, при конструировании приложения лично сталкиваешься с проблемами, эффективным решением которых занимаются готовые библиотеки. И вот тогда суть улавливается.

    Хорошо сказано.
    Пишите в качестве пэт-проекта, демо или пруф-оф-консепт. В прод велосипеды тащить не надо.

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

    saboteur_kiev
    @saboteur_kiev Куратор тега Веб-разработка
    software engineer
    Если что-то в готовом решении кажется сложным, значит ты не уловил какие именно проблемы успели порешать те, кто это решение писал.

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

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

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

    lina666
    @lina666
    Изучаю веб ЯП.
    Я зашел в разработку на стеке Vue и его окружения Nuxt, Vuex и т.п.
    Начал копать в суть вещей только уже когда понял, что могу что то делать, но уперса в то, что не понимаю как некоторые вещи работают под капотом и это мешает мне делать задачи => недает расти по ЗП.

    В общем есть смысл ковырять, если чувствуешь, что стоишь на месте из за того, что не знаешь как реализовать что либо если делаешь шаг влево\вправо.
    Ответ написан
    Комментировать
  • Насколько полезно писать велосипеды?

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

    daemonhk
    @daemonhk
    ПсиХоПат
    Вынесите maxSize в дата-параметр инпута и забирайте его в своей функции
    Ответ написан
    Комментировать
  • Можете объяснить асинхронность в JS?

    @Just__Den
    FULL STACK
    JS однопоточный, но его движки v8 и libuv написаны на С++, который может использовать потоки ядра машины, на которой установлен JS для его целей. Причём количество подключаемых потоков можно изменять в настройках (для node)
    Ответ написан
    Комментировать
  • Как имитировать клик на jQuery/JS?

    mututunus
    @mututunus
    Backend developer (Python, Golang)
    setTimeout(function(){
      $('button').trigger('click');
    }, 1000);
    Ответ написан
    7 комментариев
  • Можете объяснить асинхронность в JS?

    AgentSmith
    @AgentSmith
    Это мой правильный ответ на твой вопрос
    Да, всё верно. Операции попадают в Event Loop и оттуда они берутся на обработку.
    Здесь можно более подробно почитать https://blog.sessionstack.com/how-javascript-works...
    Ответ написан
    Комментировать
  • Можете объяснить асинхронность в JS?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    WebAPI браузера поедоставляет вещи типа setTimeout, или async await, коллбек-функции которые закидываются в очередь, а оттуда в порядке своей приоритетности попадают в стек по очереди. Промисы обрабатываются в приоритетном порядке.
    Обычные callback-функции не попадают в очередь, они вызываются в общем стеке. Кроме промисов в приоритетную очередь микрозадач функция может быть добавлена через queueMicrotask(function).
    А что если "асинхронные" операции занимают много памяти и выполняются долго. Если они выполняются в том же стеке, то они также перекроют доступ ко всем остальным операциям?
    Асинхронные операции выполняются отдельными служебными потоками параллельно с основным стеком. Поэтому сами они не могут заблокировать основной стек. По завершению/таймеру асинхронная операция кладёт функцию в очередь микро- или макрозадач.
    Ответ написан
    Комментировать
  • Можете посоветовать варианты бесплатного хостинга для full-stack пет-проектов?

    @Kvason
    Веб-разработчик
    Ну, имел опыт с двумя таковыми, это 000webhost и awardspace. Первый это хостингер для бедных, спит час в день и дает тебе свой поддомен, в целом, вче что нужно для среднестатистического сайта хватает. Авардспейс также имеет бесплатный тариф и множество платных, но у него есть проблема что он может выполнить переадресацию слишком много раз и все что тебе останется это сносить под чистую. Для каких-нибудь проектов на питоне это хероку и pythonanywhere. Оба вполне нормальные, но второй более удобный в настройке, просто заливаешь файл и все остальное в консоли.
    Ответ написан
    Комментировать
  • Можете посоветовать варианты бесплатного хостинга для full-stack пет-проектов?

    thewind
    @thewind
    php программист, front / backend developer
    Сейчас дешевые vps (1 cpu / 1 gb ram / 15 gb disk) стоят 190 руб в месяц - имхо это гораздо удобнее, докер воткнул и делай , что хочешь.
    Ответ написан
    2 комментария
  • CSS. Как сделать плавный blur у фона?

    MrDecoy
    @MrDecoy Куратор тега CSS
    Верставший фронтендер
    Но я не рекомендую так делать.
    Блюр на css не везде поддерживается и достаточно прожорливое свойство.
    https://codepen.io/Mr_DECOY/pen/NWYwWxz
    И в свойстве mask по средствам задания процентов градиента можно указывать степень плавности перехода от блюра к чёткой картинке.
    Ответ написан
    3 комментария
  • У всех был такой начальный период изучения языка?

    @ZaKon13
    Я всё же перешёл на Backend Node JS, но да. Сначала будет казаться невозможным придумать элегантное решение в 1 строку. Это придет с опытом(я не говорю даже о 2х годах). Думаю, с полного 0 в JS через 6 месяцев реально спокойно решать любые задачи 7 kuy, главное - практиковаться. Если ты посмотришь, решения в 1 строку по большей части используют 1-2 нужных метода/функции которые делают всю "магию"
    Ответ написан
    Комментировать
  • У всех был такой начальный период изучения языка?

    DevMan
    @DevMan
    а ты думал люди со знанием жс сразу рождаются?

    конечно кому-то даётся легче, кому-то сложнее.
    но рулит только практика.
    Ответ написан
    3 комментария
  • Как работают интерпретаторы компилирующего типа?

    Jump
    @Jump
    Системный администратор со стажем.
    Вы как то неверно представляете себе что такое компиляция, отсюда все вопросы.

    Компиляция это по факту перевод программы с языка высокого уровня на язык понятный машине.
    • Берем программу целиком, прочитали, проанализировали, и перевели ее целиком в машинный код. Это компиляция.
    • Берем одну инструкцию, переводим ее в машинный код, и выполняем это интерпретация


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

    Если по простому у вас есть инструкция по ремонту двигателя.
    • Вы можете прочитать инструкцию, проанализировать ее, понять какие материалы, запчасти понадобятся, возможно оптимизировать какие-то действия и составить план действий по ремонту. Это и есть компиляция.
    • Но вы можете прочитать первую строку инструкции где написано - снимите двигатель. Выполнить ее, после чего перейти к чтению второй строки инструкции. Это интерпретация.


    1) Интерпретаторы - считывают команды на языке высокого уровня построчно и построчно их выполняют.
    То есть считал строку, скомпилировал - получил двоичный код. Выполнил этот двоичный код.
    Идет поочередное выполнение команд . Прочитал инструкцию на языке программирования, и перевел ее в машинный код и выполнил. Никакой компиляции. Для компиляции нужно прочитать всю программу.
    Результат работы компилятора - программа на другом языке.
    Результат работы интерпретатора - выполненная инструкция
    Разницу замечаете?
    Ответ написан
    1 комментарий
  • Как связать кнопку с соответствующим объектом?

    sergiks
    @sergiks Куратор тега JavaScript
    ♬♬
    можно, например, кнопки не писать в разметке, а создавать программно. Для кнопки нужны только название и имя картинки, а в остальном они одинаковы. Ну ещё активная кнопка получает 2 доп. CSS класса.

    Для отрисовки достаточно объекта типа
    spoiler
    const categories = {
      mass: 'Масса',
      distance: 'Расстояние',
      temperature: 'Температура',
      time: 'Время',
      speed: 'Скорость',
      currency: 'Валюта',
    };


    Там же, где создаются кнопки и вешается на них слушатель клика, можно их складывать в массив. И вот у вас массив элементов. Ещё каждой категории понадобятся данные с единицами измерения. Поэтому центральный объект данных можно примерно так представить:
    spoiler
    const categories = {
      mass: { title: 'Масса', element: null, data: null, },
      distance: { title: 'Расстояние', element: null, data: null, },
      temperature: { title: 'Температура', element: null, data: null, },
      time: { title: 'Время', element: null, data: null, },
      speed: { title: 'Скорость', element: null, data: null, },
      currency: { title: 'Валюта', element: null, data: null, },
    };
    В поле element пойдёт созданный HTML-элемент кнопки, а в поле data – что там сейчас в переменной mass у вас.

    Клик по объекту вешать сразу с этим же текущим объектом всех-данных:
    Object.entries(categories).forEach(([ name, item ]) => {
      const el = document.createElement('div'); // это внешний div кнопки
      // el.classList.add(...)
      el.insertAdjacentHTML('beforeend', `
        <p class="value-item__title">${item.title}</p>
          <img src="assets/img/values/${name}.svg" alt="" class="svg-icon value-item__img">
      `);
      el.addEventListener('click', () => clickHandler(name));
      // по этому name можно вытащить categories[name]
    
      divValues.appendChild(el);
    });
    Ответ написан
    1 комментарий
  • Возможно ли обращаться к методам Telegram API через разные интерфейсы?

    iggor-markin
    @iggor-markin
    Python Developer
    По-хорошему, твой бот сам ничего не должен делать. Хотя он это может. Бот - всего лишь клиент для твоего бэкэнда. Такой же как и твой лендинг. Ты можешь создать такую связку:
    6245a9b9088c2658973009.jpeg
    Ответ написан
    5 комментариев