Языки и методики разработки

Я никогда не работал с Ruby on Rails, поэтому нашел его в Википедии. Это говорит

Он предназначен для использования с методологией гибкой разработки, которая используется веб-разработчиками для быстрой разработки.

Это заставило меня задаться вопросом, как данный язык / фреймворк может быть более подходящим для данных методологий разработки. Есть ли какие-то языки, которые, например, более удобны для парного программирования? Существуют ли языковые особенности, которые делают определенные методики более подходящими? Есть ли особенности, которые делают невозможными определенные методологии?

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

Кроме того, если сообщество SO обнаружит, что определенные языки указывают на определенные методологии, какая методология наиболее распространена для C #, и это то, что я использую большую часть времени?


person Carlos    schedule 23.05.2010    source источник
comment
Парное программирование - это техника, а не методология - методология определяет набор артефактов, которые необходимо произвести, и упорядочение между ними, даже если это только на этапе «напишите тесты, а затем напишите код, который соответствует уровню описания тестов».   -  person Pete Kirkham    schedule 23.05.2010


Ответы (3)


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


Объектно-ориентированные языки подходят для больших групп, поскольку код можно аккуратно разделить. Вместо этого динамические языки позволят использовать гораздо более исследовательские и простые подходы из-за возможности интерактивного тестирования кода (например, интерактивных оболочек) без длительного времени компиляции.

Согласование над конфигурацией, как это практикуется в RoR, подходит для быстрой разработки, тогда как передовые системы функциональных типов, такие как F # или Haskells, продвигают подход сначала типы.

И, конечно же, еще проще доказать обратное - вы не можете полагаться на типы в недостаточной системе типов, вы не можете разделить интерфейсы, где все они неявны, и вы не можете легко исследовать проблему, пробуя и ошибаясь. в таких языках, как C ++. Так что да, связь есть.

person Dario    schedule 23.05.2010

Определенные среды помогают, особенно для методологий, которые предусматривают циклы быстрого кода и модульного тестирования. Например, мне требуется 4 секунды, чтобы скомпилировать и запустить базовые тесты для проекта из 50 000 строк на C, но год назад здесь был пост, в котором кто-то потратил 2 минуты на запуск «модульных» тестов на RoR. из-за накладных расходов базы данных.

person Pete Kirkham    schedule 23.05.2010

Динамические языки - естественные друзья Agile-методологий (Agile - это не методология, а семейство методологий со Scrum, XP, ...), потому что они проистекают из того же духа «прагматизма», но, как того требует Business Pressure, даже языки компиляторов теперь используют Гибкость и, по сути, становится гибкой благодаря интеграции динамических функций, таких как C # или .NET Framework, с версией 4.0.

person Rebol Tutorial    schedule 23.05.2010