Автор: Денис Матаков

  • Второй день с системами контроля версий: инициализация Git-репозитория

    Второй день с системами контроля версий: инициализация Git-репозитория

    Как выяснилось, управление системой контроля версий очень простое. Чтобы получить необходимый минимум удобства для себя как единственного разработчика на проекте, нужно проделать совсем немного шагов. Это продолжение вчерашнего поста.

    Напоминаю, наша задача: после каждой правки делать «коммит» и иметь возможность вернутся к любому коммиту в прошлом. Ну и, конечно, иметь наглядную историю доработок на проекте.

    На этом этапе мы будем считать, что вы уже подключились к серверу с помощью SSH и смотрите в окно терминала. Первым делом перейдите в папку с проектом, используя команду cd (сменить директорию). Как только вы добрались до нужного пути, выполняем:

    Шаг 0. Нужно рассказать Git кто мы такие. Выполняем следующие команды:

    git config --global user.name "Name Surname"
    git config --global user.email "example@gmail.com"

    Теперь при коммите будет отображаться наше имя.

    Шаг 1. Инициализируем репозиторий.

    git init

    Шаг 2. Рассказываем Git, что у нас есть репозиторий на GitLab (там, конечно, нужно зарегистрироваться и создать репозиторий. Это просто, подробного описания делать не буду). Это как раз то самое удобное место, откуда мы будем брать всю интересную нам информацию. Конечно, можно брать ее из командной строки, а можно немного упростить себе жизнь. Необходимая команда будет выдана самим GitLab после создания пустого проекта:

    git remote add origin git@gitlab.com:account/project_name

    Шаг 3. Самый важный шаг для существующих проектов, особенно интернет-магазинов. Нам нужно выбрать файлы и директории, которые мы будем игнорировать. Вы же не хотите следить за изменениями внутри jpg-изображений ваших товаров?

    Игнорируемые файлы настраиваются в папке .git/info/exclude

    Обратите внимание, что папки, которые начинаются с точки, по умолчанию скрыты. Поэтому установите флажок «Показывать скрытые и системные файлы» в вашем SFTP-клиенте (я пользуюсь Transmit). Чтобы игнорировать картинки, просто укажите в этом файле с новой строки «*.jpg». Также рекомендую игнорировать архивы, логи, pdf и все остальное, что не имеет дела к программированию.

    Шаг 4. Добавляем в проект все файлы, кроме игнорируемых:

    git add .

    Точка здесь означает «все файлы». Если у вас большая современная CMS, это займет некоторое время. Но не очень большое, если ожидание затянулось, можно прервать операцию командой CTRL+C и еще раз проверить, все ли файлы вы игнорируете на шаге 3.

    Шаг 5. Делаем первый коммит:

    git commit

    Нас попросят ввести комментарий к коммиту, а затем дело сделано. Теперь нужно только передать всю нашу работу в GitLab:

    git push -u origin master

    Собственно, на этом все. Заходим на GitLab и видим, что файлы проекта успешно загрузились:

    Следующим этапом я буду это прекрасное дело клонировать у себя на локальной машине, чтобы максимально близко к реальности оттестировать Git и всю эту технологию.

  • Зачем нужны системы контроля версий и какую выбрать?

    Зачем нужны системы контроля версий и какую выбрать?

    Чтобы при очередной правке не поломать сайт, были придуманы специальные системы, которые следят за изменениями файлов и позволяют вернуть время вспять. Попутно также решается проблема работы двух и более разработчиков над одним проектом — они могут работать параллельно и не мешать друг другу, а когда настанет время внедрения, их работа будет автоматически (если повезет) или с помощью главного разработчика объединена.

    Я всегда пользовался Mercurial (HG) для контроля версий. Она просто ставится, у нее легкие запоминающиеся команды и разобраться в ней очень просто. К ней также есть много приложений-визуализаторов, которые показывают изменения, ветки, коммиты и прочие радости не в виде командной строки, а в пользовательском графическом интерфейсе. И в целом технология меня устраивает, но ведь все почему-то вокруг меня уходят из Mercurial в его конкурента — Git. Сегодня я решил, что не должно это пройти мимо меня, и начал изучать что к чему. По факту, конечно, это такая система контроля версий, просто к ней прикручено гораздо больше интересных сервисов, а для визуализации процесса разработки уже и программа-то не нужна — все делают специализированные онлайн-сервисы, например GitLab. Схема работы строится следующим образом: на сервере инициируется репозиторий, потом он клонируется на gitlab и эта связь постоянна. Разработчики не получают доступ к серверу! Они могут скопировать сайт с gitlab к себе на сервер, провести доработку, оттестировать ее и отправить на gitlab обратно. И оттуда уже доработка пойдет в бой, на главный сервер. На мой взгляд, это очень удобно и практично с точки зрения безопасности бизнеса — сервер всегда в руках бизнеса, любую доработку можно откатить, если все пошло совсем не так. Главное не забывать делать резервные копии баз данных.

    Пока я на самом начале своего образовательного процесса по GitLab, но мне уже нравится. Что особенно хорошо, на каждом этапе настройки даются необходимые для выполнения на сервере команды:

    Невероятно правильный подход. Получается, что порог входа в системы контроля версий значительно снижается. Все-таки нужно признать, что Mercurial изучить чуточку сложнее, во многом из-за страшного вида документации на десятки страниц, где для старта нужно всего 2-3 команды, как на скриншоте выше.

  • А ещё мы выгуливаем собак (Роберт Хайнлайн)

    А ещё мы выгуливаем собак (Роберт Хайнлайн)

    Как обычно, совершенно случайно наткнулся на жемчужину среди фантастики. Короткая история про бизнес неограниченных услуг в межпланетарном масштабе. 

    Рассказ хорош тем, что показывает невероятно хитрый подход к найму людей, которые нечувствительны к деньгам. Заинтриговал? Рекомендую прочитать. А ещё они выгуливают собак!

  • Круговые тренировки

    Круговые тренировки

    После того, как я достиг поставленной цели, взяв больше 100 килограмм во всех базовых упражнениях, я решил, что пора заняться выносливостью. Последние две тренировки были весьма продуктивны! Круговая тренировка — это серия упражнений без перерыва, от 3 до 6, в зависимости от интенсивности. 

    Например, одним из упражнений сегодня была следующая серия: жим 50 кг 20 раз, спина на кроссовере 20 раз и 20 отжиманий. В общем, акция «все по 20». И таких 4 подхода с минимальным отдыхом (конечно, под минимальным тут имеется ввиду попытка отдышаться и сбросить пульс хотя бы до 100). Очень продуктивно, думаю, завтра я ещё вспомню эту тренировку. 

    Моя тренировка начинается в 9, а до меня, в 8, занимается жена и сын:


    Всем спорта!

  • Скотный двор (Джордж Оруэлл)

    Скотный двор (Джордж Оруэлл)

    Удивительная книга, показывающая становление околокоммунистической системы взаимоотношений внутри послереволюционного скотного двора. Насколько точно Оруэлл описывает все этапы становления культа личности, неравного равноправия коммунистического и не только общества. После 1984, конечно, знаешь, что ожидать от автора, но все равно восхищаюсь. Рекомендую прочитать.

  • Мы вам перезвоним

    Мы вам перезвоним

    Мы вам перезвоним

    Так говорят ваши будущие потерянные клиенты. И не перезванивают. Единственный способ заставить их перезвонить — звонить самостоятельно. На каждую сделку всегда должна быть открытая задача с определенным сроком «Связаться с клиентом». Конечно, сделать это просто и быстро можно только в CRM. На примере своего бизнеса я убедился, что это работает с невероятной эффективностью. Мы получили ощутимый рост продаж и значительную вовлеченность клиента в процесс, ведь мы не просто перезванивали, мы точно знали все предыдущие договоренности, под рукой были все письма и звонки прошлых периодов. Очень жаль, что так серьезно мы взялись за внедрение CRM только сейчас.

  • Продавец обуви (Фил Найт)

    Продавец обуви (Фил Найт)

    Прямо сейчас читаю автобиографию Фила Найта, основателя Найк. Вот это действительно интересная книга! Читается, скорее, как приключенческий детектив, где молодой парень исполняет свою мечту, попутно расследуя, а что это вообще за мечта. 


    Не оторваться, очень интересно. Думаю, завтра уже дочитаю. Рекомендую авансом!

    Отдельное спасибо Издательству ЭКСМО за предоставленный на рецензию экземпляр. 

  • Маркетинг Дракулы (Игорь Козуля)

    Маркетинг Дракулы (Игорь Козуля)

    Благодаря издательству Эксмо, приславшему мне несколько книг на рецензию, я познакомился с Маркетингом Дракулы. Сразу должен предупредить — книга совсем не про маркетинг. Почти все бизнес-примеры в ней довольно слабые. Я бы сказал, что книга ориентирована на общее развитие и понимание, какими страхами обладает современное общество. 


    А вот делать выводы из этих фобий лучше самому читателю. На самом деле, при остром уме, находишь как минимум 10 идей в книге, которые могут пригодиться в своём реальном бизнесе. 


    Вот конкретно этот пример от Ричарда Брэнсона я считаю довольно вдохновляющим. А понятие Фиофобия считаю забавным для русского уха. 


    Или вот это, даже писать неловко:


    Время прочтения 1,5 часа. 

  • Визы в Латвию

    Визы в Латвию

    Сегодня наша семья получила визы в Латвию, впервые в составе трех человек! А значит очень скоро мы поедем в автомобильное путешествие и будем добавлять в инстаграмы красивые счастливые фото.

    Мы в Риге уже бывали, очень красивый старый город, много вывесок со всех времен и на всех языках:

    Приятно посмотреть! У нас такое мало где сохранилось:

    Конечно, место съемок Шерлока Холмса:

    В общем, очень рад, что мы еще раз посетим Балтику, там очень красиво. И весело!

  • Семейный календарь

    Семейный календарь

    Супруги довольно сильно зависят от расписания друг друга. Любое мероприятие, будь то посещения каких-нибудь косметических салонов для жены, тренировок для детей или запись на ТО машины для мужа — все эти события взаимосвязаны, так как все члены семьи задействованы, и, назначая новое событие, надо быть уверенным, что в этот момент ты не поедешь в спорт-зал или бассейн с сыном.

    Мы с женой нашли отличное решение этой проблемы — мы используем общий календарь в iCloud на маке, айфоне и, что самое удобное, на часах. В повседневной жизни я привык смотреть на часы, чтобы вспомнить, что там еще сегодня со мной произойдет. Когда дело доходит до записи нового события, я сразу вижу, что в это время я занят или свободен. Или вообще смогу что-то по пути сделать. А когда я за рулем, говорю по громкой связи и договариваюсь о какой-то встрече, жена тут же проверяет, свободно ли время и добавляет событие у себя в телефоне. И оно приходит во все удобные для нас места! Вот пример из жизни, где представлены только общие для нас события:

    Это очень удобный трюк в семейной жизни. Рекомендую.