Задать вопрос
  • Каким способом (книги, курсы, лекции, вебинары и пр.) порекомендуете учить WEB? Расскажете свои истории становления в этой сфере?

    @Ariurn
    Единственная книга, которую мне за всё время пришлось использовать - Герберт Шилдт по плюсам. Да и то не для Web-разработки, а чисто для понимания основ логики программирования.
    Если говорить конкретно про Web: самоучка методом проб и ошибок, лазанья по форумам итд. Сначала просто начал глядеть исходный код различных сайтов (было интересно, как оно всё устроено). Потом начал гуглить на различные темы типа: минимальный html шаблон, основы css итд. Вполне достаточно статеек/мануалов с различных тематических сайтов. Сначала пробуете писать простенькие одностраничники, безо всякой серверной части. Потом попробуйте поиграться со стилями, js/jquery фишками. Это Front-end.
    Касательно Back-end'a: сначала рисовал простые скрипты на php (хотя и я бы на вашем месте сразу полез в python) по типу динамического вывода той или иной информации. Потом научился соединять с БД (PostgreSql, MySql, SqLite итд, погуглите разные варианты, каждому своё). Дальше пробовал что-то типа написания мини-блога.
    Когда приучитесь творить подобные мини-проекты, посмотрите в сторону фреймворков.
    Для фронтенда это Bootstrap, Semantic-UI (как наиболее адекватные с моей точки зрения).
    Для бэкэнда (в зависимости от языка, на котором пишете): для PHP - Laravel, для Python - Django.
    В любом случае, основные советы следующие:
    1) Как можно больше практики. Теория в этом деле ничего не стоит, опыт - ваше всё.
    2) Сразу учитесь "этике" программирования: соблюдайте табуляцию, давайте переменным/классам нормальные названия итд.
    3) stackoverflow - ваше всё (вы ещё попомните эти слова).
    4) Хорошие работы (на поздних этапах) сохраняйте для будущего портфолио (будет, что показать).
    Ответ написан
  • Почему метод forEach пропускает (не обрабатывает их) вложенные элементы?

    @balamyt92
    ; select * from users; --
    На самом деле все просто. outerHTML перезаписывает элемент, то есть когда вы записываете у родителя outerHTML, то ребенка на которого ссылается ранее сделанная ссылка уже не существует, там уже новый элемент.
    Ответ написан
    6 комментариев
  • Зачем нужны prototype если все ключи и методы можно задать в конструкторе?

    @balamyt92
    ; select * from users; --
    Для "наследования" и динамического изменения в процессе исполнения.
    Ответ написан
    Комментировать
  • Зачем нужны prototype если все ключи и методы можно задать в конструкторе?

    @Melagomania
    Определять метод в конструкторе = создавать новую копию функции для каждого нового экземпляра класса. Это не есть хорошо: создав 10 экземпляров класса, мы получим 10 одинаковых функций (зачем?).
    Записывая метод в prototype, мы не присваиваем его непосредственно объекту. Метод окажется в свойстве __proto__ созданного экземпляра. Каждый экземпляр нашего класса имеет свойство __proto__ и это свойство у каждого экземпляра ссылается на ОДИН и то тот же объект, в который мы и записали наш метод, используя prtototype. Такми образом, записав функцию func в prototype и потом создав 10 экземпляров класса, мы получим всего ОДНУ функцию func, сохраненную в __proto__. Все созданные объекты будут использовать эту ЕДИНСТВЕННУЮ функцию, хранящуюся в общем месте.
    Вот как-то так.
    Ответ написан
    Комментировать
  • Как синхронизировать SCSS и CSS?

    delphinpro
    @delphinpro Куратор тега CSS
    frontend developer
    Попадал тоже в такую ситуёвину...
    Решал кропотливым ручным трудом.

    Для облегчения отслеживания сделал копию css файла, открыл копию и билд в diff вьювере (в моем случае инструмент сравнения файлов в phpstorm). Цель — привести билд к идентичности с текущей версией css. По каждому диффу вносил изменения в sass, дифф тут же обновлялся после пересборки и я переходил к следующему.

    ЗЫ. css копию лучше переформатировать автоформатом. А в sass включить outputStyle="expanded"

    Автоматически подобную задачу вряд ли можно решить.
    Ответ написан
    Комментировать
  • Как sizeof вычисляет размер массива?

    @res2001
    Developer, ex-admin
    sizeof - это не функция (хоть и выглядит похоже) - это операция взятия размера.
    sizeof всегда вычисляется на этапе компиляции, т.е. в исполняемом файле вместо вызова sizeof уже будет вычисленная константа.
    Когда компилятор знает размер массива, как в вашем примере, он вернет полный размер массива.
    Но если передать в sizeof произвольный указатель (именно указатель, а не статический массив), он вернет размер указателя.

    Статический массив - это не указатель. Указатель - на этапе выполнения занимает в памяти место для хранения адреса. Статический массив занимает в памяти место для хранения данных массива.
    Поэтому статический массив - это не указатель. Хотя часто компилятор работает с именем статического массива как с указателем.
    Ответ написан
    8 комментариев
  • Как динамически выводить элементы массива?

    0xD34F
    @0xD34F Куратор тега Vue.js
    Сделаем объект, который следует выводить, вычисляемым свойством:

    obj() {
      return this.items[0];
    },

    Если он существует - выводим:

    <div v-if="obj">
      <div v-for="(val, key) in obj">
        ...

    Похоже на то, что вам надо?
    Ответ написан
    1 комментарий
  • Безопасность данных в Vue.js?

    DMGarikk
    @DMGarikk
    Lead Software Developer
    поменять её isAuth = true, и получить доступ к закрытой части интерфейса

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

    sim3x
    @sim3x
    1. Нет
    2. Да, но только если картинок в контенте на странице 20+
    3. Нет, обьединять нужно множество мелких картинок

    Для нахождения проблем нужно использовать профайлер браузера
    Часто проблемы связаны не со скоростью загрузки, а с тормозами от кривого жс и цсс
    Ответ написан
    2 комментария
  • Зачем изучать несколько языков программирования(c++, java)?

    DexterHD
    @DexterHD
    Software Engineer, Teamlead, CTO
    Не за чем. Лучше изучать фундамент. Например 3 тома Таненбаума:
    • "Архитектура компьютера"
    • "Современные операционные системы"
    • "Сети"


    Можно в разы повысить свою стоимость как специалиста чем пройдя курсы по 3 языкам программирования.
    Ответ написан
    2 комментария
  • Зачем изучать несколько языков программирования(c++, java)?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Во-первых, гипотеза лингвистической относительности утверждает, что чем больше языков знаешь, тем гибче и богаче твой логический аппарат. По своему опыту могу сказать, что это правда. Например изучение Lisp'ов существенно расширило мои возможности в других языках. Но мой опыт и мнение не так авторитетны, как авторов всемирно известного бестселлера "Программист-прагматик" - Эндрю Ханта и Дэвида Томаса, которые пишут: «Изучайте по крайней мере один новый язык ежегодно. Разные языки решают одни и те же проблемы разными способами. Изучив несколько разных подходов, вы сможете расширить свой кругозор и не погрязнуть в рутине.»

    Во-вторых, рано или поздно профессиональный рост java-программиста, например, неизбежно приводит его к необходимости глубоко понимать работу компилятора и виртуальной машины, а это невозможно без знания C++, на котором они написаны.

    В-третьих, java-программист свободно лазающий за ответами в исходники JVM, способный дебажить сборщик мусора, писать JNI-библиотеки и использовать Compiler API для метапрограммирования имеет больше предложений работы и более выгодные условия.
    Ответ написан
    4 комментария
  • Когда название параметра такое же как и имя глобальной переменной, какие последствия? Никак не могу понять, что такое замещение переменной?

    @abberati
    frontend-разработчик
    с технической точки зрения никаких проблем нет
    var foo = 25;
    
    function bar(foo) {
      console.log(foo);
    }
    
    bar(42) // выведет "42", т.к. внутри функции foo ссылается на параметр, не на глобальную переменную. это и есть замещение


    в этом примере foo снаружи и foo внутри - две абсолютно независимые переменные. снаружи foo равно 25, внутри - оно равно входному параметру 42

    трагично здесь вот что: представьте, что не вы писали код и читаете его в первый раз. вы пытаетесь понять, откуда взялось foo, которое используется в конце длинной функции. начинаете искать по файлу и обнаруживаете, что есть несколько несвязанных между собой переменных, имеющих одно и то же имя. в какой же из этих переменных то самое значение, которое выводится в bar?

    var foo = 25;
    // 20-30 строк кода
    function makeMeFun() {
      // 20-40 строк кода
      console.log(foo);
    }
    
    function bar(bez, buz, kek, lol, cheburek, foo) {
      // 20-40 строк кода
      console.log(foo);
    }
    
    bar(42) // что мы получим на выходе? а чёрт его разберёт


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

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега JavaScript
    Последствие ровно одно - эта глобальная переменная становится доступна только через window.param, а в просто param хранится значение аргумента.

    Пример из жизни:
    Когда вы слышите Владимир Владимирович, вы по-умолчанию думаете, скажем, про Познера. Но если у вас есть коллега с таким именем, то когда вы слышите эти слова в офисе, на ум уже приходит именно он. Это и есть замещение - в разных контекстах одно и то же имя означает разные сущности.
    Ответ написан
    Комментировать
  • Объясните русским языком, что такое права доступа 777?

    @Xilian
    Программист 1С, сетевые технологии, SQL
    >>Некоторые пишут, что их нужно ставить на файлы с конфигом, это специально чтобы потом узнать данные?
    Некоторые но не все. А все которые не некоторые.

    >>Выдают ошибку Access forbidden! 403 ?
    А это уже не от флагов доступа зависит. У вас пользователь и группа скорее всего неверно выставлена.

    >>/img я вижу список картинок, а если перейти /pages, то выдает Access forbidden! ? Так много вопросов и так мало ответов...

    Флаг X или 001, который для файлов выдает возможность запуска в качестве исполнимого файла, для каталогов означает возможность поиска. Это необъяснимо, это POSIX.
    Ответ написан
    Комментировать
  • Какие скобки использовать в стрелочных функциях?

    rockon404
    @rockon404
    Frontend Developer
    anyData.map((data) => { /* тело функции */ });
    anyData.map((data) => возвращаемое_значение);
    anyData.map((data) => ( /* возвращаемое значение */ ));


    Скобки чаще всего используют, чтобы вернуть литерал объекта в короткой записи:
    anyData.map((data) => ({ x: 1 }));
    Без скобок парсер примет литерал объекта за тело функции.

    В скобках можно использовать запятую, порой удобно для быстрого дебага:
    // было
    anyData.map((a, b) =>  a + b);
    // приспичило вывести значения в консоль.
    anyData.map((a, b) => (console.log(a, b), a + b));

    Выполнятся все вызовы и выражения перечисленные через запятую, в нашем случае вывод в консоль, и вернется последнее значение, в нашем случае a + b.
    Ответ написан
    3 комментария
  • Выскакивает рекламный баннер на сайте?

    @lloydbanks
    Это сотовые операторы внедряют свою рекламу.
    Переходите на https - решите проблему.
    Ответ написан
    Комментировать
  • Как составить регулярное выражение?

    lidacriss
    @lidacriss
    wtf
    /^(\d+(?:[,.]\d+)?)\s/
    Ответ написан
    Комментировать