• Javascript фреймворки - дань моде или быстрота и удобство?

    @maxbublik
    JS фреймворки уже несколько лет - это будни фронтэнда, и это не мода, и это никуда не уйдет. Также как никуда не уйдет традиционная верстка. Они будут жить вместе. Четкую границу между веб-сайтами и веб-приложениями провести нельзя, но суть вопроса автора вопроса понятна.

    Конечно же, делать простой лендинг на чем-то типа Angular/React - это клиника. Хотя если нужны интерактивные блоки, очевидно лучше использовать Vue, чем городить что-то на jQuery. Vue как раз хорош тем, что его можно задействовать только для отдельных виджетов, а весь остальной сайт продолжай писать как тебе угодно.

    Сам Vue фреймворк и свой код Vue-виджетов нет необходимости всегда собирать. Шаблоны для Vue не похожи на кошмар, приведенный в листинге. Все верстать кастомными тегами не обязательно, по мне, так это тоже клиника. Да, в продуктив все равно придется собирать, и сборка всегда сложная, и это якорь, который еще несколько лет придется тащить, но со временем втягиваешься, скрипт сборки кочует из проекта в проект. Со сборкой придется потерпеть.

    Короче, если вы верстаете но на JavaScript ничего сложней jQuery вы не умеете, то вы в заднице. И каждый год вы все глубже.
    Ответ написан
    Комментировать
  • Сервис для создания простой БД?

    Krasnodar_etc
    @Krasnodar_etc
    avito front
    1 - Ставишь себе любую БД и заполняешь любыми данными. Для простоты можно MongoDB взять
    2 - Гуглишь мануал и за час пишешь простенький бэкенд на Node.
    3 - На фронте отправляешь запросы на написанные тобой роуты в бэкенд

    Или какой-нибудь GraphQL можно попробовать
    Ответ написан
    Комментировать
  • Какой режим работы роутера для vue-router лучше использовать для сайта?

    yarkov
    @yarkov Куратор тега Vue.js
    Помог ответ? Отметь решением.
    что бы не навредить в будущем SEO

    Для этого SSR нужен. А для vue-router я history использовал бы.
    Ответ написан
    4 комментария
  • Что означает однопоточность Node.js?

    @emp1re
    Однопоточность не касаеться самого процесора, в процесоре или других просецах могут выполнять N задач.
    Event loop это способ передачи задач процесору/процесам/сервисам. Есть очереди со своими правилами и приорететностью, сылки в памяти на задачи которые ждут результа вычисления.
    Однопоточность не становиться многопоточностью через кластеризацию. Это всего лиш клон вашего приложения который занимает свободное ядро. Это паралельность.
    Node очень просто в скалировании, поднятии и распределении нагрузки. Так что имеено для этого и используют все большие компании.
    Ответ написан
    2 комментария
  • Как исправить ошибку при проверки POST через chai?

    vahe_2000
    @vahe_2000
    По умолчанию тесты мокко имеют 2 секунды тайм-аута это означает, что тест должен быть завершен в течение 2 секунд. Вы можете увеличить (в miliiseconds) следующим образом: this.timeout(5000); Этот тест может занять до 5 секунд.попробуйте.mochajs.org/#asynchronous-code
    Ответ написан
    Комментировать
  • Как убрать при клике на свободное место?

    amux
    @amux
    alp.ac
    https://jsfiddle.net/flatiron_school/zs6x9eja/
    Фон за окном можно сделать прозрачным
    Ответ написан
    Комментировать
  • Как получить индекс элемента, который вызвал функцию?

    Hyubert
    @Hyubert
    JS
    Не нужно так
    лучше делегировать собитие

    <div id="parent">
        <button>Button 1</button>
        <button>Button 2</button>
        <button>Button 3</button>
        <button>Button N</button>
    </div>
    document.getElementById('parent').addEventListener('click', function (e) {
      console.log(e.target);
    })
    Ответ написан
    8 комментариев
  • Как должен выглядеть процесс работы с Docker?

    vyachin
    @vyachin
    Ищу работу
    как я понял по ответам тут собрались адепты докера. В этой церкви последователь должен появиться атеист. Только сегодня был большой срач насчет какие проблемы можно получить при переходе на докер https://habrahabr.ru/post/332450/ очень советую почитать.

    Теперь к вашему вопросу. Докер НЕЛЬЗЯ использовать для персистентный образов. Т.к. если его правильно готовить никакой уверенности нет на какой ноде будет запускаться ваш контейнер физический. Т.е. все что пишет в память или на диск нельзя оборачивать в докер контейнер. Потом есть системы оркестрации, которые ваш контейнер могут с одной ноды на другую перебросить, что вы думаете будет с памятью контейнера - правильно, она очистится.

    Тут мне могут возразить что у нас все работает на "отлично" - это вы господа с проблемами не сталкивались. Читаем статью по ссылке выше и начинаем готовиться.

    Давайте разберем ваш стек и посмотрим что можно упаковать в докер контейнер.
    - NodeJS - не знаю как это у вас работает, если нет состояния - то можно
    - MongoDB - база, пишет в файлы, однозначно нельзя
    - ElasticSearch - этого зверя точно нельзя он и в память и на диск пишет
    - Redis - пишет в память, точно нельзя

    И что в итоге вы хотите обернуть в контейнер? И зачем вам докер? Чтоб mongodb была запущена от имени root? При этом мы помним о проблемах с безопасностью самой mongodb. Или elasticsearch завернуть в докер, он физический сервер способен утилизировать на 100% по памяти, пропускной способности дисковой подсистемы и 100% процессорного времени, а вы ему хотите еще один уровень абстракции в лице докера? ))

    Одно дело на компьютере разработчика использовать docker-composer и совсем другое дело в продакшене.
    Ответ написан
    8 комментариев
  • Как должен выглядеть процесс работы с Docker?

    @paldraken
    Попробую описать простыми словами без серьезной терминологии (Devops'ы не бейте ногами).

    Следующим шагом я бы рекомендовал вам начать использовать docker-compose.
    Он позволит всю инфраструктуру описать в одном конфигурационном файле, запускать все одной командой и создать алиасы для общения контейнеров между собой.

    Например у нас такая структура. Я использую php но для nodejs может быть похоже.
    project
       - scr/   #Код проета под контролем версий в git
            - Dockerfile
            - phpfile1.php
            - phpfile2.php
            - etc.php
       - db_data/ #папка где будут сохранятся база данных. (иначе каждый запуск контейнера будет ее обнулять)
       - docker-compose.yml
       - site.conf   #конфиг для виртуального хоста nginx
       - nginx.conf #конфиг nginx


    Настраивается взаимодействие в специальном файле.
    docker-compose.yml
    version: '2'
    services:
      nginx:
        image: nginx:latest
        ports:
          - "8080:80"
        volumes:
          - ../src/:/app
          - ./site.conf:/etc/nginx/conf.d/site.conf
          - ./nginx.conf:/etc/nginx/nginx.conf
        links:
          - php
      db:
        image: mysql:5.7
        volumes:
          - ./db_data:/var/lib/mysql
        environment:
          MYSQL_ROOT_PASSWORD: 123
          MYSQL_DATABASE: changeme
          MYSQL_USER: changeme
          MYSQL_PASSWORD: 123
        ports:
          - "33306:3306"
      php:
        build: ../src
        volumes:
          - ../src:/app
        depends_on:
          - db
        environment:
          PHP_DB_HOST: db:3306
          PHP_DB_USER: changeme
          PHP_DB_PASSWORD: 123


    Тут я использую контейнер nginx и mysql из DockerHub и свой контейнер для php описанный в
    src/Dockerfile
    FROM php:fpm
    
    RUN apt-get update && \
      apt-get install -y \
        openssl \
        git \
        curl \
        unzip
    
    RUN docker-php-ext-install pdo pdo_mysql
    
    ADD . /app
    WORKDIR /app


    Теперь использовав docker-compose up мы удобно запустим все контейнеры с нужной конфигурацией.
    Взаимодействие между контейнерами будет происходить по алиасам
    например из php соединение с БД происходит так:

    db.php
    return [
        'class' => 'yii\db\Connection',
        'dsn' => "mysql:host=db:3306;dbname=donor", // db:3306 - это services имя контейнера с mysql в docker-compose.yml 
        'username' => getenv('PHP_DB_USER'), // это переменные окружения для контейнера тоже из docker-compose.yml
        'password' => getenv('PHP_DB_PASSWORD'),
        'charset' => 'utf8',
    ];



    Код прокидываем в 2 контейнера php и nginx (раздел volumes). То есть внутри контейнера создается директория /app которая ссылается на директорию на хост машине. Для разработки очень удобно, вы изменяете код и сразу можно обновлять страницу.

    На продакшен я обновляю код через git из репозитория и перезапускаю контейнеры (если надо).

    ps. Это один из самых простых способов, разумеется существуют более "взрослые" и "правильные" методы. Но надеюсь мое описание позволит вам сдвинутся с мертвой точки в изучении докера.
    Ответ написан
  • Как должен выглядеть процесс работы с Docker?

    amelihovv
    @amelihovv
    Фулстек веб разработчик
    Как мне создать свой контейнер состоящий из образов NodeJs, MongoDB, ElasticSearch, Redis?

    Используйте docker-compose. Вот посмотрите пример https://docs.docker.com/compose/wordpress/#bring-u...
    Где это все хранить?

    Хранить можно в облаках, но за это нужно платить. Проще таскать с собой docker-compose.yml, и на тестовых серверах собирать.
    Как мне расшарить папки проектов для Docker?

    Для этого существуют volumes.
    volumes:
           - /home/user/Projects/folder1:/var/www/html

    Теперь папка folder1 на вашем компьютере доступна в контейнере по пути /var/www/html.
    Как мне это интегрировать с CI и CD?

    Да все просто. Качаете gitом ваш проект, собираете контейнеры на ваших тестовых серверах и вперед. Можете jenkins еще поставить, он бесплатный. Вот тут есть видосы, как это сделать https://serversforhackers.com/series/jenkins
    Ответ написан
    2 комментария
  • Когда можна приступать к фреймворкам?

    zo0m
    @zo0m
    full stack developer
    Стандартный ответ на вопрос как, когда и что учить:
    пили проекты, решай реальные задачи, все остальное тлен.

    Нужно подкреплять практику теорией, а не наоборот.
    Представь, что ты решил научится плавать, сколько книг тебе нужно прочитать по плаванью? Одну про плаванье для чайников, одну-две про стили плаванья, еще одну про всякие истории, где старые пловцы рассказывают о своих ошибках? Или просто залезть в воду и махать руками будет эффективнее? В идеале конечно тренера бы (не курсы, а наставника), но и самому побарахтаться - научит тебя больше, чем 100 книг.

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

    @Panamer
    CI да.
    Больше автоматизирует нудное тестирование. Упрощает выкладку новых версий. Твоя работа будет легче, меньше ошибаться будешь.

    Docker удобным образом вписывается в CI. Более того, современный софт подразумевает контейнеры для CI. Как правило это Docker.

    Методологии Agilie, gitflow и пр. смысла лишены. При работе команды имеют смысл. При работе в одного - внутри своего мозга вы куда быстрее и куда лучше договоритесь.

    Порядок в Git смысл имеет даже при работе в одного

    P.S. gitfow и CI это противоречивые вещи.
    Gitflow подразумевает выпуск кумулятивных релизов. И их поддержку (hotfix'ы).

    А CI предполагает прямо противоположенное - непрерывные изменения. Без явно выраженных версий

    Gitflow хорошо подходит под выпуск к примеру определенных версий Linux (ради чего и создан git), тут целесообразен полный gitfow.

    В то время как например GitHub модернизирует себя постоянно и потому обходится без gitflow.
    Пруф https://m.habrahabr.ru/post/189046/

    Я сомневаюсь что одиночному разработчику под силу поддерживать несколько разных релизов (именно для этого нужен gitflow)
    Ответ написан
    Комментировать
  • Как организовать процесс процесс разработки одиночке?

    drno-reg
    @drno-reg
    см не кратко
    Здравствуйте.

    Считаю что, даже при разработке в одиночку GitFlow уже необходим (если я все верно понял это контроль версий).

    Предполагаю, что разработка в одиночку это начало, т.к. большие проекты в одиночку не утянуть и знание методологии Scrum / Agile и CI лишними не будут.

    Деплоить проекты через Docker: сам на самом деле только пытаюсь осваиваить этот продукт, т.к. для многих работодателей это уже стандарт.
    Ответ написан
    2 комментария
  • Как организовать процесс процесс разработки одиночке?

    petermzg
    @petermzg
    Самый лучший программист
    1. Вести проект по Scrum оправдано:
    а. Вы можете выставить приоритеты своим задачам. Красивостям - маленький, тому что позволит быстрее монетизировать - большой.
    б. Пользовательские истории с низким приоритетом могут быть вашим блокнотом идей.
    2. Это по желанию.
    Если ваш проект уже приносит деньги, то скорее нужно, так как понадобиться делать быстрые фиксы,
    когда вы в данный момент разрабатываете новый функционал.
    3. Это скорее для команд.
    Ответ написан
    Комментировать
  • Как организовать процесс процесс разработки одиночке?

    saboteur_kiev
    @saboteur_kiev Куратор тега Организация работы
    software engineer
    Методология - нет
    воркфлоу и CI - да
    докер - возможно

    Методологии нужны для того, чтобы организовать работу команды над проектом. В основном - чтобы минимизировать простои в команде, повысив общую производительность.
    В одиночку вы можете попытаться имитировать самоорганизацию команды, но так, как никакого видимого результата в этом не будет, быстро надоест. Например, ежедневный стендап, где все делятся друг с другом что происходит- будет выглядеть глупо в команде из одного человека.
    Ответ написан
    5 комментариев
  • Как понять БЭМ, и что мотивирует верстальщик в использовании его?

    class="custom__button black__button login__forgot reg__button right__part mob-full__width"

    На вопрос верстальщику что это такое: "Это бэм"


    Вам нагло соврали. Это говнокод.

    Понять BEM
    Ответ написан
    5 комментариев
  • Как открывать несколько окон PhpStorm с разными проектами?

    С версии 8.0, настройки здесь: File->Settings->System Settings-> группа Project Opening -> "Open project in new window" или "Confirm window to project in"
    Ответ написан
    3 комментария
  • Как обработать полученные данные с помощью $.post за пределами ОВ callback-функции?

    smanioso
    @smanioso
    Отмечайте ответы на свои вопросы!
    Почитайте вот в эту сторону - habrahabr.ru/post/193598
    В комментарии Алексей Тен правильно говорит, что на момент выполнения инструкции return никакие данные еще не вернулись.
    Ответ написан
    1 комментарий
  • Какие есть быстрые базы данных?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    1. SSD быстрее SAS, если в RAID поставить парочку.
    2. mysql на hdd и на ssd показывает примерно одинаковую производительность.
    3. в mysql есть возможность хранить in-memory таблицы
    4. Вам нужна не столько быстрая база, сколько грамотно настроить базу. Той же MySQL можно дать достаточно памяти под кэш, индексы она хранит в памяти + надежность которую ни Redis ни MemSQL не смогут дать.
    5. Используйте Redis/Memcached для хранения сессий (они тоже свой футпринт дают)
    6. Как альтернатива MySQL - используйте Postgress, он все ж чуточку шустрее и дает больше возможностей для построения индексов. Насколько я помню в 3-ей версии HHVM допилили драйвер под нее.
    Ответ написан
    5 комментариев