0 added
0 removed
Original
2026-01-01
Modified
2026-03-10
1
<p>Теги: nullpointerexception, время, трассировка стека, дата</p>
1
<p>Теги: nullpointerexception, время, трассировка стека, дата</p>
2
<h3>Трассировка стека (Stack Trace)</h3>
2
<h3>Трассировка стека (Stack Trace)</h3>
3
<p>Выявление ошибок - одна из наиболее трудоемких частей процесса разработки на Джава. Этот процесс несколько упрощается с помощью трассировки стека. Stack Trace позволяет точно отслеживать, где именно в вашем проекте возникла ошибка либо исключение (exception).</p>
3
<p>Выявление ошибок - одна из наиболее трудоемких частей процесса разработки на Джава. Этот процесс несколько упрощается с помощью трассировки стека. Stack Trace позволяет точно отслеживать, где именно в вашем проекте возникла ошибка либо исключение (exception).</p>
4
<p>Пример кода:</p>
4
<p>Пример кода:</p>
5
<h3>NullPointerException</h3>
5
<h3>NullPointerException</h3>
6
<p>Исключения, которые возникают из-за null-значений (NullPointerException), нередко появляются, когда мы пытаемся вызвать метод у несуществующего объекта.</p>
6
<p>Исключения, которые возникают из-за null-значений (NullPointerException), нередко появляются, когда мы пытаемся вызвать метод у несуществующего объекта.</p>
7
<p>Возьмем для примера следующий код:</p>
7
<p>Возьмем для примера следующий код:</p>
8
<h3>Дата и время</h3>
8
<h3>Дата и время</h3>
9
<h4>System.currentTimeMillis либо System.nanoTime?</h4>
9
<h4>System.currentTimeMillis либо System.nanoTime?</h4>
10
<p>В Java существуют 2 стандартных способа проведения операций со временем, причем не всегда понятно, какой лучше выбрать.</p>
10
<p>В Java существуют 2 стандартных способа проведения операций со временем, причем не всегда понятно, какой лучше выбрать.</p>
11
<p>Начнем с метода System.currentTimeMillis(). Он возвращает в формате Long текущее количество миллисекунд с начала эры Unix. Точность находится в пределах от 1 до 15 тысячных долей секунды, что зависит от системы.</p>
11
<p>Начнем с метода System.currentTimeMillis(). Он возвращает в формате Long текущее количество миллисекунд с начала эры Unix. Точность находится в пределах от 1 до 15 тысячных долей секунды, что зависит от системы.</p>
12
<p>Что касается метода System.nanoTime(), то он имеет точность до одной наносекунды, возвращая текущее значение наиболее точного и доступного системе таймера.</p>
12
<p>Что касается метода System.nanoTime(), то он имеет точность до одной наносекунды, возвращая текущее значение наиболее точного и доступного системе таймера.</p>
13
<p>Какой тут можно сделать вывод? Метод System.currentTimeMillis() предпочтительнее использовать при отображении и синхронизации абсолютного времени, а метод System.nanoTime() больше подходит для измерения относительных интервалов времени.</p>
13
<p>Какой тут можно сделать вывод? Метод System.currentTimeMillis() предпочтительнее использовать при отображении и синхронизации абсолютного времени, а метод System.nanoTime() больше подходит для измерения относительных интервалов времени.</p>
14
<h4>Валидация даты из строки</h4>
14
<h4>Валидация даты из строки</h4>
15
<p>Когда надо достать объект Date из обычной строки, можно воспользоваться небольшим утилитным классом, приведенным ниже. Этот класс позаботится обо всех сложностях как валидации, так и преобразования строки в объект Date.</p>
15
<p>Когда надо достать объект Date из обычной строки, можно воспользоваться небольшим утилитным классом, приведенным ниже. Этот класс позаботится обо всех сложностях как валидации, так и преобразования строки в объект Date.</p>
16
<p>А вот пример использования:</p>
16
<p>А вот пример использования:</p>
17
<p>И вывод:</p>
17
<p>И вывод:</p>
18
<h2>Напутствие: несколько слов о чистоте кода</h2>
18
<h2>Напутствие: несколько слов о чистоте кода</h2>
19
<p>В крупных проектах первоочередное значение имеет не создание нового кода, а<strong>поддержка кода, который уже существует</strong>. А значит это следующее: очень важно правильно организовать код с самого начала. Поэтому, разрабатывая новое приложение, всегда помните о 3-х главных принципах чистого и поддерживаемого кода: 1) используйте паттерны проектирования; 2) не забывайте про принципы SOLID; 3) помните про правило 10-50-500 (в одном пакете не должно быть более 10 классов; каждый метод должен быть короче 50 строк, а каждый класс - короче 500 строк кода).</p>
19
<p>В крупных проектах первоочередное значение имеет не создание нового кода, а<strong>поддержка кода, который уже существует</strong>. А значит это следующее: очень важно правильно организовать код с самого начала. Поэтому, разрабатывая новое приложение, всегда помните о 3-х главных принципах чистого и поддерживаемого кода: 1) используйте паттерны проектирования; 2) не забывайте про принципы SOLID; 3) помните про правило 10-50-500 (в одном пакете не должно быть более 10 классов; каждый метод должен быть короче 50 строк, а каждый класс - короче 500 строк кода).</p>
20
<p>На этом все, удачной вам разработки!</p>
20
<p>На этом все, удачной вам разработки!</p>
21
<p><em>По материалам статьи "<a>Top 25 Java Tricks, Tips, and Best Practices</a>".</em></p>
21
<p><em>По материалам статьи "<a>Top 25 Java Tricks, Tips, and Best Practices</a>".</em></p>
22
22