Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
После 13-и лет (!) ковыряния в одном языке (PHP тут не при чем, хотя и показатель) человек вдруг увидел другой мир. Мои поздравления, теперь можно развиваться дальше.
даже не зная как реализовать загрузку файлов в Ruby/Rails, я смог решить поставленную задачу
Что тут странно, так это то, что эти методы (которые, вообще говоря, наследованы) вызываются в процессе определения класса.
Ror c фреймворком на php лучше сравнивать, а php — c ruby.
>>принципу Утиной Типизации
Самое ужасное, как мне кажется, что может быть, это когда два объекта одного класса имеют разный набор методов и пр. Удобно? Вполне возможно. Поддерживаемо через 6-12 месяцев? Сомневаюсь.
[], мы можем работать с ним, как с массивом, хотя это совсем необязательно массив. В целом утиная типизация это скорее соглашение, и следовать этому соглашению можно как при написании кода на PHP, так и на Python или Ruby. Другое дело, что одни языки больше располагают к этому, а другие — меньше.Кстати, а ПХП переменные затягивает в замыкание по ссылке или по значению?
можно программно определять классы
TestClass = type('TestClass', (object,), dict(value = 1, get_value = lambda self: self.value))
print TestClass().get_value()
def init(self, value):
self.value = value
String = type('String', (object,), {})
String.__init__ = init
String.reverse = lambda self: self.value[::-1]
print String('Hello, world!').reverse()
del String.reverse # remove method definition
Я знаю PHP. Не просто знаю, а действительно знаю. Не только синтаксис, или идиомы и особенности, но еще и почему — почему что-то работает именно так как оно работает, понимаете, под капотом.
Сможете ли вы к стороннему PHP-скрипту подключить библиотеку от yii2 даже если их будет миллион?
Изучая Rails (ну, и Ruby)