Задать вопрос
  • Как можно обработать поля в структуре?

    bitniks
    @bitniks
    Go/PHP/Symfony developer
    Реализовать кастомный UnmarshalXML
    func (p *Product) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
    	v := struct {
    		Price string `xml:"Price"`
    	}{}
    	d.DecodeElement(&v, &start)
    	p.Price = strings.Trim(v.Price, " ")
    	return nil
    }

    https://play.golang.org/p/-U6lNP2CWDs
    Ответ написан
    Комментировать
  • Как пройти и собеседование и не спалиться?

    mashletov
    @mashletov
    Math.random()
    Сходить к психологу
    Ответ написан
    Комментировать
  • В чем практическая польза итераторов в JS?

    search
    @search
    мама говорит что я особенный
    Полезность итераторов в том что это открытый интерфейс для любой структуры данных. Как вы уже поняли, любой класс/объект в JS может обладать интерфейсом итератора. Идея итератора в том чтобы скрыть внутреннее представление структуры данных от потребителя этих данных. Например, если вы работаете с какими-либо замысловатыми структурами данных, типа бинарных деревьев. Пользователю совсем не обязательно знать как ваш класс/объект хранит бинарное дерево. Пользователь просто его получает и проходит по всем его элементам в цикле. В дальнейшем, вы можете, при необходимости, заменить одну структуру данных на другую, не меняя самого пользователя. Например, вы можете заменить бинарное дерево на б-дерево прозрачно для самого пользователя (пользователь не будет знать что вы подменили структуры, он по прежнему получает что-то что можно проитерировать и ему этого достаточно).

    Для того чтоб глубже понять суть вопроса, можно погуглить про инкапсуляцию и SOLID (в вашем случае, принцип Open/closed).
    Ответ написан
    1 комментарий
  • С опытом приходит или просто тупой?

    yarkov
    @yarkov Куратор тега JavaScript
    Помог ответ? Отметь решением.
    Ну ваш код это что-то типа страницы из азбуки JS =) Конечно он с ходу распознается.
    А то, что вы в консоль лезете проверять - абсолютно нормально и все так делают.
    Невозможно все свойства и методы заучить наизусть.
    Ответ написан
    Комментировать
  • Жив ли русскоязычный фриланс?

    gadfi
    @gadfi
    https://gamega.org
    он не умер, он просто так пахнет
    Ответ написан
    7 комментариев
  • Составили требований для верстальщика, не перегнули ли палку?

    sim3x
    @sim3x
    1.1. Структура директорий
    mkdir -p  html/{css/fonts,scss/util,js/vendor,i/icons}
    tree html
    spoiler
    html
    ├── css
    │   └── fonts
    ├── i
    │   └── icons
    ├── js
    │   └── vendor
    └── scss
        └── util
    .

    1.2.1. Breakpoints
    Достаточно сказать, что все переменные храним в отдельном файле

    20 Для ID - camelCase. ID нам нужен для JS
    Неправильно. Нужно использовать классы. Если требуется отделить классы для стайлинга и для жс - делаем префикс

    23 Используем Автопрефиксер, он расставит префиксы за нас. Используем автоматизацию — ставим его как пакет и подключаем в процесс обработки стилей. Не используем автоматизацию — есть он-лайн вариант
    Делаете верстку с флексом = не используете старые браузеры = не требуются префиксы = не требуется аутопрефиксер
    Не делать автоматизацию - такого пункта даже в теории быть не может

    2. Используемые решения
    Смешивать общий гайд и стайлгайд - не нужно
    Стайлгайд вообще нужно готовить отдельно для каждого проекта

    Про бем уже все сказали
    Ответ написан
    18 комментариев
  • Как правильно реализовать такой слайдер?

    @evil_eyes
    1) SVG и маски - css.yoksel.ru/svg-masks
    2) div с transform: skew - https://html5book.ru/css3-transform/
    Ответ написан
    Комментировать
  • Откуда у блоков отступы по высоте?

    EaGames
    @EaGames
    Front-end developer
    Все из за display: inline-block;
    добавьте font-size: 0 для родителя и отступа не будет
    Ответ написан
    Комментировать
  • Как убрать пробел между чекбоксами?

    daemonhk
    @daemonhk
    ПсиХоПат
    Идея с margin так себе, а если он нужен будет у чекбоксов?

    Добавьте родительскому контейнеру font-size:0; это уберет лишние переносы строк
    Ответ написан
    Комментировать
  • Что делает эта конструкция в jquery?

    rockon404
    @rockon404
    Frontend Developer
    Такой вариант записи используют в JS, когда надо получить ключ или вызвать функцию с помощью переменной.
    Это возможность самого языка, а не конструкция jquery.
    var foo = {
      bar: 'bar value',
    };
    
    console.log(foo.bar);
    // => bar value
    
    console['log'](foo['bar']);
    // => bar value


    Разберем ваш пример. Такая запись:
    var action = 'addClass';
    
    $('.some-selector')[action]('some-class');

    равносильна такой:
    $('.some-selector').addClass('some-class');

    То же самое для объекта:
    var key = 'name';
    
    var obj = {
      name: 'Tom',
      age: 24,
    };
    
    console.log(obj[key]);
    // => Tom
    
    console.log(obj.name);
    // => Tom
    
    console.log(obj[key] === obj.name);
    // => true
    
    key = 'age';
    
    console.log(obj[key]);
    // => 24


    Так же есть случаи, когда к ключу можно обратиться только таким способом:
    var obj = {
      'three words key': 'value',
    };
    
    console.log(obj['three words key']);
    
    // => value
    Ответ написан
    1 комментарий
  • Как эффективно развивать себя как разработчика?

    aRegius
    @aRegius
    Python Enthusiast
    Вам будет гораздо легче решать большую часть стоящих перед вами задач (а другим гораздо легче вам в этом помогать), как только вы перестанете описывать их общими фразами (типа "максимально эффективно", "полноценный дев", "хорошим специалистом" и т.п.).

    Будьте конкретны:
    - "Моя цель на ближайшие 6 месяцев - вырасти до позиции XXX в текущей компании". И далее:
    - "Что мне нужно сделать для того, чтобы в течение 6 месяцев в моей компании вырасти до XXX ?"

    С этим уже можно обратиться к людям, обладающим достаточной компетенцией в помощи вам с ответом на этот вопрос: "Для того, чтобы в нашей компании стать XXX, нужно знать ЭТО и уметь ТО".

    - "Что мне нужно для того, чтобы узнать ЭТО и научиться делать ТО ?". Cоставляете план действий (разбиваете необходимые шаги на месяцы, недели, дни) с дежурными сроками (для проверки запланированного и достигнутого, внесения в связи с этим необходимых корректировок и т.п.) - и вперед.

    Но все начинается с конкретики:
    - "...хочется максимально эффективно развивать себя...". Что конкретно значит (для вас) "максимально эффективно"? По каким критериям вы будете определять, эффективно вы развиваетесь или нет? Количество прочитанных книг? Сложность решаемых задач? Что конкретно?
    - "...чтобы стать не только полноценным девом...". Что конкретно значит (для вас) "полноценный дев"? Как вы поймете, что стали "полноценным девом"? Вы добьетесь определенной должности? Будете зарабатывать определенную сумму денег? Что конкретно?

    Успехов.
    Ответ написан
    Комментировать
  • Есть ли программы для написания кода голосом?

    devspec
    @devspec
    Помогло? Отметь решением
    Такого нет не потому, что это невозможно сделать. А потому, что это быстро приведет к профессиональной деформации. Будете заходить в супермаркет и говорить - мне запятая пожалуйста запятая один большой пакет точка спасибо точка
    Ответ написан
    2 комментария
  • Стоит ли идти на такую работу?

    xtala
    @xtala
    Постигает Дзен
    Качай навык обмана и изворотливости! Когда ты один, то дается бонус +5 к начальному навыку вранья, +3 к изворотливости, а так же призрачный посох просраного дедлайна одинокого разработчика. Посох кастует заклинание: "Немного осталось, скорее всего уже завтра!", а так же дает временный иммунитет от увольнения, пока ты один, без союзников.
    Ответ написан
    2 комментария
  • С чего начать карьеру, если чувствуешь свою проф непригодность, хотя никогда не пытался устроиться?

    platotel
    @platotel
    IT Product Manager
    selfdestroy, добрый день. Что мне бросилось в глаза:
    - ник про саморазрушение и отсутствие аватарки, что иногда (не всегда) бывает признаком низкой самооценки. Да, есть те, кто по идеологическим или ещё каким-то причинам не хочет афишировать своё лицо, у кого-то просто нет хорошей фотографии, кто-то больше любит какую-то картинку поставить вместо лица, но нет ли именно проблем с восприятием себя?
    - наложение на себя клейма: "проф непригодность", "не обладаю супер знаниями",
    - страх отказа ("никогда не пытался устроиться"),
    - позиция "снизу", демонстрация чувство вины ("извиняюсь"),
    - растерянность ("понятия не имею, как найти", "не знаю, куда плыть дальше"),
    - настрой на провал ("меня просто нигде не возьмут"),
    - "никогда не щупал продакшн в живую" - есть стажировки, Open Source проекты, онлайн-курсы, на которых можно делать свой проект, обучаясь.

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

    Я Вас очень понимаю в том, что иногда хочется опустить руки и переложить ответственность за свою жизнь на кого-то другого или на сложные обстоятельства. Но Вы ведь понимаете, что сильнее Вас за Ваши мечты и идеалы не будет бороться никто? Только Вы можете сказать себе: "я - хозяин своей жизни, и всё, что со мной происходит - результат моих действий либо моего восприятия происходящего". Очень просто сказать: "полюби себя", "начни ценить себя", но часто за низкой самооценкой кроется именно нежелание брать на себя ответственность за свою жизнь. Попробуйте что-то делать в этом направлении. Тогда и в программировании, и в трудоустройстве, и в общении с окружающими станет проще.
    Ответ написан
    17 комментариев
  • Когда использовать Vuex?

    sfi0zy
    @sfi0zy
    Creative frontend developer
    Не придирайтесь к словам, рассуждайте логически. Как только у вас в приложении возникают данные, которые могут быть нужны различным компонентам (это может быть информация о текущем пользователе, о сессии, или что-то, что вы потом сохраняете в localstorage) - вам нужно использовать отдельное хранилище, в данном случае Vuex. Просто потому, что это удобно.
    Ответ написан
    2 комментария
  • Почему 5, а не 2?

    alexandr2006
    @alexandr2006
    весь во фронтенде
    Переносы строк - это тоже узлы:

    f4b16ac9226644dcbf6a6e9a2184f49a.png

    А тегов li действительно 2:

    var li = document.querySelectorAll("li")
    console.log([].slice.call(li).length)
    Ответ написан
    Комментировать
  • Стоит ли заключать договор?

    @entermix
    Кто сталкивался с такими ситуациями? Кто какие решения принимал? Всё-таки не очень-то хочется обогащать чужой карман...

    Пойду откажусь от всех текущих проектов, а то, вдруг, они начнут приносить прибыль моим клиентам? Ужасно, тчк.
    Ответ написан
    Комментировать
  • Что почитать вместо You don't know JS?

    vicodin
    @vicodin
    Имею некоторый опыт
    книги по английскому, очевидно же, потому что чем дальше, тем больше он вам нужен будет
    Ответ написан
    4 комментария
  • Как работает такое решение с побитовыми операторами?

    bingo347
    @bingo347 Куратор тега JavaScript
    Crazy on performance...
    >> - оператор бинарного сдвига вправо, то есть число 13 в бинарном виде 1101, при сдвиге вправо на один бит будет число 6 (110)
    & - бинарное И, каждый бит числа слева сопоставляется с соответствующим битом числа справа, например 13 & 6 (1101 & 0110) будет 4 (0100)

    Теперь разберем конкретный пример, начальные условия
    n = 1234 (10011010010)
    c = 0
    Условие цикла for - значение переменной n, так как переменная числовая, цикл будет выполнятся пока n не станет равной 0
    Первая итерация:
    n & 1 - 0 (так как 1 - это 00000000001), все биты при & дают 0
    с += 0 - c будет 0
    n >>= 1 - n будет 617 (1001101001)
    Вторая итерация:
    n & 1 - 617 & 1 - 1
    c += 1 - c будет 1
    n >>= 1 - n будет 308 (100110100)
    Ну и так далее, пока на последней итерации, перед которой в n останется 1 и операция n >>= 1 сделает его 0, что и послужит завершением цикла, а в c на тот момент будет количество еденичных битов начального числа
    Ответ написан
    1 комментарий