Данная статья является моим переводом!

[Только зарегистрированные пользователи могут видеть ссылки. ]
[Только зарегистрированные пользователи могут видеть ссылки. ]
[Только зарегистрированные пользователи могут видеть ссылки. ]

За последние несколько лет Rails помог Ruby достичь огромной популярности. Одна из основных причин– это время, которое Rails может сэкономить вам. Работая в хорошо устроенном фреймворке, многие разрабатываемые решения упрощаются, и становится проще быть более организованным. Добавьте такие отличные инструменты как ORM, модульное тестирование, имитация (заглушки) и т.д. и вы получите мощную установку для эффективной и качественной разработки.
Всегда были и наверняка будут споры по поводу лучшей платформы, но я хочу вам показать, что большинство из этих аргументов в основном не соответствуют действительности. В зависимости от того, какую платформу для разработки вы выбрали, в любой из них доступны практически одинаковые инструменты, в том или ином виде. В любом случае, для меня, общими компонентами, которые помогают писать качественный код, быстрее и легче в обслуживании, являются: хороший IDE, легкое в использовании модульное тестирование и имитация, ORM, MVC-фреймворк и хорошая библиотека JavaScript.
Я работаю .Net разработчиком на постоянной основе и PHP разработчиком от случая к случаю. Мне нравятся обе среды по нескольким причинам. Я расскажу о каждом из этих компонентов детально и объясню, почему я считаю их важными. Потом, в конце статьи, я предоставлю списки каждого из этих компонентов для разных языков (.Net, Java, PHP, Python и Ruby). Я решил перечислить только бесплатные или open source инструменты, потому что их легко испробовать и все мы не прочь сэкономить пару баксов.

Интегрированная среда разработки (IDE)
На мой взгляд, это наиболее существенное. Конечно, вы можете писать код в блокноте и компилировать с помощью командной строки, но это наверняка будет дольше и потребует больше дисциплины, чтобы оставаться организованным. Хороший IDE позволяет проще управлять проектом (все файлы сгруппированы с возможностью табулированного обзора), подсвечивать синтаксис, компилировать (если это применимо), а также автокомплиты.
IDE становятся все более утонченными и позволяют с помощью плагинов расширить функциональность, например, svn и управление git в IDE.
Моя любимая IDE это Visual Studio. Существует и другие хорошие программы, как NetBeans и Eclipse, но по какой-то причине я отдал предпочтение Visual Studio.

Модульное тестирование и имитация
Эти два пункта идут рука об руку. Программа не может считаться завершенной без соответствующего тестирования. У многих людей возникают споры, когда дело доходит до тестирования. Я тоже относился к этому довольно скептически. Мне казалось странным – тратить время на написание кода для тестирования реального кода, над которым я работал. В итоге я решил попробовать это и изменил свой стиль программирования. Когда концентрируешься на том, как протестировать свой код, ты пишешь его чище, и это хорошо – иметь быстрый способ узнать, не произвело ли данное изменение какие-либо поломки или нарушения.

Объектно-реляционное отображение (ORM)
Если вы когда-то использовали ORM, то знаете, что оно может сэкономить большое количество времени. Одним из сомнений перед использованием ORM была производительность. Я боялся, что использование ORM сделает мои приложения медленнее, но я ошибался. Мне стоило задаться вопросом, стоила ли низкая производительность большой экономии времени. Ответ на этот вопрос – однозначное ДА! Очень редко ORM становится источником низкой производительности приложения, а если и становится, то можно произвести рефакторинг для ее повышения или использовать SQL непосредственно, если в этом будет необходимость.
Все сводится к тому, чтобы не беспокоиться о задачах производительности до того, как они появятся. Да, это важно, заботиться о производительности, но это не должно беспокоить при использовании ORM.

MVC фреймворк
MVC стал очень популярным, частично благодаря Rails, и это революция в способе выполнения веб-разработки. Ключевым компонентом его популярности является разделение разных частей вашей программы на отдельные кусочки. Это разделение облегчает тестирование, улучшает проектирование и делает ваше приложение в целом более легким в обслуживании.

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

ASP.Net
IDE: Visual Studio 2008 Express
Unit Testing: NUnit
Mocking: Rhino Mocks
ORM: NHibernate
MVC: ASP.NET MVC
JavaScript: jQuery

Java
IDE: NetBeans
Unit Testing: JUnit
Mocking: EasyMock
ORM: Hibernate
MVC: Struts
JavaScript: jQuery

PHP
IDE: PHPEclipse
Unit Testing: PHPUnit
Mocking: PHPMock
ORM: Propel
MVC: Symfony
JavaScript: jQuery

Python
IDE: PyDev
Unit Testing: PyUnit
Mocking: PythonMock
ORM: SQLObject
MVC: Django
JavaScript: jQuery

Ruby
IDE: RadRails
Unit Testing: Test::Unit
Mocking: Mocha
ORM: Sequel
MVC: Rails
JavaScript: jQuery

[Только зарегистрированные пользователи могут видеть ссылки. ]