Обсуждение:Ruby

Материал из Lurkmore
Перейти к навигации Перейти к поиску

Для затравки: http://habrastorage.org/storage2/5be/b34/7d9/5beb347d93ef232cb03329739487d055.jpg


Можно рассказать что Руби это как ПЕРЛ но только для детей, хотя кто знает. Еще сказать что язык хипстерский и на него переходят все пэхапэшеры, кого заебало, что ПХП не воспринимают всерьез. Ну офк расскзать про Рельсы. Рассказать про драму Руби вс Питон, желательно с примерами где джанга сосет хуйцы. Больше рассказывать нечего ибо кроме Рельсов никакого интереса не представяет, ну разве что большинство гемов не тестируются под вендой и юный анон нехило так откладывает крипичей в попытках заставить заработать и Рельсы и Руби. Анон готов написать статью если она кому-то будет нужна.

пейши, Антон, лишним не будет


Какой прелестный переусложненный синглетончик на Яве. Так, не зная темы, посмотришь -- и правда кажется, что Жаба унылая громоздкая херня, на которой для одного синглетона надо хренячить три класса. Чего уж там, давайте отдельный класс для каждой функции делать, и ныть, что все убого и тормозит :3

Автор, учи rусский, блять! Так писать должно быть стыдно. Вырвиглазное чтиво и хуета!

У меня roommate сейчас с рельсами работает. Хотя сам я слабо понимаю разницу между питоном и руби. Знаю только, что дропбокс и твиттер написаны на питоне, а про руби/рельсы не знаю ничего. Какие более-менее известные проекты реализованы на нем?

тащемта, twitter был написан на рельсах, потом его начали переписывать на скалу.
> Какие более-менее известные проекты реализованы на нем?
помимо жидхаба из "более-менее" известных - travis-ci, redmine, discourse, gitlab.

Отдельным параграфом следует написать про фанатов Ruby которые по уровню упоротости забарывают даже лисперов и связанный с этим стёб, типа: "Ruby programmers consider themselves superior to everybody, but are not aware of the existence of non-web languages".

Что неплохо было бы запилить

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

Синглетоны

В примерах include Singleton - это подключение модуля (module) к классу. Модули используются для того, чтобы подрубать в разные классы (и даже другие модули) один и тот же код, избегая таким образом его дублирования (при этом фактически код никуда не копируется в момент исполнения). А то, что называется Добавление методов к существующему объекту - это singleton method. A method given only to a single object is called a singleton method. Фактически, класс - отдельный объект и мы подрубаем к нему набор методов из модуля, но про синглетоны в этом случае никто не говорит, если это не методы класса (MyClass.singleton_method). Но тогда нужно писать extend а не include. Кстати, для динамического объявления методов класса есть define_singleton_method.

Чёрная магия

Чёрная не чёрная, но сложение чисел от 1 до 3: (1..3).inject(:+)

Ну или таблица умножения (матрица n x n) [*1..n].product([*1..n]).map { |arr| arr.reduce(:*) }.each_slice(n).to_a

ты о чём ? — 20:16, 11 июля 2016 (MSK)
Двумя разделами выше: нужны примеры кода с откровенной черной магией, как однострочники на перле или шаблоны крестов
По запросу ruby one liners можно надыбать много чего ещё, мне пришло в голову это

Шутейки

1) Если ruby-программист делает софтину под линукс, она будет работать только на стейджинге.

2) Если ruby-программист делает инсталлер для этой софтины, она не будет работать даже на стейджинге, если рядом с ней стоит хоть один посторонний ruby-пакет.

3) Если ruby-программист делает инсталлер для этой софтины, то рано или поздно он добавит в репозиторий shell-скрипт для установки инсталлера.

4) Если ruby-программист включает в инсталлер своей софтины любой virtualenv, перед тестированием он обязательно удалит со стейджинга все посторонние ruby-пакеты. Иначе, начиная с пункта 2 ни один тест на стейджинге не пройдет.

5) В зависимости от положения планет у софтины ruby-программиста неожиданно отвалится, например, веб-интерфейс.

6) Разница в конфигах между стейджингом и сервером потребителя — она либо есть, либо ее нет. Если она есть, для того, чтобы запустить софтину у клиента, потребуется ruby-программист.

7) Если ruby-программист использует message query, он не включит его в инсталлер. Даже в инсталлер инсталлера из пункта 3 он вряд ли попадет.

8) Если ruby-программист пишет веб-морду для мониторинга, он не добавит в нее текущее состояние сервисов.

9) Ruby-программист не делает ошибок, поэтому он их не обрабатывает. Любой чих компонентов выводит в консоль весь стектрейс.

10) Ruby-программист будет хранить настройки в json. Особенно, если пишет программу для linux и использует каталог /etc.

11) Ruby-программисты пиздят палками своего сисадмина, чтобы он не пользовался зависимостями при создании deb-пакетов.

12) Ruby-программисты пиздят палками своего сисадмина, чтобы он не обновлял репозиторий.

13) Ruby-программисты пиздят палками своего сисадмина, чтобы распространять свою софтину пакетами .bundle

Ядра и треды

Доброе утро, Руби давным-давно умеет в нормальные треды и использование всех доступных ядер, примерно с версии 1.9

Руби-то умеет в нормальные нативные треды, вот только в один момент времени работает только один тред, а остальные спят, толку от таких тредов мало, только если там долгое IO типо чтения или записи чего-то тяжелого [1]

В 3.0 завезли Ractor'ы, и теперь действительно есть параллелизм из коробки

Ссылки

Стоит ли добавить ссылок на различные статьи и гайды ([2]), чтобы была возможность дальнейшего чтения и углубления в тему?

Дружная команда рубистов из Днепра

Стоит добавить, ИМХО. Только не знаю первоисточника.