• PHP+JS Трудности с выбором учебно-боевого проекта?

    In4in
    @In4in
    °•× JavaScript Developer ^_^ ו°
    Так как нет лучшего способа изучить язык, чем сделать на нем проект.

    Сейчас попрут толпы хейтеров из вк)

    Помогите с идеей проекта

    Лучше всего, чтобы проект включал в себя базу для взаимодействия юзеров не только с сервисом, но и друг с другом. К примеру это может быть любительская мини-букмекерская контора. Тогда перед вами встанут задачи:

    • Парсить матчи с удаленного источника
    • Организовать серверную часть на PHP
    • Организовать часть на WebSocket'ах для обновления данных в реальном времени (коэффициенты, for example)
    • Сконструировать хороший JavaScript-фронтенд. Возможно с использованием Vue/Angular/Rect..
    Ответ написан
    3 комментария
  • Как сделать блок, имеющий заголовок с бордером и контентом?

    delphinpro
    @delphinpro Куратор тега CSS
    frontend developer
    одинаковые по высоте пилим флексами
    левый и верхний бордеры имитируем псевдоэлементами

    собственно самое сложное сделать блюр по внешней кромке картинки, но с этим как раз у вас проблемы нет =))
    Сейчас попробую накидать примерчик

    Ответ написан
    2 комментария
  • Тестовое задание (Junior Frontend), приемлемое ли?

    angrySCV
    @angrySCV
    machine learning, programming, startuping
    на фрилансе полно таких заданий, вполне себе за бабки
    нет смысла делать для опыта это бесплатно, если можно делать для опыта ПЛАТНО.
    никогда не беру тестовых заданий, есть технические собеседования, вот пускай там все что надо спрашивают,
    а давать задания -> это уже обычная работа, а кто их берет и бесплатно делает идиоты.
    Уже не раз вопрос поднимался и разъяснялся что все эти "тестовые задания" - являются нарушеним трудового законодательства, тк по факту наступают трудовые отношения, за которые работодатель обязан оплачивать, но не платит.
    Ответ написан
    3 комментария
  • Тестовое задание (Junior Frontend), приемлемое ли?

    Слишком большое задание для теста. Хватило бы и одной страницы. А тут - довольно плотно поработать, чтобы сделать хорошо. Если без оплаты, то вероятно, они так экономят на верстке лендосов каких-нибудь.
    Ответ написан
    2 комментария
  • Как адекватно оценить свой уровень?

    @Programmir
    Чем больше знаешь, тем больше понимаешь, что ничего не знаешь.
    Ответ написан
    Комментировать
  • Как адекватно оценить свой уровень?

    angrySCV
    @angrySCV
    machine learning, programming, startuping
    один из самых объективных критериев - это то за сколько ты можешь продать свой труд (или результат своего труда)
    Ответ написан
    Комментировать
  • Чем опытнее разработчик, тем меньше соблюдается принцип KISS?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Принцип KISS не означает что надо использовать самые примитивные инструменты.
    Он означает, что не надо переусложнять систему без нужды.
    Если так рассуждать, так и высшее образование не нужно: "Дед отличные бани строил, хотя вовсе был неграмотный. Я и без сопромата небоскреб построю!"
    Если вы пока ещё не понимаете назначение всех этих "лееров, провайдеров и репозиториев", это не значит, что они вообще никому не нужны.

    Для того, чтобы упростить управление системой, её надо усложнить.
    Этот принцип относится к любой области человеческой деятельности, от постройки ракет до управления государствами.
    Чем сложнее система, тем больше накладные расходы на ее управление. Хоумпейдж с котиками можно и нужно делать примитивными средствами. В большом проекте надо сразу закладываться на будущую расширяемость. То есть, заранее делить ответственность между "леерами".

    И кстати. Код, в котором "всё друг на друге завязано" - это очень плохой код. Собственно, предназначение всех этих "лееров, провайдеров и репозиториев" как раз в том, чтобы компоненты были как можно более независимы друг от друга.
    Ответ написан
    1 комментарий
  • Как сделать анимацию трансформирующую один элемент в другой?

    sfi0zy
    @sfi0zy
    Creative frontend developer
    Является ли желтая квадратная форма в конце анимации видоизмененной кнопкой или же это совершенно другой элемент разметки?

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


    С такими анимациями можно долго играться, самое главное - проверить в конечном итоге кроссбраузерность. А то в хроме и FF работает, а в каком-нибудь IE всякое может случиться.

    P.S.: Но в целом - я голосую за реализацию таких вещей целиком на JS. Практика показывает, что в проектах с такими анимациями очень быстро собирается большое количество одновременно анимирующихся значений у большого количества элементов, которые нужно синхронизировать между собой. На CSS голова лопнет все это делать. И да, чем больше всего меняется в CSS-анимациях в единицу времени, тем выше шанс найти какой-нибудь редкий баг и долго ломать себе голову в поисках проблемы. Лучше уж взять какую-нибудь библиотеку вроде anime.js или любимый многими GSAP и использовать их.
    Ответ написан
    Комментировать
  • Сложение элементов массива с условием?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    var numbers = [1,-3,5,-6,-10,13,4,-8];
    var sum = 0;
    var index = false;
    for (let i=0; i<numbers.length; i++) {
       sum += numbers[i];
       if (sum == 0) { index = i; break; }
    }
    console.log(index); // 5
    Ответ написан
  • Сложение элементов массива с условием?

    sergiks
    @sergiks Куратор тега JavaScript
    ♬♬
    var numbers = [1,-3,5,-6,-10,13,4,-8];
    
    var arr = numbers.slice(), sum = 0;
    while((sum += arr.shift()) !== 0); // изысканный пустой while !
    var index = numbers.length - arr.length - 1;  // 5


    Или с рекурсией:
    function sum0(arr, idx = 0, sum = 0) {
      if ((sum += numbers[idx]) === 0) return idx;
      return sum0(arr, idx + 1, sum);
    }
    
    sum0([1,-3,5,-6,-10,13,4,-8])  // 5
    Ответ написан
    2 комментария
  • Как сделать обертку?

    yanis_kondakov
    @yanis_kondakov
    Универсальное решение

    codepen

    const boxes = document.querySelectorAll('.box');
    
    const isNested = (f, t, c) => c + 1 >= f && c + 1 <= t;
    
    const insertAfter = (elem, refElem) => refElem.parentNode.insertBefore(elem, refElem.nextSibling);
    
    const transferBoxesToWrapper = (fromIndex, toIndex, wrapper) => {
      boxes.forEach((box, i) => isNested(fromIndex, toIndex, i) && wrapper.appendChild(box));
    }
    
    const createWrapper = (fromIndex, toIndex) => {
      let wrapper = document.createElement('div');
      
      wrapper.classList.add('wrapper');
      insertAfter(wrapper, boxes[fromIndex - 1]);
      transferBoxesToWrapper(fromIndex, toIndex, wrapper);
    }
    
    createWrapper(3, 5);
    Ответ написан
    Комментировать
  • Взгляните на тестовое?

    angrySCV
    @angrySCV
    machine learning, programming, startuping
    хорошо что ты пытаешься улучшать свои решения, ни одно решение не получается делать сразу отличнейшим, это всегда путь через улучшения.
    В российских компаниях просто какой-то ад творится в стандартах работы с кандидатами, дать тестовое задание (на которое соискатель неделю потратит) и потом даже ему не ответить - это вполне себе распространенная практика.
    Мой совет: никогда больше не делать никаких тестовых заданий, они бесполезны для трудоустройства (да и для обучения развивать их бесполезно, тк это просто какие-то ненужные отдельные задачки в вакууме, а не полноценный проект).
    Развивайте свои проекты, участвуйте в чужих опен сорс проектах, участвуйте в соревнованиях и тд -> это ВСЕГДА дает намного больше пользы. А кто захочет вас на "тестовое натянуть" - отправляйте им ссылки на готовые работы, такая схема более эффективна.
    Иначе вы погрязните в бесконечных, никому не нужных тестовых заданиях.
    Ответ написан
    Комментировать
  • Как могут быть равны значения, чьи логические эквиваленты различны?

    0xD34F
    @0xD34F Куратор тега JavaScript
    a = 0
    b = '0'
    
    // или
    
    a = false
    b = '0'
    
    // или
    
    a = ''
    b = []
    
    // или
    
    a = 0
    b = {
      valueOf: () => 0,
    }
    
    // или
    
    a = ''
    b = {
      toString: () => '',
    }
    Ответ написан
    Комментировать
  • Простыми словами о this в стрелочных функциях?

    https://habr.com/company/ruvds/blog/419371/

    Потому что функция d ничего не возвращает, чего вы ожидали ?
    let group = {
    
        prop: false,
    
        d: function () {
            return (() => {
                this.prop = true;
                return this.prop;
            })();
        },
    };
    
    console.log(group.d()); // true
    console.log(group);     // {prop: true, d: ƒ}
    Ответ написан
    1 комментарий
  • Кто знает простые альтернативы JQuery?

    toxicmt
    @toxicmt
    CTO at hexlet.io
    > чтобы было удобнее удобнее ванильного JS, но наименьшего веса.

    Современный ванильный дом вполне удобен. Местами он лучше чем jquery. Достаточно подключить https://polyfill.io/v2/docs/ и можно использовать все современные фишечки.
    Ответ написан
    2 комментария
  • Карта IT-направлений?

    inoise
    @inoise
    Solution Architect, AWS Certified, Serverless
    Боюсь что пока будет составляться такая схема она успеет устареть (я не шучу). И любой кто напишет готовое решение гарантированно будет как минимум заблуждаться.

    Поясню. Мир IT крутится вокруг определенного набора навыков и технологий. Есть связанные навыки и не очень. Одну и ту же технологию можно применять различным образом. Как правило люди выбирают то что им проще, понятнее и одновременно интереснее всего, а потом изучают то что так или иначе связано.
    Ответ написан
    Комментировать
  • Как создать свой JavaScript plugin?

    @SergeiB
    Вот статья от Кена Вилера - того самого, кто создал slick. В ней он на примере модального окна детально рассказывает как создать свой плагин на javascript. Мне очень помогло.
    Ответ написан
    Комментировать
  • Чем адаптивное меню на чистом css лучше такого же меню на js?

    delphinpro
    @delphinpro Куратор тега Вёрстка
    frontend developer
    Если задумка дизайнера позволяет реализовать задуманное без джаваскрипта, то понятно, что лучше реализовать без него.

    Если нет, и джаваскрипт необходим для реализации, то в этом нет абсолютно ничего страшного.

    В обоих случаях действует одно и то же правило: не делайте через жопу.
    Ответ написан
    4 комментария
  • Как понять контекст в js, всю голову сломала?

    Xuxicheta
    @Xuxicheta
    инженер
    export default class MyClass {
    
      start() {
        this.elem = document.querySelector('.elem');
        this.elem.addEventListener('click', (event) => this.check(event));
      }
    
      check(e) {
        //код
      }
    
    }

    или
    this.elem.addEventListener('click', this.check.bind(this));


    в первом случае мы передаем в функцию коллбек для addListener наш контекст и, соответственно, его метод через замыкание.
    во втором случае создаем функцию с прибитым гвоздями контекстом используя bind, и передаем ее как коллбек в addListener
    Ответ написан
    6 комментариев