Оглавление:
Видео: 27 ШИКАРНЫХ ПОДЕЛОК, КОТОРЫЕ ЗАЙМУТ МЕНЬШЕ 5 МИНУТ 2024
Ruby - язык объектно-ориентированного программирования (OOP). Все в Ruby - это объект, который содержит некоторые данные и некоторый код, который дает поведение объекта. Вы можете думать о объектах как о существительных предложения; подумайте о поведении, называемом методами, как глаголы объекта. При создании ваших собственных объектов есть несколько хороших общих практик, которые следует иметь в виду.
Хорошо делайте
Когда вы планируете свою программу, подумайте обо всех объектах, которые необходимы и как они могут взаимодействовать. Например, если вы делаете карточную игру, у вас могут быть отдельные игровые карты, колода, в которой хранятся карты, сама игра, которая знает правила игры и игроков, которые играют в игру.
Заманчиво сворачивать весь ваш код в один большой кусок кода, но когда вы достигаете определенного размера, этот подход очень трудно изменить, исправить или повторно использовать в других проектах.
Вместо этого держите объекты сосредоточенными на выполнении одной работы.
Держите его простым
В Ruby вы определяете данные и поведение ваших объектов в классе . Класс похож на шаблон, из которого вы можете создать один или несколько объектов. Класс содержит код, создавший поведение, называемый методами . Класс также может содержать данные, необходимые для работы объекта, такие как номинал игровой карты.
Когда вы пишете свой код для класса, гораздо лучше писать небольшие методы, чем более крупные. Каждый небольшой метод может использоваться в сочетании с другими для создания более сложного поведения.
Сохраняя методы меньше, легче тестировать каждый метод изолированно. При отслеживании ошибок часто проще сортировать меньшее количество строк кода.
Другим способом упростить ваш код является хорошее использование встроенных объектов Ruby и их методов. Ruby имеет очень богатый набор встроенных возможностей. Вы сэкономите время, используя эти методы.
Скрыть ваши данные
Один из способов, с помощью которого объекты становятся трудно повторно использовать или отлаживать, когда объекты «разделяют слишком много информации. «Если у вашего объекта много данных, но все они подвержены внешней стороне, трудно изменить способ работы с этими данными, не нарушая других объектов, которые зависят от него.
Ruby предоставляет несколько способов скрыть данные вашего объекта. Вы можете написать свои собственные методы, которые предоставляют «getters» и «settings» для управления данными. Вы также можете использовать методы attr_accessor Ruby, которые создают для вас код getter и setter.
Оба метода дают вам слой между внешним миром и кодом и данными вашего объекта.Если вам необходимо внести изменения, вы можете изменить реализации своих объектов, сохраняя при этом свои интерфейсы, поэтому другим программистам, которые используют ваш код, не нужно изменять их собственные.
Следуйте соглашениям Ruby
Ruby имеет ряд соглашений об именах, которые ожидаются при написании кода Ruby. Если вы будете следовать этим стандартным методам, вы значительно упростите свой код для других программистов.
Вы всегда должны ставить только один класс в файл, называть класс, начинающийся с большой буквы, и использовать заглавные буквы между несколькими именами работ (CardGame). Файлы, которые хранят ваш класс, называются во всех строчных строках, используя «змеиный случай» (card_game. Rb). Ruby сам ожидает этого.
Константы обычно все UPPER_SNAKE_CASE, а локальные переменные и экземпляры, а также имена методов - это @lower_snake_case (без @ для локальных переменных и имен методов).
Ruby не требует всех дополнительных символов, которые делают некоторые другие языки, поэтому вы заметите отсутствие разных круглых скобок, точек с запятой и других ненужных знаков препинания. Хотя вы можете использовать их, если хотите, не используйте их, если они не добавляют к понятности вашего кода.
Однако, и это большой, если вы в конечном итоге работаете в чужом коде, следуйте ее соглашениям в первую очередь.
Подход Ruby - это рекомендация, а не всегда требование. Сделайте то, что вам нравится, и наслаждайтесь написанием кода!