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

Ragazzo

TDD interested
Ноябрь
т.е кодв в 10 000 строк например у вас сидят 10 разрабов и все в vim?ужс
 

Ноябрь

Новичок
Если честно, то нет такого, я в основном один, но даже если бы было 10, то каждый, по-моему, волен выбирать свой инструмент разработки.. Т.е. необязательно все в vim. Например мой коллега использует NetBeans.
 

Ноябрь

Новичок
ты не на руби пишешь. ты пишешь на рельсах. не надо путать.
К чему это замечание.. во-первых, я так и написал к тому примеру: "специалисту по рельсам". Во-вторых я пишу на руби. Да, руби это не только рельсы, рельсы это не только руби, ну и что с того.
 

AmdY

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

А IDE инетересует именно в плане поддержки таких фич: автокомплит, быстрый браузинг по коду, переход к определению, переопределению методов, дебагинг.
 

Ноябрь

Новичок
как вы контролируете передачу нужных параметров в методы, особенно это касается объектов и лямбда функций?
а) утинная типизация - есть нужные методы у объекта - все норм, нет методов - ошибка, и мы понимаем, что передали в параметр не тот объект.
б) таки-проверять класс/миксины объекта, и райзить ошибку в случае чего.
как определяете что вам пришёл объект с уже нужным методом.
obj.method_defined? :method # true/false
как вы определяете как работать с классом, если документации нет или она плохая?
Код смотреть.. что же еще)
как вы контролируете, где добавился метод.
А IDE инетересует именно в плане поддержки таких фич: автокомплит, быстрый браузинг по коду, переход к определению, переопределению методов, дебагинг.
Во-первых, с чего вы взяли, что IDE нет. Их много, в них все это есть.Инструмент волен каждый выбирать себе сам, так, например, я использую Vim и доволен тем, что он умеет делать с руби кодом и текстом вообще.
Про дебагинг. Есть возможность что-либо написать в консоль, кроме того, у нас есть метод inspect, который выводит все внутренности объекта. Лично мне хватает этого. Но есть библиотеки для дебагинга, в IDE есть дебагинг (привычный).
переход к определению, переопределению методов
Не очень понял, что здесь имеется ввиду.
 

Ноябрь

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

AmdY

Пью пиво
Команда форума
вот я и говорю, что это не язык, а игрушка. нет возможности контролировать и поддерживать код, только костыли. после такого нет желания включать в проектах поддержку нофых фич php 5.4 и готовящихся в 5.4

Ноябрь
отвечу на вопрос. я понимаю, что php ты не осилил в своё время. в php есть наследование и возможность переопределять методы, причём это делается очень прозрачно, а контролировать можно интерфейсом и через type hinting. Те же миксины можно реализовать через магический __call , но это считается плохой практикой - говнокодом, потому что потом такой заопарк невозможно поддерживать.

я ни разу ни против ruby, ни против python, даже скорее наоборот, с радостью бы променял убогий php синтаксис на получше и полаконичнее, но не в ущерб функциональности и поддержке
 

korchasa

LIMB infected
AmdY
Да нормально он поддерживается. Высокий уровень программистов * меньшее количество кода. Главное иметь адекватного тимлида, который будет бить по рукам за лишнюю магию, и притянутые за уши метапрограммирование и примеси.

ЗЫ: Я видел приложение на 5KLOC и не ослеп. Даже читал(с толмачем, местами).
ЗЫЫ: http://martinfowler.com/articles/rubyAtThoughtWorks.html#IsARubyCode-baseHardToUnderstand
 
  • Like
Реакции: AmdY

AmdY

Пью пиво
Команда форума
korchasa
согласен, не знаю если ли такой термин, но это называю программирование на ability, когда человек пишет код, который способен понимать лишь он или кто-то его уровня.
у меня недавно был период такой работы, чтобы написать код приходилось облазить добрую часть фреймворка в поиске нужной функции, потому что возможности автокомплита были убиты на корню, активно следить за параметрами, подсчитывать их в ручную (иногда их было больше десятка), на правку уходило тьма времени. Его автор был умнее и опытнее меня, потому с его джедайской техникой мне было трудно справляться. У меня самого был (есть) очень удобный фреймворк в стиле symfony c программированием на конфигах и активными шаблонами, скорость разработки на нём потрясная, но вот только один коллега смог программировать на нём, пришлось идеи зарыть на время.
Самое страшное, что в руби идут всё больше не с высоким уровнем, а те, кто не осилил php. тех, кто может писать на руби практически нет, все на рельсах, а вот у питона нет такого гопницкого фреймворка и там народ посильнее будет (пока).

флоппик
давай без мерива, например очень клёва вещь на ror - redmine, мантис ему в подмётки не годится
 

Ragazzo

TDD interested
флоппик
Когда-то твиттер, думаю сам знаешь, GitHub вроде тоже...
Да и вообще "крупный ресурс", редко пишется на 1 языке программирования, т.к ни один яп не может удовлетворить всего функционала "крупный ресурс"...всегда будет что-то написано на питоне например или еще чем-то...
 

whirlwind

TDD infected, paranoid
флоппик По этому линку тока личное и проблемы менеджмента. Реально там ни одной языковой проблемы нет.

Вообще странную тему подняли. Ладно бы новички спорили. Тут по моему очевидные вещи. Помимо самого языка еще надо учитывать прочие имеющиеся ресурсы, квалификацию, цели и прочее. Мне вот java больше всего нравится, но пишу я в основном на PHP. Не потому что он лучший, а потому что есть причины.
 
  • Like
Реакции: AmdY

korchasa

LIMB infected
korchasa
Самое страшное, что в руби идут всё больше не с высоким уровнем, а те, кто не осилил php.
Ой, да ладно. Неосилил РНР, это как еврей-сталевар.

korchasaтех, кто может писать на руби практически нет, все на рельсах, а вот у питона нет такого гопницкого фреймворка и там народ посильнее будет (пока).
И это нормально! Так же как люди знающие jquery/dojo/prototype, но не знающие js. Так же как РНР-разработчики, не знающие Си. Пусть концентрируются на том, что приносит деньги заказчику, а не на "лишних" знаниях. Для этих "лишних" знаний нужны тимлиды, которые своевременными пинками подскажут, что вот тут ты так не делай, потому что <причина>. И это даже лучше, чем просто смена платформы на более высокоуровневую, т.к. внутренности на том же языке, на котором пишешь ты.
 

AmdY

Пью пиво
Команда форума
whirlwind
+1 там хрень субъективная, тем более там основной посыл против ROR, а не ruby

я договорился о встрече с руководителем отдела рубистов, сейчас готовлю вопросы, хочу тему раскрыть для себя. как верно здесь писали многих шишек можно не набить благодаря правильному менеджменту, но вопрос правильный - это что? так как в версии php 5.3 разработчики пошли на поводу у моды, сейчас эти проблемы пришли к нам и НАМ придётся их решать.
 
Сверху