Archive for апреля, 2011

Борьба с ленью

апреля 30, 2011  |  Published in Новости

rubyЧто-то в последнее время я разленился, ну ничего, собравшись с силами буду увеличивать свою производительность касательно блога, не смотря на приближающуюся сессию и кучу долгов =)

Мною уже отмечалось то, что будут опубликованы 2 больших, статьи — введения в работу с MongoDB и Mongoid, и работу с Git. Работу над ними я пока не начинал, однако то, что они будут написаны — это факт. Осталось завершить цикл статей по написанию блога, хоть они и являются частью RubyDev Rails 3 Tutorial, я их выделяю в отдельный подраздел. Ждите также других статей из цикла RubyDev Rails 3 Tutorial, которые будут представлены в виде решения определенной задачи и знакомства с функциональными единицами Rails: контроллерами, моделями, роутингом, представлениями, хэлперами…

В последнее время захотелось изучить Vim, все говорят, что его использование очень ускоряет работу, чтож, посмотрим. Думаю, если знакомство с Vim мне принесет удовольствие, то выйдет статья или цикл статей о работе в среде Vim.

Также, как выуже заметили, на RubyDev начинают появляться статьи по JavaScript, в планах статьи по JQuery и другим полезным библиотекам, как например библиотеки для построения графиков и диаграм. В общем, не server-side единым =)

Tags:

Новости блога и Скринкасты

апреля 25, 2011  |  Published in Новости

А скажитrubyе мне пожалуйста, нравятся ли вам скринкасты по программированию?
Может и мне стоит заняться созданием скринкастов? Голос у меня конечно не дикторский, но, надеюсь терпимый. Так что, стоит попробовать?

По поводу RubyDev Rails 3 Tutorial:

Уже было несколько жалоб на тему того, что статьи написаны непонятно. И в правду, несколько сумбурно, да и Rails с Git и RSpec смешивать — не самая хорошая идея. Думаю стоит довести до конца разраатываемый блог и обозначить написанные статьи «мертвой бета-версией» и запустить новый цикл в рамках того же RubyDev Rails 3 Tutorial. В новом цикле планируется следущий вариант изложения информации:

Проблема -> Решение, например:

Как работать с контроллерами? -> Основы работы с контроллерами?
Как создать многоуровневую систему комментирования? -> Статья о создании ресурса Posts c вложенным ресурсом Comments и реализацией многоуровневых комментариев к Posts.
Как добавить Ajax в приложение на Rails 3? -> Статья об Ajax’сификации приложения.

Что думаете?

По поводу разрабатываемого в контексте RubyDev Rails 3 Tutorial блога:

После доведения его до более-менее законченого вида, написание статей по его разработке в контексте RubyDev Rails 3 Tutorial закончится. Блог будет представлять собой не просто тренировочное приложение, а реально работающий проект, кстати, на разрабатываемый движок я собираюсь перенести RubyDev, а то как-то не красиво когда блог посвященный разработке на Rails работает на платформе WordPress, который на писан на сами знаете чем. По ходу расширения функционала блога, будут выходить новые статьи, но уже в контексте другого цикла статей посвященных в первую очередь тем новичкам в разработке на Rails, которые хотят поддержать разработку нового движка блога на Rails и сделать посильный вклад в развитие, то есть вступить в маленькое сообщество разработчиков.

Tags:

ActiveRecord в Rails 3.1 будет снабжен Identity Map

апреля 23, 2011  |  Published in Ruby on Rails, Ruby on Rails 3

Если вы являетесь разработчиком на платформе Rails, то вы, должно быть, знакомы с кэшированием запросов в Active Record. Кэширование запросов — очень полезная составляющая Active Record, которая сокращает ненужные SQL запросы и предоставляет значительное увеличение производительности, особенно при обращении к ассоциациям. Поблема с кэшированием запросов, однако, возникает тогда, когда при получении двух идентичных записей из базы данных, мы получаем два объекта в оперативной памяти.

user1 = User.find(1) # => #<User id: 1, name: "Josh">
user2 = User.find(1) # => #<User id: 1, name: "Josh">

user1 == user2 # => true, b/c AR::Base recognizes that
# они имеют одинаковый первичный ключ

user1.object_id == user2.object_id # => false, b/c these are two
# но являются двумя разными объектами

Read the rest of this entry »

Tags: ,

Изучаем JavaScript при помощи иллюстраций

апреля 23, 2011  |  Published in JavaScript

Один из секретов отличного JavaScript разработчика — это ясное понимание семантики языка JavaScript. Эта статья расскажет вам об основных элементарных частях языка JavaScript используя простые для понимания иллюстрации того, как работают программы написанные на JavaScript. Read the rest of this entry »

Tags:

Динамические свойства в Ruby

апреля 16, 2011  |  Published in Ruby, Основы

rubyЯ работал над приложением написанным на Rails 3, в котором пользователи могли объявлять собственные свойства экземпляра модели, которые могли им понадобится. Проблема тогда состояла в том, как динамически создавать свойства объекта?
Read the rest of this entry »

Tags: , ,

Новости блога RubyDev

апреля 14, 2011  |  Published in Новости

Проекты RubyDev Ruby Tutorial и RubyDev Rails 3 Tutorial будут в ближайшее время приоритетным направлением развития блога.

Цикл статей о Git прекращен, обещанное продолжение с информацией о работе с удаленным репозиторием и GitHub можно найти во второй главе из раздела RubyDev Rails 3 Tutorial. Вместо цикла статей выйдет один большой пост описывающий все аспекты работы с Git и этот пост будет иметь версионный характер, то есть будет постоянно дорабатываться и усовершенствоваться.

Перевод документации по Mongoid прекращен. Вместо перевода статей будет написан один большой пост описывающий все аспекты работы с Mongoid, он также будет иметь версионный характер.

Публикация стетей об английском к сожалению не так интенсивна, как хотелось бы, дело, как всегда, в нехватке времени.

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

Tags:

RDR3T > Ассоциации и отношения между моделями. Валидация.

апреля 14, 2011  |  Published in Ruby on Rails, Ruby on Rails 3

Я немного изменил планы и в этой статье не будет рассматриваться работа с RSpec, зато написанию спецификаций будет посвящена целая отдельная статья.

Итак, у нас имеется модель User, которая представляет собой пользователя нашего приложения. В данной статье мы создадим модель Post и контроллер PostsController, которые позволят нам ввести в приложение новую сущность и новый ресурс Post. Post представляет собой публикацию в блоге.

Поскольку любая публикация в блоге должна публиковаться от имени определенного пользователя, то нам необходимо определить связь (ассоциацию) между двумя моделями. Поскольку пользователь может иметь несколько публикаций, а публикация только одного автора, то нам следует установить отношение между моделями: User имеет много Post‘ов. Но прежде, давайте создадим модель и контроллер для работы с постами, а для этого создадим специальную ветку в нашем проекте и будем работать в ней:

$ git branch posts

Теперь если вы воспользуетесь командой, то увидите следущий ответ:

$ git branch
* master
posts

Звездочкой отмечена текущая ветка, для переключения на ветку posts следует воспользоваться командой:

$ git checkout posts
Switched to branch ‘posts’

Вы также могли бы создать ветку сразу из git checkout:

$ git checkout -b posts

Теперь, когда ветка posts создана и мы на нее переключились, мы можем заняться разработкой модели, контролера и представлений поста. В прошлой статье я обещал рассказать вам как создавать модели, контроллеры и другие компоненты приложения при помощи других встроенных в Rails генераторов, кроме scaffold. Сразу скажу, что в данной статье мы будем использовать стандартный генератор scaffold так как код генерируемый им нам весьма подходит, хотя код контроллера мы слегка упростим, чтобы он был идентичен коду из контроллера UsersController.

Для отдельной генерации моделей, контроллеров и так далее следует использовать команды:

rails g controller Posts
rails g model Post title:string text:text user_id:integer
rails g migration create_posts
Read the rest of this entry »

Tags: , ,

RubyDev Ruby Tutorial #5 > Методы и процедуры в Ruby

апреля 13, 2011  |  Published in Ruby, Основы

Что есть метод и что есть процедура?
Метод — это определенное действие объекта.
Процедура — это просто действие не привязанное к объектам.

Методы свойственны только объектно-ориентированному программированию, а поцедуры функциональному.

Ruby является объектно-ориентированным языком программирования однако имеет в своем арсенале процедуры и лямбда-функции, которые являются объектами класса Proc.

Зачем необходимы процедуры
Без процедур в Ruby можно отлично обходиться, однако Ruby — язык широких возможностей и предоставляет вам множество способов реализовать один и тот же функционал.

Метод является частью объекта, и метод представляет действие объекта, однако иногда необхоимо просто выполнить определенное действие. В таком случае лучше и удобнее создать процедуру, чем определять класс и метод в нем. Еще одним важным преимуществом и полезной возможностью процедур является то, что они являются объектами, а значит могут присваиваться переменным.
Read the rest of this entry »

Tags: ,

Конференция Rails Club в Москве 30 апреля

апреля 6, 2011  |  Published in Новости

Блог растет и развивается и начинает представлять собой реальное средство связи с общественностью, которое замечаемо многими Ruby / Rails программистами и теми, кто только пытается изучить данные технологии разработки ПО. По сему ко мне обратились с просьбой сообщить читателям RubyDev о предстоящей конференции посвященной разработке на Rails и сопутствующих технологиях, от чего я не смог отказаться.

Конференция носит название и будет проходить 30 апреля в Москве, в центре . Для людей испытывающих проблемы с финансами есть особенно приятная новость: участие в конференции абсолютно бесплатно, единственное, что вам необходимо — это заранее . Список всех участников конференции на момент написания статьи составляет 196 человек, вы можете ознакомиться с ним по . К сожалению, меня вы там не найдете по причине того, что у меня нет возможности прибыть в Москву, однако  мысленно я буду с вами потому, что будет обеспечена online трансляция конференции на сайте того же .

Любители не только послушать,но и поговорить имеют возможность выступить с собственным докладом, какой-то жесткой привязки к тематике нет, единственное требование — ваш доклад должен быть связан с Ruby или фреймворком Rails, сопутствующими технологиями и процессами непосредственно самой разработки приложения. Актуальный список докладов можно найти .

Особенно приятно, что ребята из RailsClub потрудились над сайтом конференции, он выглядит действительно шикарно, спасибо за старания!

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

как источник свежих новостей.

RubyDev Ruby Tutorial #4 > Структуры в Ruby: экземпляры Struct

апреля 3, 2011  |  Published in Ruby, Основы

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

Класс:

сlass Student
  def initialize(name, last_name, course)
    @name = name
    @last_name = last_name
    @course = course
  end

  attr_accessor :name, :last_name, :course
end

… можно легко заменить следущим объектом типа Struct:

student = Struct.new('Student', :name, :last_name, :course)

Read the rest of this entry »

Tags: ,