• Npm, Webpack, NodeJs с чего начать?

    @deliro
    Фронт развился в какую-то неправильную сторону, это правда
    Вкатиться на фронт очень сложно, это тоже правда. Причём, необоснованно сложно.

    Я бы выделил два пути, как можно въехать во всё это:
    1. Создать приложение на Vue или React по туториалам, затем разобраться, как и зачем оно всё
    2. Разобраться как и зачем оно всё (aka Vanilla JS), потом заняться реактами

    Имхо, вариант №2 предпочтителен и более прост, потому что на варианте №1 есть огромный шанс застрять, никогда не разобравшись, как оно работает а при любых нешаблонных ошибках поднимать лапки.

    Что здесь нужно понимать:
    1. Есть разные версии ES (ecmascript), они все обратносовместимые. Программист может писать на любой версии, какая ему нравится. Обычно берут последнюю стабильную

    2. Для проекта обычно есть две версии ES: та, на которой пишут программисты и та, которая исполняется в браузере или в ноде (об этом позже). Например, программист пишет на ES8, а код транслируется на ES5. Это позволяет использовать последние предсмертные хрипы писки моды JS при этом запуская всё на древнейшем говне вроде IE11. Перегонкой кода из JS/TS одной версии в JS другой версии занимается транспилятор: babel / esbuild / swc

    3. Новые версии JS содержат расширения стандартной библиотеки, которых нет в старых браузерах (например Array.from, Object.entries и т.п.). Эти дырки затыкают полифиллы, они же shims. Самая популярная дырозатыкательная машинка — corejs

    4. Весь код очевидно не пишется в одном файле и может быть написан на TypeScript (он же TS), JSX/TSX (реактовый синтаксис). Всё это нужно собрать в один или несколько файлов, то есть скомпоновать. Этим занимается bundler: часть webpack / esbuild / spark / etc.

    5. Этот же парень отвечает за то, чтобы та тысяча библиотек, что лежит в node_modules, попала в итоговый условный main.js, но не целиком, а только то, что используется. Последнее называется tree shaking (типа навозную кучу node_modules потрясли как дерево, что упало — то не нужно)

    6. (то самое "позже) Код может исполняться не только в браузере пользователя, но и на сервере без браузера вообще. Это нужно для SSR aka Server Side Rendering. SSR — это такой глобальный вонючий костыль для SEO. Дело в том, что стандартные SPA приложения содержат один DOM элемент, куда цепляется всё остальное приложение вроде реакта или вью, которое уже содержит всю вёрстку прямо в JS. Но не все поисковики согласны с таким подходом и некоторые (не будем показывать пальцем на яндекс) не умеют выполнять JS и индексируют только тот самый единственный DOM элемент, который существует на этапе отдачи страницы в браузер. Это уже потом к нему JS движком дорисовывается весь остальной сайт. Соответственно, сайт индексируется от слова "никак", а некоторым это важно. Например, когда SPA — это не админка. Для этого есть два выхода: страницы, важные для SEO, рендерить чем-то не-реактовым или сделать SSR — делать за яндекс работу на сервере (на ноде), представляя в уме, что у нас есть DOM и браузер (на самом деле нет), на выходе получать начальное состояние HTML, отдавать его клиенту (браузеру или поисковому роботу), а JS'ом её т.н. "гидрировать", иными словами — оживлять.

    7. webpack отвечает за всё вот это сверху в том или ином виде. Это такой кухонный комбайн, в который вкидываешь кучу хлама в одном виде, а получаешь другую кучу хлама в другом виде.

    Начать советую с parceljs, который сильно проще в освоении, чем webpack. И на написании кода максимально без библиотек.
    Ответ написан
    1 комментарий
  • Как понять уязвим запрос к бд или нет?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Понять очень просто.
    Если в строке запроса есть переменные РНР, то инъекция теоретически возможна
    Если в строке запроса нет переменных, то есть она представляет собой константное значение, то тут в принципе не может быть инъекции.
    В запросе "SELECT * FROM post_api WHERE `currency` = ?" переменных нет. Значит инъекции тоже.
    А подготовленный запрос или нет - это дело десятое.
    Ответ написан
    4 комментария
  • Как удалить вредоносный код с большого количества файлов?

    Immortal_pony
    @Immortal_pony
    rm -rf /var/www/mysite.com/*
    cd /var/www/mysite.com
    git clone {myrepourl} .
    cp .env.example .env
    nano .env
    composer install
    Ответ написан
    6 комментариев
  • Реально ли работать в одном IT-проекте (продуктовом) больше 5-ти лет и не деградировать профессионально?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Если проект действительно развивается, то и разработчики, которые над ним работают, могут развиваться. А если занимаешься только тем, что добавляешь и удаляешь поля в формочках, то можно и за год деградировать.
    Ответ написан
    Комментировать
  • Как сделать localhost безопасным?

    @romicohen
    Системный Архитектор
    https://habr.com/ru/post/309556/

    или сразу посмотрите в сторону https://itelmenko.ru/working-environment/laradock/ все равно потом к этому придете))
    Ответ написан
    Комментировать
  • Должен ли бэкенд разработчик разрабатывать админку?

    JhaoDa
    @JhaoDa
    LaravelRUS Team
    sarcasm_on
    Да, в статье 99 Трудового кодекса так и написано
    2)... бэк енд должен самостоятельно сделать админку при разработке бэк енд
    8)... бэк енд разработчик должен сам понять и не утруждая заказчика сделать админку
    sarcasm_off

    Автор, проснись! Что за глупые вопросы? Какой «должен»? Как договоришься, так и будет. Конечно, заказчик хочет навалить на исполнителя побольше за те же деньги.
    Ответ написан
    Комментировать
  • Стоит ли учить php в 2021 году для разработки web приложений и сайтов?

    Nordic_Alf
    @Nordic_Alf
    PHP Developer
    Многие хейтят Php, что он медленный, старый, много утечек памяти, нет нормальной асинхронности

    Та те хейтеры - студенто-школьники, которые один раз хелоуворлд написали прям в одном файле на 2м курсе не дойдя даже до ООП.

    Конечно учи, если тянет в бэкенд веба, хороший язык для старта. Проектов хороших и новых куча, денег куча, работы куча(в том числе удалённой!), решений куча. Язык быстрый, любые задачи решает, асинхронность прикручивается, всё что душе угодно. Реально очень востребованный язык, никуда он не умирает и вакансий меньше не становится.
    То есть это не тот язык, где страшно за будущее пока учишь его. С PHP ты всегда найдёшь первую работу. Личное имхо - только в CMS не лезь, иди по пути фреймворков, ООП, паттернов, SOLID, хорошего бэкенда в общем. Удачи!
    Ответ написан
  • Везде ли нужно проверять на существование элемента в массиве?

    @MikUrrey
    Привет!
    Если массив является частью входных данных, будь то user input, или какой-то файл, или БД, то всё верно - проверка нужна (даже обязательна). А вот в таком случае и подобных точно нет:
    $this->someParam = [
         'a' => 1,
         'b' => 2,
    ];
    //...
    //...
    //...
    $a = $this->someParam['a'] ?? '';

    Такая проверка уже сродни
    if (TRUE !== FALSE) {
         //...
    }
    Ответ написан
    2 комментария
  • Что делать со своей невнимательностью?

    Ni55aN
    @Ni55aN
    Так ревью это же не тестирование. Нужен тестировщик, в идеале сумеющий все покрыть автоматизационными тестами.

    Также нужна информация о том, что за стек используется на бэке. Допустим, если это JS, то не помешало бы постепенно внедрять туда TypeScript. Также независимо от языка можно внедрить практики из контрактного программирования
    Ответ написан
    7 комментариев
  • Работа без договора. Физ лица. Можно ли взыскать?

    Jump
    @Jump
    Системный администратор со стажем.
    Можно ли взыскать?
    Если договора не было, то нельзя, это вымогательство.
    Человек вам ничего не должен, ничем не обязан, а вы с него пытаетесь деньги получить.
    Ответ написан
    Комментировать
  • Как тестировать оптимизацию frontend?

    bingo347
    @bingo347
    Crazy on performance...
    796stwepspdbny_xqrwrrtvoor4.png
    Ответ написан
    Комментировать
  • Как правильно создавать архитектуру?

    vesper-bot
    @vesper-bot
    Любитель файрволлов
    Вообще, нужно взять бумажку и задать на высшем уровне абстракции все возможные в текущем представлении сущности. Если разговор о "змейке" - задаете вопрос, что у вас в игре есть как сущности. Скажем, есть змея, есть стены, есть жрачка, их пишете как сущности. Затеяли добавить "муху" - пишете тоже. Затем пишете, кто что умеет делать: змея умеет ползать, стукаться в стены или жрачку, расти и возможно что-нибудь ещё, стены просто стоят, жрачка умеет появляться, съедаться. И так далее, пока всю игру в примитивах не опишете. Дальше - каждая сущность это класс, каждое отношение это метод, каждый параметр, выясненный в процессе, это свойство класса. Но чем дальше в лес, тем больше грабли. На уровнях выше начинаются модули со своей инкапсуляцией, события, гонки всякие, а-ля "кто съел яблоко, вы или противник", асинхронное взаимодействие, подписки на что-либо, и так далее, интерфейсы становятся сложнее, какие-то объекты передаются как параметры и всё такое, но общий принцип остается - сначала большими кусками всё делится на куски поменьше, определяются интерфейсы (кто что может спросить или повлиять на кого), пытается реализовываться, потом, вполне возможно, находятся противоречия, которые приходится устранять рефакторингом, и по спирали.

    Что поизучать - сначала просто базовое ООП, чтобы понять, из чего вообще строить программу, что такое объект, класс, интерфейс, наследование, полиморфизм (та же жрачка может быть нескольких видов, например, но "съедается" она одинаковым образом), инкапсуляция (а-ля "не лезь в мои свойства своими лапами"). Все эти SOLID и прочие аббревиатуры, а также паттерны и антипаттерны, появятся в процессе, когда от архитектуры перейдете к дизайну самих сущностей и написанию кода методов. По-моему так.
    Ответ написан
    Комментировать
  • Как записать аналог из PHP в JavaScript?

    E1ON
    @E1ON Куратор тега JavaScript
    Programming, Gamedev, VR
    firstArr.map(({ text }) => secondArr.push(text));
    Ответ написан
    3 комментария
  • Как записать аналог из PHP в JavaScript?

    rozhnev
    @rozhnev Куратор тега PHP
    Fullstack programmer, DBA, медленно, дорого
    Вот пожалуйста:
    var test = [
      {
        "text": "Lorem",
        "type": "string",
      },
      {
        "text": "Ipsum",
        "type": "string",
      },
      {
        "text": 32,
        "type": "integer",
      },
      {
        "text": 64,
        "type": "integer",
      },
      {
        "text": 128,
        "type": "integer",
      }
    ];
    
    var result = test.map(el=>el.text);
    
    console.log(result);
    Ответ написан
    Комментировать
  • Где используется Nim?

    Можно поискать на реддите: https://www.reddit.com/r/nim/
    Но по моим ощущениям - прямо массово нигде.
    Nim скорее язык для энтузиастов, которые хотят именно nim использовать.
    А так из популярных языков, которые дают похожие возможности есть Go, Rust и D.
    Ответ написан
    4 комментария
  • Как должен располагаться selenium в проекте с web приложением?

    @5am
    без разницы, как удобнее так и делайте
    Ответ написан
    Комментировать
  • Если добавить в проект нового сотрудника, то объём работы увеличивается?

    Sanes
    @Sanes
    Когда делаешь всё сам, то нет надобности в подробных пояснениях и контроле для задачи.
    Следовательно, экономия времени на менеджменте.
    Ответ написан
    Комментировать
  • Могу ли я уже выполнять первые заказы по верстке на фрилансе с таким портфолио?

    IonDen
    @IonDen
    JavaScript developer. IonDen.com
    Да пожалуйста, работайте. Главное заказчика найти.

    P.S. Немного дополню. По сути ваша задача:
    1. Сделать продукт на уровне достаточном для заказчика
    2. Уложится в указаный срок
    Ответ написан
    Комментировать
  • Сервис по поиску коллеги/друга для совместной удаленной работы, как называется?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    Будьте оригинальны
    https://tinder.com/app/recs

    Не найдете коллегу, найдете еще кого то.
    ПС в настройках выставите парней.
    Ответ написан
    Комментировать
  • Какие плагины для Wordpress вы бы рекомендовали?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    Я бы рекомендовал плагин MakeAllBeAColl

    Он решает все проблемы и не дает вам спэмить
    Ответ написан
    1 комментарий