Обсуждение:Ruby
Для затравки: 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]), чтобы была возможность дальнейшего чтения и углубления в тему?
Дружная команда рубистов из Днепра
Стоит добавить, ИМХО. Только не знаю первоисточника.