• JavaScript: функция «getSelection()» получает выделенный текст, существует ли возможность, получить выделенный текст вместе с его HTML-тегами?

    Stalker_RED
    @Stalker_RED
    На самом деле нет, window.getSelection() возвращает не текст, а объект Selection. И если вы с ним пытаетесь работать как с текстом, то автоматически сработает его метод toString() и вы получите "только текст Hello World".

    Если посмотрите документацию, то там есть и
    Selection.anchorNode // Returns the Node in which the selection begins.

    и также
    Selection.focusNode // Returns the Node in which the selection ends.

    Все так сложно потому, что выделение может начинаться в середине одного тега, и заканчиваться в середине другого, как-то так:
    QIuj5uB.png
    Ответ написан
    Комментировать
  • JavaScript: почему не срабатывает получение последнего элемента массива?

    Stalker_RED
    @Stalker_RED
    Чего вы ожидаете от this.length-1 ? В зависимости от контекста вызова у вас в this может быть что угодно. Если там window, (window.length-1) == -1, а элемента с индексом -1 в массиве быть не может.

    let stylesheets = document.querySelectorAll('head > link[rel="stylesheet"]')
    let last = Array.from(stylesheets).pop()
    // или
    let last = [...stylesheets].pop()
    Ответ написан
    Комментировать
  • Как можно указать медиазапросы без id или class?

    @Souvel1
    Web-программист. Разрабатываю на WordPress.
    Отвечу не совсем на вопрос. Не слушай того человека, который тебе это сказал. Это крайне сомнительный способ что-либо делать и по сути не правильный, да и к тому же бессмысленный, не забивай голову такой фигней, если только начинаешь верстать.
    Ответ написан
    Комментировать
  • Как прекратить создавать объекты классов?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Очевидно, что Database() можно вынести в отдельную модель, типа ActiveRecord,

    Она у вас и так вынесена, в класс Database.

    и просто наследовать её

    А вот этого делать не стоит. От слова совсем.

    Есть такая штука, Dependency Injection (DI). Почитайте. Возможно, не сразу вкурите. Но это необходимо понять и научиться с этим работать.

    Должно быть как - у вас есть контейнер, который знает все ваши классы / сервисы (они регистрируются в него или с помощью Service Locator подтягиваются). Он же (контейнер) держит в себе инстансы этих классов - при первом вызове класса он инициализируется 1 раз и сохраняется в контейнере. При последующих обращениях контейнер возвращает уже существующий инстанс. Инициализацию сервисов в конструкторах делать не надо, это жестко связывает ваш код и ведет в никуда. Зависимости надо подкидывать через конструктор, параметрами.
    Ответ написан
    2 комментария
  • Каков сценарий использования git для одного разработчика?

    gobananas
    @gobananas
    finishhim.ru
    Делаете ветку master, ветку dev и отдельные ветки под отдельные фичи.
    Делаете 2 сайта - один сам проект (основной) - на него выкатываете master, второй сайт тестовый - на него выкатываете ветку dev. Остальные ветки разрабатываете, сливаете с dev выкатываете на тест, если там всё нормально то dev сливаете с мастером. За ноут просто когда садитесь если мастер новый есть делаете git pull и стягиваете новую версию
    Ответ написан
    11 комментариев
  • Делаем что то одно — все остальное ломаем?

    sim3x
    @sim3x
    Пишем свой код по ТДД

    После внедрения фичи, прогоняет все тесты
    Если тесты упали - решаем, как написать свою часть, так чтоб тесты , которые не касаются нашей части не падали
    Ответ написан
    4 комментария
  • Верстка еще актуальна на фрилансе?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Вёрстка вёрстке - рознь!
    Чтобы иметь возможность получать хорошие заказы при большой конкуренции, нужно иметь 4-5 валидно свёрстанных и действующих/"живых" шаблонов для разных типов сайтов с достаточно сложными элементами наполнения.
    Верстать - могут все, верстать качественно - единицы!
    Хотите верстать профессионально и за достойную оплату - изучайте и нарабатывайте опыт.
    PS: Проверять можно по этому списку.
    Ответ написан
    Комментировать
  • Верстка еще актуальна на фрилансе?

    opium
    @opium
    Просто люблю качественно работать
    Работы куча, кому то же надо верстать и девелопить фронтенд
    Ответ написан
    3 комментария
  • Обязательно ли сегодня оптимизировать картинки под retina?

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

    dom1n1k
    @dom1n1k
    Почитайте про БЭМ. Причем желательно не просто краткое объяснение методологии, а с историческими выкладками, откуда и почему он взялся. Ещё очень полезно послушать старые лекции Виталия Харисова на эту тему.

    PS На мой вкус, приведенный пример с кучей импортов переусложнен. Вытаскивать в отдельный файл каждый элемент блока нет смысла. Зачем отдельный файл десятку строк кода? А если их там много, значит скорее всего блок надо разбивать на подблоки.
    Ответ написан
  • Могу ли я отказаться от проекта?

    @McBernar
    Уверен, что формально в вашем трудовом договоре нет строчки, что вы будете работать только с React и Vue.

    Как надо сделать правильно

    Объяснить тимлиду и менеджеру проекта, что вы не разбираетесь в Angular, что может повлечь за собой нерациональную трату времени, пока вы будете его изучать, и, возможно, большой срыв сроков.

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

    vicodin
    @vicodin
    Имею некоторый опыт
    Ответ написан
    Комментировать
  • Как максимально ускорить компьютер?

    Jump
    @Jump Куратор тега Windows
    Системный администратор со стажем.
    Итак ноут со следующими характеристиками -
    • Процессор Intel Celeron Dual Core 2100 МГц Penryn (T3500) - не фонтан, но для офисной работы и интернета вполне достаточен.
    • Оперативная память: 2048 Мб DDR3-1066МГц - никуда не годится, с таким количеством памяти работать невозможно. Для комфортной работы нужно 8Гб памяти, для того чтобы хоть как-то работать без диких тормозов хотя бы 4Гб.
    • Жесткий диск: 320 Гб (5400 rpm), HDD - для комфортной работы с современной ОС нужен SSD, а HDD, да еще и 5400просто гарантирует наличие тормозов.


    Получается для получения вменяемого быстродействия нужно сделать две вещи -
    1)Добавить память - смотрим на сколько можно добавить физически и ставим 8 или хотя бы 4Гб
    2)Выкинуть HDD и поставить SSD.
    В итоге получится отличная офисная машинка, которая будет шустро работать еще достаточно приличное время.

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

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

    Но если в рамках рефакторинга программист коммитет больше 20 файлов за раз, то есть вариант что он не видит всей картины, поэтому пилит "супергибкую архитектуру". В этом случае, можно сесть вместе с разработчиком и составить майндмеп всех элементов будущей системы и связей между ними. Это будет полезно как для разработчика, так и для менеджера проекта.
    Ответ написан
    5 комментариев
  • Все объекты true почему это ложь ({}==true)?

    0xD34F
    @0xD34F Куратор тега JavaScript
    Потому что при сравнении объектов и булевых значений последние преобразовываются в числа, а при сравнение объектов и чисел объекты также преобразуются в числа, т.е., в конечном счёте, в данном случае имеет место сравнение NaN и 1.

    Подробнее о том, как выполняются сравнения, можете глянуть здесь.
    Ответ написан
    Комментировать
  • Быстрый старт, как научиться писать SPA?

    rework
    @rework
    Помог ответ? В благодарность отметь его решением
    По-моему наиболее простой уровень вхождения у vue.js, вот есть tutorial по созданию простого SPA на нём:
    https://medium.com/@oleg.agapov/basic-single-page-...
    Ответ написан
    1 комментарий
  • Как обезопасить свой бекенд от разработчиков?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    Он запрятал кусок кода, что если на сайт входит юзер с ником xxx, то удалить всю базу данных пользователей.

    Не обманывайте программиста, платите в срок и все будет хорошо.

    Что делать?

    Подписать договор, в котором явно обозначить пункт о причинении вреда исполнителем.

    Как доверять сердце своего проекта незнакомых людям?

    Так же, как вы доверяете зубному.

    Особенно интересно, как этот вопрос решается на крупных сайтах.

    На крупных сайтах это решается за счет контроля доступа и штата программистов и сисдаминов, которые поддерживают систему 365/24/7

    Может ли там кто-то взять и завалить сайт в одиночку?

    Да, безусловно. Но смысла в этом нет.

    В общем, очень интересная тема, в которой ничего не представляю.

    Программисты - люди далеко не глупые, как правило. Действия, что вы привели в пример возможны, но только в случае крайнего недоверия программиста-новичка к вам как заказчику.
    Ответ написан
    8 комментариев
  • Как обезопасить свой бекенд от разработчиков?

    CityCat4
    @CityCat4 Куратор тега Информационная безопасность
    //COPY01 EXEC PGM=IEBGENER
    Решается комплексом из технических и юридических мер.
    Технически - бэкапы, разные, разными средствами, никому недоступные.
    Юридически - изучить гл. 70 ГК РФ "Авторское право" (там много не относящегося к ПО, правда), дать изучить бэкендеру. Изучить УК РФ, ст. 146 и ст. 272 - и дать изучить бэкендеру (особенно ст. 272). Правильно составить договор - там тонкостей до... фига :)
    Ответ написан
    1 комментарий
  • Можно ли установить 2 проекта на один VPS?

    opium
    @opium
    Просто люблю качественно работать
    Да хоть тысячу
    Ответ написан
    Комментировать