RDR3T > Первая кровь: Структура приложения, первая модель и контроллер

марта 19, 2011  |  Published in Ruby on Rails, Ruby on Rails 3

В прошлой главе мы занимались тем, что создавали себе рабочую среду и создали свое первое приложение на Rails 3. В этой главе RubyDev Rails 3 Tutorial вы еще ближе познакомитесь со структурой приложения Rails, с Git и Bundler, а также создадите свою первую модель и контроллер и узнаете о том, что такое BDD и RSpec.

Прежде чем начать, давайте разберемся с некоторой терминологией: фреймворк Rails построен на основе нескольких принципах, которые очень важно знать любому программисту!

CoC (Convention over Configuration — Соглашение прежде конфигурации) — согласно этому принципу Rails содержит набор соглашений касательно структуры проекта, именования файлов и директорий, а также классов, модулей и так далее. Благодаря этому приложение на Rails избавляется от лишней настройки приложения, чем гораздо ускоряет разработку. Этот принцип вовсе не значит, что приложение на Rails не настраиваемо, Rails как раз таки один из самых гибких фреймворков для веб разработки. Этот принцип означает лишь, то, что мы избегаем лишней конфигурации и приближаемся к стандартизации.
Read the rest of this entry »

Tags: , , , , , , ,

RDR3T > Подготовка рабочего места

марта 7, 2011  |  Published in Ruby on Rails, Ruby on Rails 3

RubyDev Rails 3 Tutorial

Подготовка рабочего места

Created_at: 07.03.2011
Version: 0.1
Rails_version: 3.0.5
Ruby_version: 1.9.2

Данный учебник предполагает, что вы используете в качестве операционной системы Ubuntu Linux. Если вы используете другу операционную систему, например Windows, то я рекомендовал бы вам установить Ubuntu, через специальную утилиту wubi, или просто с диска, как вторую операционную систему. Дело в том, что Ruby и Rails заточены конкретно под работу на *nix системах, а поддержка платформы Windows — это бремя, которое несут на себе разработчики Ruby и Rails для популяризации платформы. Даже если вы являетесь большим поклонником Windows, то в скором времени после начала изучения Ruby и Rails вы поймете необходимость работы на другой операционной системе, например Ubuntu, так как в Windows могую появляться различные ошибки, кроме того Windows ораничивает вас в наборе используемых инструментов, например некоторые gem’ы не совместивы с Windows.

Прежде, чем приступить к изучению программированию веб приложений на Rails, вам необходимо организовать рабочее пространство на вашем компьютере. Вам потребуется система контроля версий Git, которая на данный момент является наиболее популярной среди Ruby / Rails программистов, менеджер версий Ruby — RVM, который позволит вам использовать сразу несколько версий Ruby, а также организовать для каждой версии несколько рабочих окружений со специфическим набором gem’ов (каждый такой набор (окружение) имеет официальное название — gemset), а также сам Ruby версии 1.9.2. Read the rest of this entry »

Tags: , , ,

ПРО GIT: Ветки (бранчи)

февраля 1, 2011  |  Published in Development Processes, Управление Версиями

Git logoЦикл статей ПРО GIT:
Введение
Ветки (бранчи)

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

1. Система Управления версиями (СУВ) — что это?

1.1. Прошлый опыт

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

Вспомните последний раз, когда вы работали в MS Word или Photoshop. Работая практически с любым редактором будь то текстовый, графический, музыкальный или видеоредактор вы всегда допускаете ошибки. Затем вы исправляете эти ошибки, а затем заметив, что ваши исправления неправильны, нажимаете «Undo», «Step back up» или как там оно у вас называется? Еще часто возникает необходимость отредактировать какой-либо текст или по заготовке отрисовать детальный дизайн сайта. Тогда, чтобы не портить заготовку, вы создаете ее копию и вносите изменения в одну из копий, а если что-то пошло не так, то вы либо используете те же «откаты», либо просто удаляете файл, создаете новую копию оставшегося оригинала и заново начинаете работать. Вам ведь все это знакомо, не так ли?
Если ваш ответ утвердителен, значит вы уже знакомы с системами управления версиями и ваше «знакомство» с ними подразумевает активное их использование!

1.2. Дадим определение понятию СУВ

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

GIT — это абсолютно обычная СУВ!

1.3. Разновидности СУВ

Существует как минимум 3 основных СУВ:

— Локальный
— Централизованные
— Распределенные

1.3.1. Локальные СУВ
Локальные СУВ должны быть знакомы начинающим программистам. Вы наверняка при работе с кодом, перед началом работы создаете копию рабочего каталога для того, чтобы если вы что-то напортачили, то у вас оставался тот прогресс на котором вы остановились в прошлый раз. Лично я делал так: Допустим у меня есть рабочая директория project в этой директории я создавал папку saves в которой хранились другие директории с именами версий 1, 2, 3 и т.д. и в каждой директории находились копии всех рабочий файлов с прогрессом на определенный момент времени. Я уверен, что многие делали подобным образом, возможно именовали категории не 1, 2, 3, а более логичным способом или еще что-то типа того. Все это можно назвать локальной СУВ каменного века! Существуют также специальные программы локальных СУВ, которые позволяют автоматизировать это копирование папок и файлов или использовать другой способ сохранения стадий развития проекта (версий).

Достоинства: Простота

Недостатки: Относительно небольшая область применения, опасность потери данных в случае если ваш компьютер поломался, или его у вас украли или все уничтожил вирус или …

1.3.2. Централизированные СУВ
Когда идет работа над большим проектом с окромным количеством папок, а в них в каждой огромное количество файлов, а в них в каждом огромное количество строк кода, то над таким проектом, как правило, работает несколько человек. Из необходимости организовать работу группы людей и были созданы централизированные СУВ (из тех, о которых я слышал это Subversion и CVS).

Представьте себе монарха восседающего на золотом троне да с золотой короной на златых власах… Представьте теперь сокровищницу с неисчислимыми богатствами. А теперь представьте, как верные вассалы подношают царю налоги собранные со своих крепостных да подарки, чтобы задобрить своего владыку. — Вот примерно таким образом организованы централизированные СУВ.

Есть монарх он же главный разработчик и есть вассалы — разработчики каждый из которых вносит какую-то свою определенную лепту. Сокровищница в данном случае это центральный репозиторий в который добавляются результаты работы участников процесса разработки какого-либо проекта (налоги).

Достоинства: Высокая степень организации процесса разработки, контроль основного (центрального) репозитория, широкая область применения.

Недостатки: Существует риск потерять данные если сервер на котором размещен центральный репозиторий поломается.

1.3.3. Распределенные СУВ
Представьте детскую группу в садике. У детей урок аппликации. У каждого ребенка свои ножницы, своя цветная бумага, клей, заляпанные клеем штаны и полное довольством за свою работу лицо. Дети заканчивают делать свои работы, воспитательница собирает их, выбирает самые хорошие и отправляет их, например, на городскую выставку детского творчества предварительно сделав всем детям альбомы с копиями работ. — Все это похоже на то, как работают распределенные СУВ.

При распределенных СУВ также имеется центральный (основной) репозиторий (воспитательница), но в этот раз центральный репозиторий является не единственным местом хранения версий проекта так как разработчики делают локальные копии центрального репозитория и теперь если один из компьютеров разработчиков или центральный сервер накроется, то потери будут совсем минимальными и работу можно будет достаточно быстро восстановить (альбомы с копиями аппликаций). Как вам, нравится такой подход?

Git относится именно к распределенным СУВ.

Достоинства: Безопасность данных, высокая степень организации процесса разработки, широкая область применения.

Недостатки: Незначительно увеличивается сложность процесса контроля версий.

1.3.4. История Git
Чисто как дань уважения пишу небольшой раздел об истории появления Git (честно говоря я никогда этот раздел в книгах не читаю).

Жил был на свете Антон Городецкий Линус Торвальдс и занимался он с 33 богатырями разработкой ни чего нибудь, а ядра Linux! Сами понимаете, операционные системы — это достаточно сложные программы для разработки которых без использования СУВ не обойтись. Так вот, поначалу худо-бедно богатыри вели контроль версий путем, на сколько я понимаю рабским, то есть, как я понял все это было весьма глупо, производилось вручную и было трудоемко. Затем, в 2002 году Линус Торвальдс и компания богатырей — разработчиков решили воспользоваться СУВ BitBeeper. Затем, по некоторым причинам личного характера разработчики ядра Linux решили отказаться от BitKeepera и Линус Торвальдс в порывах чувств и пребывая в необыкновенной силы порыве энтузиазма создал  Git. Read the rest of this entry »

Tags:

ПРО GIT: Введение

января 30, 2011  |  Published in Development Processes, Управление Версиями

Git logo

Цикл статей ПРО GIT:
Введение
Ветки (бранчи)

1. Что есть Git

Git — это мощная и популярная система контроля версий. Git отслеживает изменения в коде програм и позволяет откатывать изменения назад в случае, если они привели к каким-либо ошибкам. Кроме того Git позволяет заниматься разработкой кода коллективно, используя, например, удаленный общий репозиторий, и когда каждый разработчик создает собственную ветку в которой работает, пока не выполнит определенную работу, а затем подмешивает изменения к общему репозиторию. Ранее при разработке ПО разработчикам приходилось делать откаты назад, для этого создавалась копия папки с исходными кодами. Git делает эту работу за вас, но вместо тупого копирования, он делает «снимки» () по которым можно восстановить оригинальный код после того, как в нем были произведены нежелаемые изменения.

2. Установка Git

2.1 Зависимости Git

Для нормальной работы с Git у вас должны быть установлены следующие библиотеки: curl, openssl и zlib

2.2. Установка Git из исходников:
Для установки GIT из исходников на операционные системы семейства UNIX, вам следует для начала скачать исходники, распаковать архив и выполнить следующие команды в консоли для установки:

$ make prefix=/usr all

или

$ make prefix=/usr install

2.3. Установка Git на Linux

Для установки Git на Ubuntu следует просто выполнить в консоли команду:

$ apt-get install git-core

2.4. Установка Git на OS X
Чтобы установить Git на OS X следует в консоли выполнить следущую команду:

$ sudo port install git-core

2.5. Установка Git на Windows
Для установки Git на Windows просто скачайте установочные файлы (http://code.google.com/p/msysgit/downloads/list) и выполните из них установку.

Read the rest of this entry »

Tags: