Метка «ruby» - 20

imageДанный пост является ответом на пост "Почему люди выбирают PHP, или почему миллиарды мух могут ошибаться". Надеюсь, мне удастся развеять миф о несостоятельности платформ вроде Ruby и Python, который активно распространяется PHP разработчиками, причем разработчиками т.с. нижнего сословия, которые кроме PHP больше ничего не видали. Конкретно в данной статье я формате вопрос-ответ расскажу о том, почему Ruby и Rails — реальные игроки, почему они популярны и можете ли вы их использовать для построения собственного бизнеса в интернете.

Читать полностью »

А чтобы тестировать не отходя от кассы нужен фреймворк который внедряется в код
но никак не влияет на его работу.
Именно это делает Spine — позволяет писать тесты рядом с кодом никак не влияя на работу приложения.

Почему Spine?
Потому что «Specs Inline» и потому что(imho) для рационального ПО, тесты играют роль позвоночника.

Многим это статья может показаться повтором и они будут отчасти правы,
так как данная статья основана на пятой части знакомства с Presto.
А сам Spine вырос из и стал на замену PrestoTest фреймворка.

И зачем повторять то что уже написано?
Просто Spine существенно отличается от PrestoTest и соответственно данная статья тоже отличается от предыдущей, процентов на 80.
Да и представлять новый гем в пятой части знакомства с Presto как-то не корректно.

И да, статья не претендует на большие плюсы. Если вам данная методология не по вкусу,
минусовать не зачем, просто игнорируйте её и используете ваш любимый тест-фреймворк. Спасибо.

Мотивация:

  1. Визуальный контакт. Я хочу писать спецификации одновременно с кодом
    и чтобы они физически находились рядом, в том же файле или папке, но никак не в амбаре.
  2. Простые вещи должны остаться простыми.
    foo.should == bar никак не заменит foo == bar
  3. Я не хочу ни запоминать список синтетических заменителей простых вещей
    ни работать с документацией под рукой.
  4. Никаких хаков. Тестируемые объекты и базовые классы Ruby должны остаться в
    первоначальном состоянии.

Читать полностью »

На днях нужно было построить биндинги к библиотеке libftdi, которая обеспечивает взаимодействие с чипами FTDI, которые позволяют создавать различные USB-устройства.

Для создания биндингов я выбрал расширение FFI, которое позволяет загружать динамические библиотеки и строить биндинги к ним.

У FFI есть несколько достоинств, которые сыграли в его пользу:

  • Поддержка интерпретаторов MRI Ruby 1.9, MRI Ruby 1.8, JRuby, поддержка платформы Windows, ограниченная поддержка Rubinius;
  • Отсутствие необходимости компиляции биндингов;
  • Удобный язык описания биндингов.

Репозиторий биндингов для Ruby.Читать полностью »

Resque — ruby-библиотека для создания фоновых задач, составления очередей таких задач и их последующего выполнения. Задачи могут быть любым ruby-классом или модулем, содержащим метод perform. В ruby-сообществе Resque пришел на смену Delayed Job (не знаю, кстати, почему проект перестал развиваться, весьма удобная была вещь на мой взгляд) и обладает большим количеством различных преимуществ, таких как разделение задач по разным машинам, приоритеты задач, устойчивость к разным утечкам памяти и еще, и еще, и еще. На этом вступление для тех, кто не может самостоятельно перевести первый абзац из README прошу считать законченным.

В данной статье будет показано как использовать resque и resque-scheduler в rails-приложении.
Читать полностью »

О том, куда пристроить левое полушарие вашего ITmozg'а.

Left brain needed
Печатная реклама «Left Brain Right Brain, Einstein» принадлежит Shalmor Avnon Amichay/y&r Interactive Tel Aviv
Читать полностью »

Не так давно апологет ООП, автор «манифеста Agile», человек, сформулировавший принципы SOLID, Роберт Мартин сказал, что Ruby может умереть.

Роберт Мартин известен своими книгами (к примеру, выдающаяся «Rapid Software Development», которую я ставлю выше «Рефакторинга» Фаулера в личном top50 книг) и богатым вкладом в разработку ПО.

В одной из своих лекций он рассказывает о холиваре 70-80 годов прошлого века. В те годы smalltalker'еры противопоставляли себя C++ программистам, и не писали «быдлософт» (ERP, CMS). Потому что считали свой язык очень мощным и избранным.
Читать полностью »

После четырех лет разработки, 31 марта этого года по результатам голосования (пресс-релиз на японском) Ruby был принят как стандарт ISO/IEC 30170.

Стандарт имеет статус 60.00, что по классификации ISO означает «в публикации».
Читать полностью »

После четырех лет разработки, 31 марта этого года по результатам голосования (пресс-релиз на японском) был принят стандарт ISO/IEC 30170 на язык Ruby.

Стандарт имеет статус 60.00, что по классификации ISO означает «в публикации».
Читать полностью »

Добрый день.
Я около года работаю с Ruby и хотел бы написать о некоторых вещах, которых лично мне там часто не хватает, и которые я хотел бы видеть встроенными в язык. Пожалуй лишь пара из этих пунктов являются действительно серьезными недоработками, с остальными можно легко справиться подручными средствами.
Вроде бы недоработки и мелочь, но они ощутимо осложняют работу — приходится писать собственные библиотеки вспомогательных методов, которые и в гем не выделишь — уж больно маленькие, и без них некомфортно. А порой открываешь чужой код — и видишь там точно такие же вспомогательные функции как у тебя. Это как мне думается знак, что стандартная библиотека языка недоработана. Что же, будем надеяться, кто-нибудь из разработчиков прочтет текст и закоммитит патч. ;-)
Итак, начнем по порядку:

  • Перегрузка метода разными списками аргументов, как в C++
  • Отобразить хэш и получить из него другой хэш, а не массив
  • Преобразовать экземпляр класса в экземпляр его же собственного подкласса
  • Разные рюшечки

Читать полностью »

Начну с банального примечания — данная утилита является лишь дополнением к существующим тест фреймворком, а не их заменой.
И ничего особенного в ней нет, просто очень удобно работать.

Мотивация:

  1. Визуальный контакт. Я хочу чтобы спецификации физически находились рядом, в том же файле или папке, но никак не в амбаре.
  2. Умные браузеры. Когда я пишу спецификацию для определённого action-а, браузер должен определять адрес автоматически.
  3. Никаких хаков. Тестируемые объекты и базовые классы Ruby должны остаться в нетронутом состоянии.

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js