Araya, ты чего творишь? где ты бота увидел? Я сам прошел платное обучение и если бы не сделал этого то моё изучение бы затянулось и я бы пошел не теми путями.
Моя жена проходит сейчас обучение на фронтэнд разработчика и прекрасно освоила верстку. Сейчас уже дошла до изучению React. А когда она пыталась сама что то освоить, то ей было ничего непонятно.
xaocb, люди говорят что надо читать книжки и отрицают важность курсов. Но это совершенно нелепо. Университеты для того и существуют, чтобы структурированно дать информацию, контролировать выполнение домашних заданий, проверка курсовых и дипломных работ.
Ни в одной книжке не найдете сразу чтоб было рассказано и про язык программирования, и про фреймворки, и про различные программы, которые нужно установить для работы с этим стеком.
На курсах как раз вы проходите полноценное обучение в условиях приближенных к реальной работе в команде. Вам дают задачи на несколько человека. Это называется командная разработка. И потом указывают вам какие там у вас ошибки, делают код ревью.
То что курсы стоят недешево - ну как сказать. У программиста зарплаты начинаются от 100 тысяч рублей. Пожертвовать одной зарплатой ради года обучения это того стоит. Кроме того, можно же обучаться вкредит.
Денис Юрьев, нет там более высоких разрешений в списке. только более низкие. ну если бы я не додумался как поменять разрешение, то наверное бы и линукса у меня небыло ))
я думал что есть разница и что эта разница навязана как то технологией что мобилка должна работать внутри экосистемы и пользоваться только ее сервисами - apple одними, андроид другими.
1)образ - это слепок дистрибутива
2)контейнер - это развернутая виртуалка из одного или нескольких образов с заданными настройками
3)volume - место где хранятся польвательские данные - папка проекта, данные от базы данных. Представляет из себя смонтированную в каждый контейнер пользовательскую папку локальной машины. Вот эти вольюмы как раз меняют свое содержимое во время разработки.
сергей кузьмин, да. именно это я и имел ввиду. сам контейнер не меняется. Меняется только содержимое папки проекта. Эта папка находится на локальной машине, но она же пробрасывается еще в контейнеры (во все) чтоб в контейнере можно было запустить команду для сборки или установки какой-нибудь библиотеки. Плюс если у нас контейнер с базой данных mysql, то хоть мы и пробросим его папку на локальную машину, содержимое контейнера будет меняться когд в базу данных будут добавляться записи. от этого никуда не деться. просто это будет уже в volume происходить.
сергей кузьмин, я понял кажется что вас смущает. Но здесь один момент. Сам контейнер же не будет меняться. На контейнере будет просто вызываться команда npm. А она уже будет вносить изменения в Volume - в общей папке, где лежит проект. То есть сам контейнер не будет терпеть изменений. Он просто повлияет на файлы проекта.
сергей кузьмин, делать новую версию образа несколько раз в день? вы смеетесь) разработчик за день добавляет по несколько пакетов в свой проект и запускает сборщик. А фронтэнд разработчик вообще при каждом сохранении проекта запускает сборщик автоматически.
Точно так же как разработчик запускает своё приложение много раз на дню и в этот момент отрабатывает node потому что вызывается команда npm run serve. и где вы думаете должна запуститься эта команда? Правильно! на сервере. Потому что докеры нам нужны как раз как окружение, а локальная машина нужна лишь в качестве блокнота для набивки кода.
Повторюсь - вы однобоко оцениваете инструмент. Для девопса это контейнер для деплоймента. А для программиста это виртуальная машина - не более.
То же самое можно сказать про корову. Для Индийцев это священное животное - культ поклонения.
Для мясоедов это источник мяса.
для молочного комбината это источник молочной продукции.
для пожелых женщин это источник шерсти.
Каждый использует по своему предназначению и нельзя сказать для чего это предназначено.
Если бы докер был просто для деплоймента, то его не использовали программисты. Они бы вели себе спокойно разработку одного проекта на своем компьютере, а когда нужно было бы переходить к другому проекту, то они бы сносили конфликтующие версии пакетов и переходили к другому. Но почему то программисты без докеров сейчас не работают.
Контейнер - это виртуалка в которой есть образ нужного стека и этот образ не просто висит где-то, а там активно выполняются процессы в том числе и различные сборщики, воркеры.
Например, брокер сообщений Kibana по вашему не должна отрабатывать в контейнере? Запускать скрипты, которые тоже будут выполняться в контейнере.
сергей кузьмин, у вас скрипт запускает установку библиотек nodejs но если нам понадобится в проекте грохнуть папку node_modules и потом снова запустить npm i надо же чтобы как то нода снова запустила сборку пакетов. Например, если в package.json добавили новую зависимость. вот она зачем нужна на постоянной основе (
сергей кузьмин, в php фреймворках сборщики запускаются из корня. они создают папки node_modules где хранятся все нужные либы для ноды и vendor для пакетов php. А докеры используются для того, чтобы воссоздать на любом железе экосистему необходимую для запуска и разработки проекта чтоб каждый разработчик команды мог у себя локально развернуть проект и работать с ним и использовать контейнеры для взаимодействия с нужными языками программирования (с нужным стеком). Иначе как разработчики должны вести разработку если у них разные операционные системы?
А то что касается дейплоймента - это второе предназначение контейнеров. А вы как то с одного боку подходите к этому. Если у разработчика на поддержке несколько проектов с разным стеком, то как он по вашему должен работать? на каждый проект ставить отдельный компьютер? это нереально. Или устанавливать сразу разные версии библиотек и языков программирования? тоже не вариант.
сергей кузьмин, я и так работаю на Линуксе и у меня без проблем всё работает если установлю нужные версии. Но вы не понимаете. Докер для разработки еще как используется. Когда у тебя несколько проектов и каждый требует технологию своей версии. Как раз для продакшена можно и без докера обойтись, чтоб не иметь посредников между железом и операционной системой, а вот на локальной машине нужны контейнеры разными версиями php чтоб в зависимости от проекта использовать тот или иной. так же с базами данных. Ну а нода - она нужна только для того чтобы запускать сборщик время от времени поэтому ее лучше просто установить вовнутрь конкретного контейнера.
а как сделать чтоб он туда попал? ведь мы скачиваем образ, в котором нет этого файла.
а мне пришлось скачать этот файл и положить в папку проекта на локальной машине + еще на всякий случай в папку где лежит Dockerfile для node и думал что вот этот файл как то скопируется куда вы сказали командой
COPY docker-entrypoint.sh /usr/local/bin/
а как должно быть и куда его надо положить до разворачивания докера чтоб он скопировался в контейнер командой
COPY docker-entrypoint.sh /usr/local/bin/
сергей кузьмин, я не знал куда его положить. скачал его с git и положил в двух экземплярах - один в папку проекта на локальной машине, а второй в папку где лежит Dockerfile от node.
Василий Банников, я так понимаю уровень мидла определяется не только знанием языка и основного фреймворка, но и инфраструктуры, которая отличается в разных языках программирования. Нужно инфаструктуру подтягивать а для этого постажироваться где-нибудь на opensource проекте так чтоб взяли в команду и дали все инструменты?
denn, не верю. я видел таблицы сравнения. нет там никакого выигрыша по сравнению с 8 версией mysql.
во вторых для сайта визитки на вордпрессе разницы никакой. а для крупных проектов всеравно я бы взял postgreSQL
Моя жена проходит сейчас обучение на фронтэнд разработчика и прекрасно освоила верстку. Сейчас уже дошла до изучению React. А когда она пыталась сама что то освоить, то ей было ничего непонятно.
Институты же не зря изобрели.