Как жить с синтаксическим сахаром like Ruby

AmdY

Пью пиво
Команда форума
ага, $this->widget('ext.yiiext.widgets.iconizedMenu.EIconizedMenu') - это жесть
но всё же в php меньше магии.... было.....

лучшая документаци - автокомплит и правильные имена, вот этот момент с учётом monkey patching в ruby больше всего пугает

а синтаксис хорош у python. кстати, у них была проблема с метанием между отступами табом или пробелами. эх, если бы php да подобный синтаксис.....
 

tz-lom

Продвинутый новичок
AmdY
ну нахрен
питон УГ , как можно было делать такое что private protected это разница в количетве _ это же ПЦ
насильное форматирование тоже убивает,равно как и циклы-через-жопу тоже,и что что прикольно реализовано?
а методы то как реализуются......
 

AmdY

Пью пиво
Команда форума
Ragazzo
ты сможешь десяток таких плагинов в памяти держать?

такое чувство, что большинство пишет сайты по принципу write only, забыв о маньяке из книги макконнелла
 

Ragazzo

TDD interested
DYPA
Не аргумент, а так и кода меньше и видно сразу что куда
 

Ragazzo

TDD interested
AmdY
А что в этом плохого, они не весят много...разбил на несколько мелких частей и ладно
 

AmdY

Пью пиво
Команда форума
Ragazzo
проблема не в плагинах, а длиннющей строке идентификаторе, которую можно было повесить на константу. кроме проблем с запоминаем ещё и при рефакторинге можно было бы спокойнее спать.
 

Ragazzo

TDD interested
AmdY
Там спокойно можно пихнуть это в конфиг(путь), и затем локально отсчитывать, т.е это не проблема (в данном случае Yii), проблема в подходе как ее решают...что-то совсем оффтоп пошел...
 

AmdY

Пью пиво
Команда форума
Ragazzo
можешь набросать пример?
это как раз по делу, вот я подозреваю, что в руби народ тоже делает по другому, а мне встретились лишь плохие реализации.
 

Ragazzo

TDD interested
PHP:
//В конфиге
	'params'=>array(
		// this is used in contact page
		'PluginsFolder'=>'part/to/plugins/folder',
	),
//в вьюшке
$this->widget(Yii::app()->params['PluginsFolder'].'iconizedMenu.EIconizedMenu')
или я походу недогнал, что ты просил...есть у меня такое подозрение...
 

AmdY

Пью пиво
Команда форума
Ragazzo
не, не то, имелось ввиду если добавить в файле с плагином строку
PHP:
define('YII_EXT_WIDGETS_ICONIZEDMENU_ELCONIZEDMENU', 'ext.yiiext.widgets.iconizedMenu.EIconizedMenu');
то жизнь бы сразу стала раем.
 

Ragazzo

TDD interested
Красиво, но все равно зловеще смотрится такое название...
 

флоппик

promotor fidei
Команда форума
Партнер клуба
Плохо, что для этого нет никакого автокомплита, к сожалению.
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
если я правильно понимаю, идеология js-фреймворков (jquery, prototype) построена на monkey patching, и там это удобно
мне в php очень не хватает гибкости js и лаконичности питона
 

Ноябрь

Новичок
Лол, я программирование на php вспоминаю как страшный сон.
Начнем: RoR ох#нно продукоментирован. http://api.rubyonrails.org/ Если этого мало, то идем на github и читаем код там https://github.com/rails/rails
Есть масса туториалов, и масса скринкастов! http://railscasts.com/
Они не используют IDE
А вы какую IDE используете?
Передача параметров в методы имеет несколько вариантов, только недавно появилась возможность указывать параметры по умолчанию. Интерфейсов и тайпхинтинг соответственное отсутствуют.
вот это гон. Всего один способ передачи функций, и счего вы взяли, что их несколько, возможно это как раз тот самый синтаксические сахр, например:
[RUBY]
method 1 #передаем интеджер в параметры.
method {:a => 1} #передаем хэш в параметры.
method :a => 1 #т.к. при передаче хэша в параметры метода можно опустить скобки, возможно это было принято за другой способ.
method { #действие } #передаем _один_ блок кода в параметры (ламбда).
method { |v| #действие } #блок с запущенной в него переменной из метода, похоже на foreach.
method 1, :a => 1 { #действие } #все вместе.
[/RUBY]
методами или переопределить в любом месте
Это невероятно крутая штука, но помоему это возможно и во многих других языках в т.ч. java c#: пишешь собственные методы, используешь существующие. Можно запросить список существующих методов в классе, публичных и приватных, констант и пр! Короче есть инструменты для анализа класса. Метапрограммирование это круто. Например от класса A наследуются B и C, я хочу добавить в них некий одинаковый функционал, соответственно я помещаю его в A, а не создаю еще D и E.
Суть ruby это простой ООП язык, не отягощенный типизацией, main функциями и пр. Допускает метапрограммирование. Он на столько прост, что программа может выглядеть вовсе не как ООП, не в пример java и c#.
Простой пример, совсем недавно поручили ковырять сайт, о котором я ничего не знал. Оказалось он написан на руби. Мы за 5 минут добавили нового пользователя в админку. Другой пример, это сайт написанный на пхп, в его типичной велосипедной парадигме, где хер найдешь вход, с этим сайтом куда сложнее. Да, на пхп можно писать красиво (в теории), да, на рельсах можно писать плохо (и этот сайт как раз так и написан), но даже в очень плохо написанном рельсовом приложении можно ориентироваться специалисту по рельсам. Так о какой непредсказуемости вообще идет речь..

пс
я тут вообще раздел по руби хотел предложить открыть.
 

Ragazzo

TDD interested
Ноябрь
Че только на рельсах катаемся и молимся им? а другое никак не взять?)
холодом как-то повеяло...брр...
 

Ноябрь

Новичок
эм... вы просили совет от разработчика.
Нет, я писал на php, as3.
Сейчас пишу на ruby и js. И там, и там использую ооп подход.
На руби я часто пишу рейки. Пробовал merb.
Так же использую haml и sass.. Так что нет.. не молимся.
 

Ноябрь

Новичок
Ок
Указанных вами проблем нет. Кстати по поводу молитв, по-моему кто-то молится на какую-то IDE (я пока не пойму какую) и другое никак не взять .
 
Сверху