Как этот C и PHP программист могут изучить Ruby и направляющие? [закрытый]

5
задан Winston 11 March 2010 в 10:07
поделиться

9 ответов

Вы сказали, что читаете книги, поэтому, вероятно, вам нужно следующее:

Читайте меньше, пишите больше .

Я тоже из Си, и многие концепции рубина были для меня совершенно чужды, и я до сих пор не понимаю их всех. Но вместо того, чтобы просто читать, я решил писать, и теперь у меня мало программ / скриптов и веб-страниц (даже довольно больших), и я очень люблю Ruby. Когда вы напишете, вы начнете «чувствовать» все эти концепции. Используйте irb , чтобы проверить, что вы читаете из книг. Напишите несколько методов с блоками, даже если вы их не понимаете, и поиграйте с ними.

6
ответ дан 18 December 2019 в 08:27
поделиться

Чтобы понять Ruby и Rails, вы можете предпринять несколько шагов, например:

  • Прочтите Руководства по Rails , которые хорошо документированы и охватывают основы и детали архитектуры фреймворка. Поэкспериментируйте с включенными примерами.
  • Имейте под рукой документацию Rails Framework , которая также включает много информации в частях readme или заголовках многих страниц.Функция find вашего браузера станет вашим помощником при навигации по всей информации, хранящейся в документации. Это также можно дополнить изучением того, как использовать команду gem server для запуска документации на вашей локальной рабочей станции.
  • Имейте руководство по языку Ruby API (ядро и библиотека)

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

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

  • Прочтите руководство Programming Ruby , чтобы узнать основы языка, используемого для написания фреймворка Rails.
  • Прочтите Agile Web Development , который не только дает вам представление о структуре, но и проводит вас через процесс создания приложения с использованием очень гибкого подхода.
  • Взгляните на Advanced Rails Recipes , которые затем расширят ваши знания.
  • Изучите инструменты, входящие в состав фреймворка, такие как console , rake , gems и расширения
  • Наконец найдите небольшой проект , может быть, что-нибудь на GitHub, чтобы вы могли просмотреть код.Это должно быть приложение, не слишком большое, чтобы не зацикливаться на деталях, но достаточного размера, чтобы вы могли видеть, как все части работают вместе.

Надеюсь, что это поможет.

3
ответ дан 18 December 2019 в 08:27
поделиться

Вам действительно стоит прочитать приличную книгу по Ruby. Лучшая книга, которая также считается справочником в сообществе Ruby, - это книга PickAxe: http://www.pragprog.com/titles/ruby3/programming-ruby-1-9

Это третье издание Programming Ruby, охватывающее Ruby 1.9. Второе издание книги посвящено Ruby 1.8. Первое издание охватывает Ruby 1.6. Первое издание находится в свободном доступе в Интернете по адресу: http://www.ruby-doc.org/docs/ProgrammingRuby/

Чтение такой книги научит вас основам. Возможно, многое из того, что вы уже знаете, но поскольку вы задаете такие базовые вопросы, как: переменная (то, что начинается с «:», является буквальным, а не переменной) и @variable, я настоятельно рекомендую вам прочитать книгу.

1
ответ дан 18 December 2019 в 08:27
поделиться

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

  1. Освойте [основные] концепции объектно-ориентированного программирования .
  2. Освойте [основные] концепции и синтаксис Ruby . На этом этапе даже не беспокойтесь о Rails.
  3. Освойте [основные] концепции архитектуры Модель – Представление – Контроллер (MVC) .
  4. ( Необязательно ) Создайте что-нибудь, используя инфраструктуру MVC для PHP (например, cakePHP или CodeIgniter ). Таким образом, вы увидите концепции MVC в действии на уже знакомом вам языке.
  5. Рельсы время! Существует множество книг, руководств, учебных пособий, подкастов и скринкастов о Rails, как бесплатных, так и платных. Найдите рекомендуемый ресурс вашего любимого типа и используйте его для изучения Rails.

Кстати, я лично не думаю, что Rails легко изучить (что в любом случае является субъективным вопросом). ИМХО, это требует значительного обучения, но как только вы преодолеете это, вы вполне можете почувствовать себя более продуктивным в веб-разработке. То есть вы можете найти Rails простым в использовании .

Некоторые общие советы:

  • Одного чтения недостаточно, чтобы по-настоящему овладеть языком программирования / фреймворком. Вы должны написать код ... много кода. Не следует просто следовать примеру применения вашего учебного ресурса по своему выбору.Посмотрите на Project Euler и похожие веб-сайты, чтобы узнать о других и, возможно, более интересных задачах.
  • irb - ваш друг. Используйте его как можно чаще.
  • Если вы не можете что-то понять, ищите. Если вы все еще не можете понять это, задайте вопрос на сайте Stack Overflow или Ruby Forum . Просто сделайте свой вопрос конкретным.
  • Обучение требует времени. Не расстраивайтесь и не расслабляйтесь.
1
ответ дан 18 December 2019 в 08:27
поделиться

В дополнение к другим ответам, данным до сих пор, вы, возможно, захотите изучить основы объектно-ориентированного программирования. Концепция "переменных экземпляра" очень важна в языке (например, Ruby), где все является объектом.

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

Википедия - неплохое место для начала; статьи объектно-ориентированное программирование и первоклассные функции введут эти понятия.

3
ответ дан 18 December 2019 в 08:27
поделиться

Может быть, вам стоит разбить некоторые из конкретных проблем на вопросы?

Например:

@variables являются переменными экземпляра объекта - значения являются локальными для конкретных экземпляров объекта и, следовательно, доступны из всех методов.

1
ответ дан 18 December 2019 в 08:27
поделиться
  1. Не пытайтесь изучать Rails, попробуйте сначала изучить Ruby.
  2. В PHP или C нет блоков, но я собираюсь здесь немного пояснить:

    Вы можете мыслить блоками, как функции без имени, т.е.

      my_array = [ 1,2] 
    my_array.each {| параметр | print (параметр)} 
    my_array.each do | параметр | 
    print (parameter) 
    end 
     
      массив #, каждый метод отправляет на каждой итерации параметр блоку, 
    в данном случае значение каждого элемента в массиве. 
     
    DEFinition of Array # each может быть: 
     
     
    def each (& block) 
    block.call (elem_of_the_array) 
     # блок поймает "elem_of_the_array" как аргумент "параметр" 
    end 
     
    в PHP, вы можете написать этот блок как функцию следующим образом:
     
    function name_less_function (parameter) {
    print (parameter); 
    } {{1} } 

    реальная концепция блоков - это процессы, исследуйте их.

  3. Изучите объектно-ориентированное программирование, возможно, этот пост вам поможет => http://raflabs.com/blogs/silence-is-foo/2009/12/13/the-ruby-object-model/

1
ответ дан 18 December 2019 в 08:27
поделиться

Прочтите эти книги, а если у вас возникнут проблемы с пониманием концепции, спросите индивидуально.

Язык программирования ruby: http://oreilly.com/catalog/9780596516178
Путь Ruby: http://rubyhacker.com/toc.html
Ruby для Rails: http://www.manning.com/black

Я отвечу на вопрос № 2, так как два других туманны и, вероятно, им понадобится несколько глав
vars: Ruby vs C ++

@var  similar to this->var 
@@var similar to SomeClass::var (static)
$var  similar to global in c

A: символ в ruby ​​- это уникальный числовой идентификатор, интерпретатор преобразует все символы в вашей программе в уникальные целые числа. Они полезны в качестве индексов (быстрее, чем строки и более читабельны, чем целые числа): hash [: user_name]

3
ответ дан 18 December 2019 в 08:27
поделиться

Как я могу узнать о блоках и как это может быть связано с концепциями из PHP / C?

Блоки можно рассматривать как лямбда-функции (как вы заметили, у вас есть Опыт Python), они в некотором роде анонимны.

@

Это локальная переменная экземпляра. Если бы вы использовали @@, вы получите переменную класса. Например, @@ number_of_all_created_classes и @my_var_that_is_for_this_instance_only

$

Это глобальная переменная.

:

А, меня за это будут кричать: это своего рода указатель. Оператор: позволяет использовать строковую ссылку для указания на объект.

«Волшебные концепции», такие как объявления записей на рельсах, что происходит за кулисами, когда я пишу has_one X

has_one, own_to и т. Д., Являются относительными функциями для перекрестных ссылок. Они не будут иметь отношения к C или PHP в этом отношении, но если вы выполнили серьезное программирование PHP / MySQL и выполнили какое-то сопоставление отношений, это возникнет. Возможно, вы захотите прочитать об ORM.

В настоящее время я читаю "Agile Web Development with Rails 2.0", и это здорово. Также руководство, написанное «Humble Little Ruby Book» мистера Соседства (доступно в Интернете) - это что-то быстрое и полезное для вас.

Я подумал, что отвечу на ваши вопросы более прямо.

0
ответ дан 18 December 2019 в 08:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: