Раздел с примерами как не следует писать программный код есть, так может следует иметь тему на форуме и с диаметрально противоположными примерами? Догадываюсь, что понятия «достойно и красиво» весьма субъективны, ну так дружелюбно и без насмешек ведь вполне можно обходиться с коллегами по изучению java-премудростей, не так ли, друзья?!
Идея родилась вчера, когда в комментариях к заданиям в новой версии javarush обнаружил для себя два познавательных и изящных кода (жаль, что авторам в тех разделах нельзя было «плюсануть» - создатели javarush эту возможность не предоставили). А если взять примеры из изобразительного искусства, музыки, литературы, то обучение строится на достойных примерах для подражания. Не встречалось что-то обучение мастерству на примерах китча, безвкусицы, пошлости. Даже в строгой шахматной аннотации используется восклицательный знак, когда следует неочевидный и весьма эффектный ход… В общем, я за подборку достойных и красивых примеров для подражания и в java-программировании.
P.S.
Созвучная некоторым изложенным мыслям статья: «Что такое красивый код, и как его писать?»
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Автор: Ruslan Zinovyev
Задание: Ввести с клавиатуры число. Определить, сколько в введенном числе четных цифр, а сколько нечетных.
Если число делится без остатка на 2 (т. е. остаток равен нулю), значит оно четное.
Увеличиваем на 1 счетчик четных цифр (статическая переменная even).
Иначе число нечетное, увеличиваем счетчик нечетных цифр (статическая переменная odd).
Вывести на экран сообщение: «Even: а Odd: b», где а — количество четных цифр, b — количество нечетных цифр.
Тип char в Java используется для хранения Unicode-символов, однако решение предложенное Ruslan Zinovyev напоминает, что его можно использовать и как целочисленный тип [0;65 536]. А зная, что юникод цифровых символов от 0 до 9 в шестнадцатеричной записи: 0030 до 0039, то и для разделения на четные-нечетные цифры он вполне подходит.
А зная, что юникод цифровых символов от 0 до 9 в шестнадцатеричной записи: 0030 до 0039
то есть в десятичной записи от 48 до 57.
Шаг 1. Вычитая 48 мы собственно и получим числа от 0 до 9.
Шаг 2. Числа от 0 до 9 в двоичной форме (раз уже в курсе про шестнадцатеричное представление чисел) записываются в виде:
0000 = 0
0001 = 1
0010 = 2
1001 = 9
Как видно у всех нечетных чисел младший бит всегда = 1. Используем это:
а можно и заранее сопоставить каждой цифре признак нечетности (1) или четности(0):
Искусство — слишком индивидуально и зависит от массы других факторов (время, социум,..._).
У Сергея Рахманинова солдаты в окно рояль выбросили, что не мешало восхищаться его музыкой в СССР спустя 20 лет.
По поводу красивого и достойного кода после второй половины (я про старую версию, в районе 30 уровня) — будут занятия и практика посвященные правильному оформлению кода (с точки зрения читаемости) и также рефакторингу (оптимизация с точки зрения повторного использования, ресурсовыделения и т.п.).
Если уже любопытно, можете посмотреть материалы на
refactoring.guru/
google.github.io/styleguide/javaguide.html
web.archive.org/web/20140228225807/http://www.oracle.com/technetwork/java/codeconventions-150003.pdf