Pull to refresh

Comments 77

а как же всеми любимые Брюс Эккель «Философия Java» и двухтомник Хорстманна и Корнелла?
сам ожидал увидеть двухтомник в числе первых книг

как-то незаслуженно обошли Хорстманна и Корнелла — замечательнейшие книги
Ну, автор не претендует на абсолютность своего списка. Хорстманн и Корнелл хороши, да.
я и не возбраняю выбор автора, это просто личные ожидания
они немного справочники напоминают. Они рассказывают про технологии в Java, нежели про то, как на ней правильно писать.
Пожалуй, относительно оригинального издания Эккеля соглашусь, а вот перевод на русский мне не понравился. :(
Видимо я совсем не тяну на прфессионала, если из 16 прочитал всего лишь 3… и лишь две полностью
Потому вот я и не перечислял подробно, что прочитал ;)
Печально, что " Woking Effectively with Legacy Code" попало у вас в раздел «Pro»
Прошу прощения, не заметил, что перевод
Парни, скажите, а на что вообще реально на JAVA пишут? Ну к примеру у меня в мозгу укоренилось — C++, Delphi — это там десктоп приложения. А на JAVA что? И насколько перспективна эта область.

Я сейчас сайты на php+javascript делаю, но хочется еще какую-то область освоить.
Многое пишут:
— Ынтерпрайз
— десктопные приложения
— игры
— мобильные приложения
— web-разработка
Ну что так сразу спали. 10 лет назад меня программирование не интересовало =)
Не лез просто в область программирования помимо web, а на программах и устройствах не написано же — сделано с помощью java)) да и не соприкасаешься как-то.
За web-Java не скажу, а enterprise вполе себе жирный кусок.
вот про андроид ниже пишут это интересно. а для десктопа пока просто не могу придумать что бы хотел делать, в отличии от web
Не стоит смешивать далвик и яву. Кишки разные.
UFO just landed and posted this here
Посмотрите для начала книги, ограничиваются ли они только языком или охватывают также работу jvm и компилятора.
UFO just landed and posted this here
На моей практике я делал на ней следующее:
1. Международная система нецентрированной статистики игровых автоматов и автоматических рулеток.
2. Система автоматизации банковского обслуживания.
3. Биллинговая система мобильных операторов.
Не знаю почему укоренилось мнение, что на плюсах десктоп пишут. High Load серваки очень даже на С++ пишут хорошо. Java живет себе неплохо в ынтырпрайзах. Бэкенды на ней тоже кстати пишут — те же одноклассники на Java написаны (правда с некой оговоркой). Не знаю, почему Java обошли как веб — есть люди которые вполне себе пишут довольно успешно на Java веб-приложения порядка более низкого, чем Ынтырпрайз. Просто начать девелопить на Java веб сложнее чем на пыхе/питоне/рубях.

И на мой взгляд область эта (Java) перспективна на столько, на сколько удачно удастся в нее погрузиться. Если по «вершкам» пройтись — то мало что перспективно вообще.
На плюсах довольно много относительно низкоуровневых библиотек и фреймворков (boost, qt etc). И если брать последний — там много под десктоп. Хотя последнее время все чаще вижу, что используют PyQt, QtRuby etc.

Если брать Java, то тут областей использования выше крыши:
  • мобильные телефоны/смартфоны (Android/Dalvik, JavaME),
  • embedded (та же OSGi пошла оттуда),
  • desktop (начиная от толстых клиентов к EE-приложениям, всяких IDE, Eclipse-based RIA),
  • нежно любимый многими за свою non-bloated xml конфигурацию enterprise (уже не только JavaEE стек, но и Spring там вполне живет),
  • тяжелые бэкенды (например, тот же Solr/Lucene),
  • Big Data (стэк слоников — hadoop/hdfs/hbase etc, cassandra),
  • NRT (всякие развлечения типа twitter storm),
  • data/computation grid (coherence, hazelcast etc),
  • куча распределенных фреймворков (hazelcast, zookeeper).


Это навскидку, со своей колокольни. Java очень широко используется. И граблей чуть-чуть меньше, чем в C++, что может сказываться на скорости разработки. Благо по скорости с динамическими оптимизациями местами дотягивает до C (см., например, lucene; и да, хороший погроммист на Фортране может писать на Фортране на любом языке).
Да, дядюшку Боба не то чтобы два раза, его постоянно надо перечитывать :) После первого прочтения посмотрел на свои наработки (на тот момент) и реально ужаснулся. Совершенно по-другому начинаешь смотреть на свой (да и на чужой) код, обращаешь внимание на детали, которые, если неправильно к ним подойти, в последствии могут вылиться в серьезные проблемы.
UFO just landed and posted this here
Вместо книги по рефакторингу лучше бы инструментарий любимой IDE освоить. Вместо/вместе с Бандой четырех еще неплохо бы прочитать Head FIrst Design Patterns. Ну и МакКоннелла обязательно, пусть он и не завязан на Java. Хорстманна-Корнелла и Эккеля тоже само собой разумеется, как раньше и писали в комментах.
The Pragmatic Programmer хорошо раскрывают тему освоения инструментов на 146%, иначе хоть Eclipse, хоть IntelliJ IDEA — результатов не будет.
Вместо книги по рефакторингу лучше бы инструментарий любимой IDE освоить.
Совершенно непонятное противопоставление.
Человеку, решившему получить автомобильные права, тоже посоветуете не учить ПДД, а только лишь покататься с инструктором?

Русский перевод «Refactoring», кстати говоря, довольно неплох. Чего нельзя сказать о нахваливаемой всеми вокруг «Философии Java».
Теория нужна, но конкретно книга Фаулера устарела. Там есть полезные советы касательно того, когда и где рефакторить, но в основном она содержит рецепты как рефакторить. Это было актуально в 2000-м, но теперь вместо этого есть меню Refactor в Intellij IDEA.

Книги читаю в оригинале, про перевод сказать ничего не могу.
Рефакторингом пользуемся, он нужен и полезен, он не «устарел», а описание используемых рефакторингов — устарело. Интересный подход.

Поддержка рефакторинга в IDE избавляет нас от рутины и ни от чего более. «Рецепты как рефакторить», кстати говоря, занимает меньшую часть книги, большая часть — главы «мотивировка» и «пример(ы)».

Откуда новичёк узнает, когда и какой метод применить и какие они вообще бывают? «Методом научного тыка» по пунктам меню? Так даже в идее они реализованы не все. Для Java около тридцати шести пунктов меню, а, к примеру, для PHP — и вовсе около десятка самых ходовых. В книге же описано около семидесяти. Не говоря уже о том, что «метод тыка» не самый оптимальный по временным затратам.

Поддержка той или иной технологии в IDE влияет наши представления о том, какой путь «быстрый» и какой путь «медленный». Будем мы использовать «говорящие» имена членов класса или какие короче набирать. Будем ли мы заранее тщательно, вплоть до исчерпывающего перечня приватных методов с сигнатурами, продумывать архитектуру приложения или отложим по максимуму до той поры, пока станет яснее. Будем ли мы редактировать старый код для избегания дублей или будем по максимуму по принципам SOLID оттягивать конец — писать пре-и пост-обёртки для старого кода, руководствуясь принципом «не трогай лишний раз технику, и она тебя не подведёт».

Без поддержки в IDE рефакторинг становится упражнениями для ума с негарантированным практическим выхлопом. С поддержкой в IDE применяются в основном те методы рефакторинга, которые поддерживаются в IDE (другие применяются в той мере, в которой облегчаются этими).

Насчёт того, что метод тыка не самый оптимальный — зато им изучается именно тот рефакторинг, который, из-за поддержанности в IDE? принесёт наибольший эффект.
Не «не учить ПДД», а «не закглубляться в устройство автомобиля и больше надеяться на мастерские». Нередко уместно, нередко — нет.
Если продолжить говорить языком метафор, то знание алгоритма того либо иного рефакторинга можно сравнить с умением счёта «в уме», а IDE со встроенными инструментами для рефакторинга — с калькулятором.
Использование калькулятора ускоряет расчёты, снижает количество ошибок. Но человек, не способный без вычислительной техники перемножить 5 на 10 — довольно неприглядное зрелище, согласитесь?

Использовать инструмент и при этом не пытаться понять, как он должен работать, для меня странно.
Но человек, не способный без вычислительной техники перемножить 5 на 10 — довольно неприглядное зрелище, согласитесь?
Смотря как часто этот человек сталкивается с арифметикой и сколько времени имеет на её освоение и какие способности к этому. За Пушкина, по слухам, всё считала его жена…

В 80% случаев — соглашусь, да, не особо приглядное…
2003 г., до-рефакторинговая эпоха в России… скорее всего устарело…
читается интересно, есть очень рациональные мысли
начинающим позновательно.

сам я РНР программист (бывший), но большинство книг про РНР (думаю 90% точно) я бы сегодня не посоветовал бы читать начинающему РНР программисту: учат говнокодить. Притом серьезно сносят мозг, переучивать тяжело и честно говоря не хочется.
БОльшая часть книг будет полезна программистам и на других языках.
согл… только что написал про РНР
Понимаю, что статья — перевод, но давайте теперь такую по C++!
Хотите знать сам язык — читайте классику, хотите знать всякие там паттерны, рефакторинги и архитектурные моменты — книги из данной статьи для этого тоже вполне пойдут.
Кроме выше добавленного я бы перенес Java Concurrency in Practice в середину, или я просто авторские понятия о градации уровня знаний вижу по-иному.
Если перенести JCiP в середину то сломается реальная картина нашего мира. Невероятное количество java программистов (вне зависимости от стажа) практически ничего не знают о многопоточности в java, либо какие-то базовые вещи, без которых даже в EE мире проблематично было бы существовать… ну например, что обычные коллекции не совсем хорошо работают при многопоточном доступе
какие-то базовые вещи, без которых даже в EE мире проблематично было бы существовать


Да ну? В EE мире в общем достаточно знать, что «что обычные коллекции не совсем хорошо работают при многопоточном доступе» и поэтому от многопоточности надо держаться как можно дальше (в том объёме, в котором требуется, она встроена в ядро) — в частности, не делать ничего статического мутабельного и в первую очередь не делать реальных синглетонов (отдавать синглетонность на откуп контейнеру).
Сейчас для еешники «сделать синглтон» — это проставить классу аннотацию.
Вот-вот, многопоточность и тут не требуется. А то в инете есть куча материалов на тему «как написать настоящий и потокобезопасный синглетон на Java» с двойными-тройными блокировками и хелпер-классами…
Автор Eclipse-guy, тоже показался OSGI притянутым за уши.
Ну дык, Java без IDE — извращение, а IDE у нас практически две с половиной: Eclipse, IDEA и наполовину NetBeans, стремящийся вобрать в себя все худшие черты MS Visual Studio и Embarcadero C++ Builder'а. Так что минимум на 40% OSGI притягивать стоит.
JDeveloper еще, но они вроде на OSGI переползают тоже.
Любому (не только Java) разработчику желательно поглядывать вокруг. Знать, например, что не Java`ой единой можно мозги разминать :) По-моему, как минимум следует попробовать динамический язык (JS, Ruby etc.) и функциональный (та же Scala, чтобы далеко от JVM не уходить).
Это уже даже не next level, это spin-off. Но в целом согласен. С этой же целью python подучиваю.
Сейчас ее читаю. Как по мне, если бы из нее вырезать две трети содержимого, отличная бы книга получилась.
хорошая книга
Java Performance (http://www.amazon.com/Java-Performance-Charlie-Hunt/dp/0137142528)

протым языком написано что и как работает
единственное что смущает это копии экрана в книге
думаю из-за этого книга «весит» 720 страниц
но если картинки пропускать то нормально
Не нравится мне подход «Должен прочитать каждый». Сейчас такой большой выбор книг, что любую книгу из списка можно заменить аналогом. Раздражает когда кто-то, прочитавший одну из книг, перестает считать за людей тех, кто, соответственно, не читал эту книгу.

Я не спорю: наверняка это замечательные книги, но сейчас уже не 1978 год, чтобы можно было сказать, что если ты не читал K&R, ты не знаешь Си. Более того: книжка C# design patterns с небольшими поправками отлично подойдет для Java.
Говорят что после появляется нездоровая привычка. Желание лизать шрамы ;-)
«The Pragmatic Programmer» пробовал читать в электричке. Неизменно навевает сон… Чего нельзя сказать о ХедФёрстовской книги по дизайн-паттернам…
А где рекомендация великого бессмертного и вечно актуального фундаментального труда «Code Complete»?
Судя по названиям, мне надо в первую очередь «Woking Effectively with Legacy Code», «Clean Code» и «Clean Coder»…
UFO just landed and posted this here
А как же «Язык программирования JAVA» от Арнольда и Гослинга?
Sign up to leave a comment.

Articles