java

24.02.2007 12:37

Нравится мне джава. Не могу объяснить, чем конкретно, но — нравится.

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


Как пример — стремление к постоянной инкапсуляции, скрытию полей и написание геттеров и сеттеров после специфичных для класса методов. Многие классы в итоге превращаются в джава-бины. У меня это уже дошло до определенного автоматизма (благо, IDE позволяет быстро создать геттеры и сеттеры нужных полей путем нажатия “горячих” клавиш). В языках с определенной свободой действий (тот же php, например), где типизация менее строгая, этого ощущения нет. Пишешь по принципу “пусть сначала заработает, а там посмотрим”. Самодисциплина есть, но ее приходится буквально культивировать и приучать себя к однообразию. Дабы через неделю не тратить лишнее время и не думать о том, что же этот “креатив” в виде группы функций из себя представляет. В свое время в php приходилось каждую переменную помечать (добавлять префикс), чтобы при просмотре кода точно знать, что она содержит. Например: $sMain (строка) или $bFlag (булевский тип). Причина проста, и ее классический случай — путаница между строками и числами. Особенно сильно потребность в стандартизации кода проявляется в коллективе, когда лишняя трата времени на изучение чужого кода — это деньги. Да и просто неприятно, когда на носу дедлайн, а тебе для выполнения задания надо заниматься кодоаналитикой.

А джава нравится в первую очередь наличием в природе IDE Intellij IDEA. Это тот редкий случай, когда программа реально стоит денег. Сделало это, не побоюсь этого слова — чудо (в лучшем смысле) компания JetBrains. Среди большого числа фич отмечу наличие:

  • локального хистори. Изменения во всех файлах автоматически записывают в кеш IDEA и файл позже можно сравнить с его версией, например, недельной давности. Или откатить весь проект на вчерашнюю версию, не обращаясь к системе контроля версий. Это мегаудобно. Постепенно забываешь про клавиши Ctrl+S и тебя уже не волнует наличие несохраненных классов
  • навороченного редактора кода. Анализирует ввод любого кода и сразу же выдает рекомендации по его улучшению. Ошибки тоже, конечно, не пропускает. При этом анализ проводится ненавязчиво (при желании, на рекомендации внимание можно вообще не обращать или вовсе отключить их в настройках)
  • большого числа способов рефакторинга кода. Например, можно заменить дублирующийся внутри метода код на одну переменную или вынести блок кода в виде отдельного метода внутри класса. Удобно, когда надо разбить один длинный метод на серию небольших.
  • приятной навигации по коду
  • поддержки ряда популярных серверов приложений
  • более 300 плагинов на все случаи жизни
  • и так далее. Проще пописать внутри IDEA с неделю-другую, чтобы все стало понятно.

На сайте JetBrains также есть ряд обучающих видео-роликов.

Первую неделю после знакомства с IDEA ходил просто офигевший (а-ля “wow starts now”). На тот момент зарабатывал на жизнь веб- и вап-разработками и джаву изучал чисто для себя, факультативно.
Разница в инструментах для написания кода представлялась огромной.

С Eclipse как-то не срослось. Ставил чистый Eclipse, потом на первой джава-работе видел, как люди пользовались версиями Eclipse с плагинами, на следующей пощупал версию от IBM (WebSphere Studio). Были еще борландовский JBuilder и производный от него оракловый JDeveloper. Все казалось детский садом в сравнении с IDEA. И кажется до сих пор.


Назад
  • в прошлое: чума!
  • в будущее: *


Написать мне