LINUX.ORG.RU

Rails 2.0 Preview Release


0

0

Выпущена ознакомительная версия Rails 2.0 - горячо любимого многими разработчиками Web-инструментария.

Изменениям подвергнуты практически все компоненты:

1. Изменения в поддержке RESTful Design

2. Изменения в поддержки различных форматов, соглашения в именовании шаблонов.

3. Сериализация в xml и json, добавлена поддержка десериализации.

4. Не самые популярные компоненты (acts_as_*, адаптеры MSSql и др.) вынесены в подключаемые модули, ActionWebService покинул основной пакет.

5. ActiveResource вышел из состояния beta и включен в стандартную поставку.

6. Увеличение производительности ActiveRecord

7. Еще много изменений и улучшений

До выхода версии 2.0 будет выпущена 1.2.4 с исправлениями ошибок в текущей ветке.

>>> Подробности



Проверено: maxcom ()

Ответ на: комментарий от iriyoox

>или теперь не модно спорить Руби вс ПХП вс Джанга

конечно не модно, все и так прекрасно знают что джанга/РоР руляд

KpoH
()
Ответ на: комментарий от Oceanborn

> Array.rand в ActiveSupport логичен и однозначен. Если какой-то идиот собрался прикручивать метод название которго не согласуется с логикой то это его сексуальные проблемы, не хотел бы к таким проектам прикасаться. Это должен быть уже не Array.rand а Array.rand_with_motherfucked_behaviour.

А теперь представим, на минутку, что какая-то библиотека, которая и понятия не имеет об ActiveSupport, реализует, например, свой метод to_xml для массивов? Как только мы попытаемся использовать её вместе с рельсами, мы начнём огребать суровые проблемы.

Всё-таки, пространства имён придумали не для того, чтоб на них покласть, и сваливать все расширения в одну кучу.

ero-sennin ★★
()
Ответ на: комментарий от anonymous

> Во втором случае желательно сверить это с тем же АктивСуппортом, нет ли перекрытия.

Как будто кроме ActiveSupport никому в голову не может придти расширять стандартные классы. И что теперь, перелопачивать весь rubyforge, прежде чем писать свой код? Зачем тогда вообще модули придумали, я не понимаю.

ero-sennin ★★
()
Ответ на: комментарий от anonymous

>> АктивСуппорт - набор прикольных фич.

> Уткнитесь со своим ПассивСтупором, в PHP это все было еще в девяностых. Глобально и надежно! Только так.

Блин, давно присматриваюсь к пэхапэ. Вот закончу проект на рельсах и обязательно сяду учить его.

anonymous
()
Ответ на: комментарий от Korwin

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

Можно поиграться с макросами method_alias.

В худшем случае никто не мешает залезть в код и изменить метод как душе угодно, либо вообще удалить его.

PartyZan ★★★
()
Ответ на: комментарий от KpoH

Я вот все спрашиваю, спрашиваю кодеров PHP: "Есть ли в php списки?" Почти каждый раз, от разных людей, слышу: А ЧТО ЭТО? . Беспрецендентно мощный язык, где нельзя перестроить/представить дерево, чего там:)

anonymous
()
Ответ на: комментарий от anonymous

> to ero-sennin: А ты попробуй расширить object на питоне

А чем, по-твоему, я занимаюсь каждый день? ;)

class Thing(object):
    def do_something(self):
        ...
    def do_something_good(self):
        ...

А monkey patching оставим красноглазым рубщикам.

ero-sennin ★★
()
Ответ на: комментарий от ero-sennin

> А теперь представим, на минутку, что какая-то библиотека, которая и понятия не имеет об ActiveSupport, реализует, например, свой метод to_xml для массивов? Как только мы попытаемся использовать её вместе с рельсами, мы начнём огребать суровые проблемы.

Вспоминаем про юнит-тестирование

PartyZan ★★★
()
Ответ на: комментарий от ero-sennin

> А monkey patching оставим красноглазым рубщикам.

Ты еще здесь? иди в топик про установку джанги...

anonymous
()

Зачем это нужно? Написали на каком-то песьем языке любительский фреймворк и хвалят. Там синтаксис даже на Си не похож - как на таком посмешище можно вообще писать??! Дилетанты! Доверять надо профессионалам - это и ребенку ясно. А разработчики PHP - Профессионалы с большой буквы, зарекомендовавшие себя за долгие годы работы над самым надежным, удобным и мощным языком программирования. Я доверяю профессионалам - и использую PHP.

anonymous
()
Ответ на: комментарий от PartyZan

> Можно поиграться
Поиграться это к Just'for'fun, пожалуйста

> В худшем случае никто не мешает залезть в код и изменить метод как душе угодно, либо вообще удалить его.
Ага. Вместо того, чтобы писать код собственного проекта мне предлагаю ковыряться в потрохах чушой библиотеки.
А как быть тогда с обновлением версии библиотеки? Ковырять каждую версию? Особенно если автор не захочет принимать патчи.

Вот так и прийдешь к выводу, что эту библиотеку юзать нельзя - будешь писать свою (велосипед и опять время расходуется в пустую).
А с переходом одной библиотеки на новую версию выясняется что она уже не подходит. Либо оставаться на старой (а если security hole), либо опять писать велосипеды.

Не. С такими подходами только Just'for'fun.

Korwin ★★★
()
Ответ на: комментарий от anonymous

> Блин, давно присматриваюсь к пэхапэ. Вот закончу проект на рельсах и обязательно сяду учить его.

Именно! Именно да! Глобально и надежно. Никак иначе.

anonymous
()
Ответ на: комментарий от PartyZan

> Вспоминаем про юнит-тестирование

Юнит-тестирование избавит меня от коллизии имён? Речь идёт о конфликтующих методах в двух сторонних библиотеках, патчить которые у меня нет желания.

ero-sennin ★★
()
Ответ на: комментарий от PartyZan

> Вспоминаем про юнит-тестирование

Ты не правильно пишешь. эро-сенину нужно сказать, иди поучи что такое юнит-тестинг.

anonymous
()
Ответ на: комментарий от ero-sennin

> Юнит-тестирование избавит меня от коллизии имён?

Тебя оно ни от чего не избавит, потому что ты даже не знаешь что это такое.

anonymous
()
Ответ на: комментарий от ero-sennin

> Юнит-тестирование избавит меня от коллизии имён? Речь идёт о конфликтующих методах в двух сторонних библиотеках, патчить которые у меня нет желания.

оно скажет тебе что такая проблема есть, а как ее решать это уж тебе решать, хочешь модули делай, хочешь код патчи, хочешь нормальные библиотеки используй

PartyZan ★★★
()
Ответ на: комментарий от PartyZan

> Вспоминаем про юнит-тестирование
UNIT-testing здесь не помощник. Профанация в данном случае.
юнит-тестирование не показывает что в приложении нет ошибок. Оно, всего лишь показывает, что нет ошибок о которых мы знаем или предполагаем.

Korwin ★★★
()
Ответ на: комментарий от PartyZan

> оно скажет тебе что такая проблема есть, а как ее решать это уж тебе решать, хочешь модули делай, хочешь код патчи, хочешь нормальные библиотеки используй

Модули сделать я не могу, потому что это сторонние библиотеки. Патчить — тоже не выход, потому что придётся потом тащить эти патчи из версии в версию. Выходит, система модулей в Руби дырява и непригодна для промышленного применения?

ero-sennin ★★
()
Ответ на: комментарий от PartyZan

> Т.е. возвращаемые значения на соответствие ожиданиям мы не проверяем?
Да проверяй конечно!

Korwin ★★★
()
Ответ на: комментарий от Korwin

> UNIT-testing здесь не помощник. Профанация в данном случае. юнит-тестирование не показывает что в приложении нет ошибок. Оно, всего лишь показывает, что нет ошибок о которых мы знаем или предполагаем.

Присоединись к еро-сенину. Он уже видно гуглит про юнит-тестинг.

1) Если где-то переопределится метод to_xml, правильно написанный тест, покажет, что ожидаемый результат, не совпадает с полученным.

2) Используй нормальные библиотеки. Нормальные не трогают базовые классы. АктивСуппорт - исключение. Это его назначение расширить базовые классы, поэтому никаких неожиданностей нет.

anonymous
()
Ответ на: комментарий от ero-sennin

> Выходит, система модулей в Руби дырява и непригодна для промышленного применения?

То что у тебя клиника давно понятно.

Задам другой вопрос. Положим у меня есть сторонняя питоновская библиотека. И есть метод do_something.

1) Можно ли в питоне переопределить этот метод? 2) Можно ли в питоне не только переопределить, но и в обновленном методе вызвать старый?

anonymous
()
Ответ на: комментарий от anonymous

> 1) Если где-то переопределится метод to_xml, правильно написанный тест, покажет, что ожидаемый результат, не совпадает с полученным.

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

anonymous
()
Ответ на: комментарий от anonymous

> 1) Можно ли в питоне переопределить этот метод? 2) Можно ли в питоне не только переопределить, но и в обновленном методе вызвать старый?

1) Да. 2) Да.

ero-sennin ★★
()
Ответ на: комментарий от PartyZan

> оно скажет тебе что такая проблема есть, а как ее решать это уж тебе решать, хочешь модули делай, хочешь код патчи, хочешь нормальные библиотеки используй

Правильно, лучше использовать нормальные библиотеки, которые если и расширяют стандартные классы, то только через наследование. А ещё лучше использовать нормальные языки, в которых не допускаются такие сомнительные штучки. В Руби и так хреново с модульностью, а тут ещё эта "фича", которую писатели библиотек так и норовят применить (потому что "прикольно").

Hjorn
()

Ух спасибо! Давно так не смеялся, особенно насчёт "Глобально и надёжно" =))))))

troorl ★★
()
Ответ на: комментарий от anonymous

>Нет! PHP это идеальный язык для быстрого написания масштабируемых, надежных и стабильных веб-приложений любой сложности. Четкий, прозрачный синтаксис, богатая и продуманная стандартная библиотека, беспрецендентно мощная поддержка ООП - все это оставляет конкурентов далеко позади, и делает PHP единственным истинно глоабльным и надежным решением.

Дружок, курить всякую дрянь, уткнувшись в статьи о PHP для домохозяек, вредно для мозга (если он еще наличествует, конечно) ;-)

anonymous
()
Ответ на: комментарий от Oceanborn

Может у программистов Ruby какая-то особенная интуиция, но метод Array.rand может возвращать, например, перемешанный массив. Или, например, Array.rand(n) возвращать n случайных элементов.

Так что, конфликты вполне возможны.

Davidov ★★★★
()
Ответ на: комментарий от anonymous

> Используй нормальные библиотеки. Нормальные не трогают базовые классы.

Так значит и сами рубисты признают, что трогать базовые классы - это зло? :)

Hjorn
()
Ответ на: комментарий от Hjorn

господа - ну вот объясните мне на пальцах - что такого можно сделать на руби, на питоне чего нельзя сделать на PHP?

anonymous
()
Ответ на: комментарий от anonymous

> господа - ну вот объясните мне на пальцах - что такого можно сделать на руби, на питоне чего нельзя сделать на PHP?

написать блог за 5 минут

anonymous
()
Ответ на: комментарий от anonymous

> написать блог за 5 минут

И не только блог :)

troorl ★★
()
Ответ на: комментарий от Hjorn

> А ещё лучше использовать нормальные языки, в которых не допускаются такие сомнительные штучки.

Про сомнительные штучки и нормальность языка говорит перлист?

> В Руби и так хреново с модульностью, а тут ещё эта "фича", которую писатели библиотек так и норовят применить (потому что "прикольно").

4.2

anonymous
()
Ответ на: комментарий от anonymous

> Ну вы, рубироиды, и тупые. Тест позволяет убедится, что метод правильно работает для заданного подмножества входных данных. На других данных могут быть ошибки. Все возможные варианты ты юнит-тестами не проверишь.

Это ты тупой. Читай класическую ТДД Кента Бека про триангуляцию.

anonymous
()
Ответ на: комментарий от anonymous

> Читай класическую ТДД Кента Бека про триангуляцию.

Не хочу.

anonymous
()
Ответ на: комментарий от ero-sennin

>> 1) Можно ли в питоне переопределить этот метод? 2) Можно ли в питоне >не только переопределить, но и в обновленном методе вызвать старый?

>1) Да. 2) Да.

Сделать это можно и на ассемблере, только вот сколько кода придется написать перед этим?

И вообще, если ты питоновец и тебе неинтересен руби - кыш с топика. Нехер развозить говно о том что питон the best of the best. У всех языков есть свои плюсы и минусы. Это относится и к питону, и к руби.

anonymous
()
Ответ на: комментарий от anonymous

> Сделать это можно и на ассемблере, только вот сколько кода придется написать перед этим?

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

ero-sennin ★★
()
Ответ на: комментарий от ero-sennin

> Я уже постил пример. Кода нужно написать ровно столько, чтобы было понятно, что это не куль фича, а грязный хак, которым не стоит злоупотреблять.

Ты уже раз обломался. Но тебе все равно не доходит.

Это не грязный хак, а возможность языка. В питоне ее нет. Поэтому твои руки дрожат лишь об одной мысли изменить базовый класс.

Но тебе не в домек, что кроме ограниченного и убогонького питона созданого чтобы калики не сделали чего-то лишнего(туда же и Ява относится), есть языки где программисту дается свобода.

Тебе уже говорили про юнит-тестинг. Ну ты же про гугл не знаешь, и читаешь очень медленно. Иначе ты бы нашел, что Руби и Юнит тестинг идут от Смаллтолка(оттуда же и рефакторинг). А в этом языке ты можешь такие вещи делать, что переопределение рубовских базовых классов просто детский лепет.

Да. И еще один момент. За время раскрутки Руби (где-то середина 2005 года) до сегодняшнего дня в язык было добавлено кучу новых возможностей, которые были созданы без изменения синтаксиса языка. Большая часть этих новинок войдет уже в версию 2.0. Ты можешь себе представить, что в недо-языке питона, люди сами расширяют язык?

anonymous
()
Ответ на: комментарий от anonymous

> Это не грязный хак, а возможность языка.
Возможности, которые создают больше проблем, чем реальную пользу являются хаком. В другом контексте их сложно рассматривать.

> Есть языки где программисту дается свобода.
Возможность прострелить себе ногу теперь называется свобода? И преподносится как фича?

> Тебе уже говорили про юнит-тестинг.
уже ответили.

> было добавлено кучу новых возможностей, которые были созданы без изменения синтаксиса языка.
Удивили :) Lisp, Schema этого не позволяют? Да тот же TCL :)

Korwin ★★★
()
Ответ на: комментарий от Korwin

>> Читай класическую ТДД Кента Бека про триангуляцию.

> Это из разряда "врагу не посоветую" :)

Нет. Стыдно не знать, кто такой Кент Бек. Он по сути один из первопроходцев юнит-тестирования. http://en.wikipedia.org/wiki/Kent_Beck . А книжки он пишет лаконичные и по делу.

anonymous
()
Ответ на: комментарий от anonymous

> Нет. Стыдно не знать, кто такой Кент Бек.
А кто сказал, что я его не знаю?
Теория она хороша, но к разным языкам применима в разной степени.

Korwin ★★★
()
Ответ на: комментарий от Korwin

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

Ты наверное и по улице в призервативе ходишь, чтобы спидом не заболеть?

>> было добавлено кучу новых возможностей, которые были созданы без изменения синтаксиса языка.

> Удивили :) Lisp, Schema этого не позволяют? Да тот же TCL :)

Ты аватара еро-сенина, что за него отвечаешь? Схема и Тикль божественные языки. Но если у тебя плохо монитор показывает, процетирую самого себя:

>> Ты можешь себе представить, что в недо-языке питона, люди сами расширяют язык?

Если ты внимателен, то заметишь, что там написано __питон__, а не _Схема_ или _Тикль_.

anonymous
()
Ответ на: комментарий от anonymous

> Ты наверное и по улице в призервативе ходишь, чтобы спидом не заболеть?

Просто есть языки Just'for'fun, для души, а есть для работы. Где нужен стабильный результат, а не прикольно, круто, красиво и т.д.

Кроме Питона и Руби ведь тоже есть другие языки. Верно?

Korwin ★★★
()
Ответ на: комментарий от Korwin

> Кроме Питона и Руби ведь тоже есть другие языки. Верно?

Только не говори мне сейчас о Яве, а то станет очень грустно...

anonymous
()
Ответ на: комментарий от anonymous

> Только не говори мне сейчас о Яве, а то станет очень грустно...

Он имел в виду PHP. Стабильно и надежно.

anonymous
()

убейте уже кто-нить этого инвалида-PHP'шника, тяжело ж наверное с таким мировоззрением бедняге жить..

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.