Java Developer
6.45K subscribers
235 photos
8 videos
12 files
279 links
MAKE JAVA GREAT AGAIN

Мемы: @java_memes
加入频道
Идентификаторы

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

Примеры:
AvgTemp count a4 $test isOk
Кстати, скоро запускаю марафон для желающих изучить основы Джавы.

Так что ставьте IntelliJ IDE, JDK, начинайте осваивать Git и скачивайте Шилдта https://yangx.top/java_developer/49
​​Test Last Development

Чтобы избежать ошибок при новых доработках разработчики пишут модульные тесты. Они позволяют изолированно проверить работу публичных методов классов.

TLD – подход, когда тесты пишутся в последнюю очередь - после написания кода, сборки и проверки приложения на работоспособность. То есть разработчик сначала проверяет вручную, что приложение работает как надо и не ломает существующие тесты. А потом пишет модульные тесты, которые защищают код от поломки из-за будущих доработок.

Минусы TLD. Если время на разработку ограничено, то модульные тесты могут быть и не написаны. Разработчик проверил, что приложение работает и запушил. Таким образом не развивается дисциплина написания тестов. Плюс когда тесты пишутся в конце, дизайн кода может стать таким, что код будет неудобно покрывать модульными тестами. А это приводит к рефакторингу и дополнительным затратам времени.
Literals

Литералы — это константные значения конкретного типа
100 — целочисленный литерал
98.3 — литерал с плавающей точкой
'X' — символьный литерал
"This is String" — строковый литерал
​​Test Driven Development

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

Коротко, TDD-процесс состоит из элементов, которые повторяются в цикле: написание теста, написание кода и рефакторинг.

Такой подход заставляет писать код мысля иначе. Мы знаем постановку задачи. Заранее придумали общий верхнеуровневый алгоритм решения задачи и выделили список требований к функционалу. Но над алгоритмами низкого уровня пока ещё не думали. Итак, наши требования группируются по некоторым признакам. Эти группы являются будущими компонентами программы.

Мы берём первую группу требований и проектируем интерфейс. Берём требование, пишем тест, в тесте определяем несуществующий метод несуществующего класса. Далее с помощью среды разработки устраняем очевидные проблемы, создаём интерфейс, метод и реализующий его класс. Запускаем тест. Тест падает, поскольку вызываемый метод не делает пока ничего. Если тест прошёл, значит он написан неверно. Дорабатываем тест пока он не будет падать при запуске. Такой тест называется красным.

Далее наша задача написать минимум кода, чтобы красный тест стал зелёным. Пишем код, проверяем тест и запускаем остальные тесты. Если он зелёный, то переходим к следующей стадии – рефакторингу и редизайну кода. Потом снова запускаем тесты. Упало – исправляем. Далее переходим к следующему требованию – снова красный тест, минимум кода чтобы он стал зелёным, рефакторинг, проверка. И так далее.
Думай как программист

Системное подход решения задач - это крутейший навык в любой области. Есть проблемы, которые часто повторяются. Системный подход помогает найти такое решение, которое избавляет от этих проблем. На Хабре по этой теме вышел перевод статьи "Уроки по решению задач" https://habr.com/post/422543/.

Что нужно делать, когда сталкиваешься с новой задачей:
1. Докапывайтесь до сути задачи
Бывает, долго сидишь над задачей и не знаешь, как её решить. Только начинаешь рассказывать её коллеге - решение тут же приходит само. Поэтому важно описать задачу, нарисовать схему или объяснить кому-то простым языком.

2. Планируйте решение
Нет ничего лучше расписанного плана решения на бумажке. Когда будете делать план, задайте себе вопросы типа: "если взять X, то какие шаги нужно сделать, чтобы получить Y".

3. Декомпозируйте
Декомпозиция - это разделение одной большой задачи на несколько маленьких простых задач. Легче решить 5 задачек и объединить их, чем обдумывать одну огромную. Бывает, к такой задаче даже страшно притронуться.

4. Дебажьте, если застряли
Проверяйте каждый шаг, чтобы найти ошибку. Если это не помогает, то вернитесь на шаг назад и попробуйте другое решение. Ещё хороший вариант - найти решение схожей задачи, разобрать его и заюзать в своих целях.
Что посмотреть на выходных — 8

Круто, когда интервью русских разработчиков набирают десятки тысяч просмотров. А еще круче, когда эти интервью берёт девушка. Короч наслаждайтесь:

Интервью с разработчиком из YouTube
https://youtu.be/AtzHvKYWRM8

Как живут программисты в США
https://youtu.be/8J91m5oGFDI

Интервью с основателем школы QA в кремниевой долине
https://youtu.be/oSDo1VMtcDI

Следить за новыми видосами можно здесь @progblogtv

#чтопосмотреть
Онлайн-компилятор

Когда очень хочется проверить решение задачки, а компа с IDE под рукой нет
https://ideone.com/
https://www.jdoodle.com/
Давно не было голосовалок. От меня смайл с сердечками за Джаву
Как вы относитесь к Java?
​​Comments

Комментарии — это строки в коде, которые не влияют на выполнении программы.

Однострочный комментарий
// single line comment

Многострочный комментарий
/*
  /*not compile*/
  comment
*/

JavaDoc
/**
* JavaDoc comment
* @author zybkin
*/

Попробуйте напечатать и запустить код с картинки
​​Зарплаты в IT

Средние зарплаты в IT из октябрьского номера журнала Зарплатомер
​​Keywords

— ключевые слова нельзя использовать в качестве имён переменных, методов или классов
const и goto зарезервированы, но не используются
— на скрине все ключевые слова, которые есть в Джаве
Как освоить Git

Больше всего проблем у начинающих разработчиков с Гитом. Но в разработке без него никуда. Вот крутой интерактивный учебник по Гиту https://githowto.com/ru — лучше пока не видел. Кому нужно срочно вникнуть в основы, советую пройти первые 10 уроков.

Что такое Гит
https://yangx.top/java_developer/15

Ещё ресурсы по Гиту
https://yangx.top/java_developer/21
5 ошибок при изучении программирования

Отсутствие цели
Правильная цель мотивирует, и благодаря ей вы видите, куда движетесь. Думаю, цель «устроиться на работу Java Junior через полгода» должна мотивировать. А если написать подробный план, то будет видно, где вы сейчас, и куда нужно двигаться.

Отсутствие плана
Нет плана — нет движения в нужном направлении. Нужно понимать, какие этапы и шаги необходимо пройти, чтобы достигнуть цели. Например, вы знаете, что в этом месяце разбираетесь со Spring: проходите курс и читатете Spring in Action. В следующем приступаете к изучению Hibernate.

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

Изучение только теории
Программирование — это навык. А при изучении навыка основы сначала осваиваешь руками, а потом уже добиваешь теорией. Поэтому не нужно жестко закапываться в теорию, важно постоянно кодить. Желательно каждый день.

Перфекционизм
Когда решаешь задачу, то пытаешься её сделать идеально оптимально и красиво. Но без опыта с первого раза этого невозможно. Рекомендую такой принцип — сперва делаем задачу, чтобы она хотя бы работала. После рефакторим код — делаем так, чтобы программа выглядела красиво. И в конце оптимизируем.
Joker 2018

Java Dev тут недавно стал информационным партнёром самой мощной конференции по Java в России “Joker 2018”. Это значит, что логотип канала красуется на сайте конференции во вкладке спонсоры, а я буду о ней здесь рассказывать.

Плюс организаторы сделали специальный промокод для друзей канала. Так что, кто собирается пойти на конференцию, вбейте на сайте JavaDev и получите скидку 1000р.

Кстати, я уже купил билет и думаю вести 19-20 октября здесь фотоотчет. Стоит ли рассказывать во время конференции о том, что на ней происходит?
Что посмотреть на выходных — 9

Иван Осипов — «Kotlin DSL: теория и практика». Доклад о том, как комфортно писать компактные тесты на Kotlin
https://youtu.be/q_UM1EY2S5g

Доклад «Мавен против Грейдла»
https://youtu.be/LScps3Dl7Vw

Один день глазами программиста Кремниевой долины
https://youtu.be/hWFDujYzvbI

#чтопосмотреть