LINUX.ORG.RU

Программирование на Java без IDE

 ,


1

1

Дожил до седых мудей и... решил взяться за изучение жабы (чтобы программировать под Android), но друзья испугали, что придётся отказываться от GNU Emacs'а в пользу специальных интегрированных средств разработки, таких как NetBeans и Eclipse (что крайне нежелательно). Подскажите, правда ли это? А то друг говорит, что, мол, пока я год буду набирать программу в емаксе, он отключит мозг, загрзит нетбинз и мышкой накликает такую же программу за час. :-)


Ответ на: комментарий от ak372771

Ну и где я тут спросил: «А как это у вас?» ?

А это было сказано специально, чтобы тебе уже не о чем было спрашивать.

Ты чё, прикидываешься?

Нет, я в самом деле такой.

tailgunner ★★★★★
()
Ответ на: комментарий от dizza

Каким образом используя знакомый инструмент можно сорвать сроки? Ну вот мне например сильно больше нравится Идея, а не эклипс

делается это так:

если срываются сроки, то просто-насего сваливатся вина на того человека кто не согласился на всеобщий корп-стандарт :-D . в зависимости от конкретной ситуации — подбираются конкретные причины как это можно притянуть за уши :-D :-D

user_id_68054 ★★★★★
()
Ответ на: комментарий от user_id_68054

делается это так:

если срываются сроки, то просто-насего сваливатся вина на того человека кто не согласился на всеобщий корп-стандарт :-D . в зависимости от конкретной ситуации — подбираются конкретные причины как это можно притянуть за уши :-D :-D

Вот это уже похоже на правду. Сам не сталкивался, к счастью, поскольку следую корп-стандартам.

dave ★★★★★
()
Ответ на: комментарий от anonymous

Если пальцы после Emacs уже восстановлению не подлежат, есть специальный плагин для Eclipse.

Да, проблема в первую очередь в мышечной памяти, и переучиваться очень не хочется.

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

Etch
() автор топика
Ответ на: комментарий от Etch

В общем, буду пробовать и то и другое, после чего сделаю окончательный выбор.

после чего — не забудь отписаться.

нам интересно

user_id_68054 ★★★★★
()

Подскажите, правда ли это?

в IDE удобнее делать шесть вещей:

* рефакторинг

* запуск юнит-тестов через GUI-приблуду в IDE

* семантическую работу с кодом (где определяется/где используется функция, статический анализ и подсказки по коду в IDEA)

вот в IDEA например: выдаются советы по коду, где можно улучшить сам код: http://www.jetbrains.com/idea/features/code_analysis.html

* генерация костылей для фреймворков

* настройку параметров проекта

* плагины: сравнение/слияние для VCS, список задач в mylin, генерация моделей, логи сервера интеграции и т.п.

если всёго этого не надо, или для задачи есть отработанные команднострочные тулзы (например, архетипы в мавен), или настроенный сервер интеграции с подробными логами — IDE не очень-то и нужна.

anonymous
()
Ответ на: комментарий от anonymous

* рефакторинг

постоянно вижу тут этот пункт. а как конкретно оно помогает делать рефакторинг?

всмысле, мне интересно как вообще связны понятия «IDE» и «Рефакторинг»?

(приверженца IDE — вкладывают в <Рефакторинг> — некий особый смысл?)

user_id_68054 ★★★★★
()
Ответ на: комментарий от user_id_68054

а как конкретно оно помогает делать рефакторинг?

выбором пункта в меню/кнопкой появляется диалог с предпросмотром изменений, например, http://www.jetbrains.com/idea/webhelp/extract-method-object.html

нажали на кнопку => получили результат (код исправлен во всех точках, не нужно вручную лазить глазами по :!r `grep -Rn src/*`)

как вообще связны понятия «IDE» и «Рефакторинг»?

вообще-то никак, только тссс.. приверженцы IDE об этом не знают :)

я так понимаю, IDE это то, в чём есть какой-то семантический анализатор. что строит семантическое дерево по исходнику, то есть понимает где определение функции/метода/переменной, где использование. и поэтому может делать навигацию по коду, или например, статический анализ, или компиляцию проекта в фоновом режиме, после набора очередной строки (для этого в Eclipse прикрутили свой инкрементальный компилятор ecj, который работает через API Eclipse для работы с этой семантической базой.

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

например, в смоллтоке, откуда рефакторинг и пришёл, это выглядело так: http://www.jarober.com/blog/blogView?entry=3487807799 хотя ничего не мешает делать это отдельной тулзой типа lint, вот только не наглядно и не удобно.

ну а поскольку смоллток=IDE сложилась устойчивая ассоциация «IDE=refactoring». ну а вообще рефакторинг помогает делать книжка типа «чистый код» и голова, чтобы вовремя остановиться и не делать рефакторинг ради самого процесса в совсем уж тривиальных случаях.

anonymous
()
Ответ на: комментарий от anonymous

нажали на кнопку => получили результат (код исправлен во всех точках, не нужно вручную лазить глазами по :!r `grep -Rn src/*`)

тоесть в IDE можно умной-автозаменой заменить все названия одного класса на названия другого (нового) класса?

это кстате была-бы довольно не плохая кнопка (или может даже такая уже есть? я потомучто не осилил никакие IDE, не знаю такчто...)..

даже както сложно представить жизнь без grep -Rn ...

user_id_68054 ★★★★★
()
Ответ на: комментарий от user_id_68054

тоесть в IDE можно умной-автозаменой заменить все названия одного класса на названия другого (нового) класса?

Эм... Ну да. И не только класса. И не только название. В IDEA ПКМ по классу/методу/переменной/итп -> Refactoring -> Rename.

korvin_ ★★★★★
()
Ответ на: комментарий от user_id_68054

Как уже сказали, самое частоиспользумое - автозамена. Причём она умная. Например меняешь название поля, автоматически меняются названия геттеров-сеттеров (включая все места, где они используются). Кроме этого можно, например, выделить какой то блок кода в функцию (автоматически определятся параметры и возвращаемый тип, ну и функция выделится, кроме того IDE постарается найти все места, в которых аналогичный блок кода и заменит его на вызов этой функции, так же подредактирует комментарии и т.д.). Если есть большое выражение, нередко полезно его часть вынести в локальную переменную, поле, константу, чтобы упрости чтение или использовать эту переменную несколько раз в дальнейшем. Или наоборот удалить функцию и во всех местах, где она используется, вставить её тело (то же с переменной, константой). Это то, что я часто использую, а так рефакторингов там несколько десятков. Главное преимущество IDE в том, что она не делает опечатки при рефакторинге, если ручками делать, то легко допустить ошибку. Ну и скорость.

Как следствие, кстати, над кодом меньше думаешь. Если не знаешь, как назвать переменную, называешь как угодно, через некоторое время возвращаешься и переименовываешь, когда становится яснее. Меньше отвлекаешься в общем. Хотя с какой то точки зрения это минус.

Legioner ★★★★★
()
Ответ на: комментарий от user_id_68054

На большом проекте grep не сильно поможет. Тут скорее переименовываешь функцию в объявлении, запускаешь компиляцию и потом по списку ошибок идёшь и исправляешь.

Legioner ★★★★★
()

не правда. некоторые в mcedit пишут

quest ★★★★
()
Ответ на: комментарий от Legioner

да.. эт наверно действительно полезно.

* * *

ну а как вот например быть с (будущей?) Java 8 ?

там будет встроенный скриптовый движок — Nashorn (Javascript от Oracle). и это какбы планирует очень сильно ускорить процесс разработки новых java-програм.

(сам Nashorn будет выполняться примерно в 3~4 раза быстрее чем Rhino. так что впринцепе юзабильно также и с точки зрения производительности программы).

и как IDE будет помогаеть делать «умную автозамену» в js-файлах? там же утиная типизация.. и следовательно поможет только наверно опять же наш любимый grep?

...или же не получится ли так что IDE будет ВЫНУЖДАТЬ нас (программистов) НЕ использовать Nashorn, и следовательно ухудшать читаемость исходного кода?

# P.S.: тоесть меня беспокоит вопрос — ЗАСТАВЛЯЕТ ли IDE программиста использовать конструкции, ухудшающие в итоге исходный код?

user_id_68054 ★★★★★
()
Ответ на: комментарий от user_id_68054

IDE будет ВЫНУЖДАТЬ нас (программистов) НЕ использовать Nashorn, и следовательно ухудшать читаемость исходного кода?

Я надеюсь. Javascript должен сдохнуть.

ЗАСТАВЛЯЕТ ли IDE программиста использовать конструкции, ухудшающие в итоге исходный код?

Замечаю за собой, что при прочих равных выбираю хорошо поддерживаемые IDE конструкции.

tailgunner ★★★★★
()
Ответ на: комментарий от user_id_68054

Ничего не понял. JavaScript это для каких-то очень серьёзных платформ, когда пользователю нужна кастомизация, настолько сложная, что нужен полноценный язык программирования, но Java всё же не подходит из-за сложного цикла разработки. Я вижу цель JavaScript движка именно в этом. Чтобы пользователь мог какие-то сценарии на нём писать, взаимодействуя с платформой. Переписывать программы с Java на JavaScript никто не будет, это маразм. Хотя бы потому, что JS как серьёзный язык программирования мало кто воспринимает. Как средство для написания сценариев технически продвинутыми пользователями - пожалуйста (как он, собственно, и используется в браузерах).

Для серьёзной разработки если очень хочется динамичности, всегда есть Groovy.

Ну и в конце концов та же IDEA JavaScript поддерживает и автодополнение по нему выдаёт. Естественно как может, всё же это динамический ЯП, но в целом поддержка очень неплохая.

Legioner ★★★★★
()
Ответ на: комментарий от Legioner

Ну и в конце концов та же IDEA JavaScript поддерживает и автодополнение по нему выдаёт. ...

похоже что это сигнал — надо строить бункеры.. восстание машин не за горами

anonymous
()
Ответ на: комментарий от anonymous

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

anonymous
()
Ответ на: комментарий от anonymous

Ну вообще Будам довольно большая шишка в Java Enterprise. Он Java Champion (их всего около ста во всём мире), ведет курсы, выступает на конференциях, пишет книги по Java, проводит собеседования. Знает о чём говорит.

Да, конечно, его советы для тех, кто хочет всю жизнь кодировать унылый CRUD и жить в какой-нибудь Новой Зеландии нищебродом на птичьих правах, но не это ли мечта здешних жаберов?

anonymous
()
Ответ на: комментарий от anonymous

А книжку вы внимательно читали? Это ад и израиль. Начиная от отвратительного стиля кода, заканчивая просто неработающими примерами и неверными пояснениями основных моментов в Java. Если интересно, то можете посмотреть как он описывает static variable и наследование (по его утверждению, конструктор базового класса, можно _переопределить_ в классе наследнике). О каком звании Java Champion может идти речь?

anonymous
()
Ответ на: комментарий от anonymous

О каком звании Java Champion может идти речь?

Может тогда его заменить на нашего vertexua? Хотя нет, вертухай какой-то заторможенный, пусть лучше Будам будет.

anonymous
()
Ответ на: комментарий от anonymous

О каком звании Java Champion может идти речь?

Это скорее всего как MVP дают не за знание предмета, а за объём сгенерированного мус^W траффика по заданной теме.

LamerOk ★★★★★
()
Ответ на: комментарий от anonymous

According to Microsoft, Microsoft Most Valuable Professional (MVP) award is given to «exceptional, independent community leaders who share their passion, technical expertise, and real-world knowledge of Microsoft products with others.»[1] The awarded are people who «actively share their ... technical expertise with the different technology communities related directly or indirectly to Microsoft». An MVP is awarded for contributions over the previous year.[2]

The MVP program grew out of the software developer community, as the initial MVPs were some of the most active on the online peer support communities such as Usenet and CompuServe. It has since grown to include other types of products, and other avenues of contribution. Steve Ballmer spoke to a group of Microsoft MVP's about XP and Vista.[3][4]

http://en.wikipedia.org/wiki/Microsoft_Most_Valuable_Professional

LamerOk ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.