0 added
0 removed
Original
2026-01-01
Modified
2026-03-10
1
<p>Теги: java, try/catch, признаки хорошего кода, признаки плохого кода</p>
1
<p>Теги: java, try/catch, признаки хорошего кода, признаки плохого кода</p>
2
<p>По статистике каждую минуту создаются тысячи строк кода во всем мире. Однако не всегда он одинаково качественен. Что же отличает хороший код от плохого?</p>
2
<p>По статистике каждую минуту создаются тысячи строк кода во всем мире. Однако не всегда он одинаково качественен. Что же отличает хороший код от плохого?</p>
3
<p>Во-первых, хороший код - это как анекдот, смысл которого не нужно разъяснять. Он понятен без лишних слов, не требует комментариев и чтения документации. Во-вторых, хороший код можно сравнить с грамотно написанным учебником, когда всё удобно и логично разбито на главы и каждая из них посвящена конкретной теме. Так и с кодом - каждая частица должна делать строго одну работу. И если она делает её хорошо, это позволяет следующей частице кода выполнять хорошо свою.</p>
3
<p>Во-первых, хороший код - это как анекдот, смысл которого не нужно разъяснять. Он понятен без лишних слов, не требует комментариев и чтения документации. Во-вторых, хороший код можно сравнить с грамотно написанным учебником, когда всё удобно и логично разбито на главы и каждая из них посвящена конкретной теме. Так и с кодом - каждая частица должна делать строго одну работу. И если она делает её хорошо, это позволяет следующей частице кода выполнять хорошо свою.</p>
4
<h2>Итак, признаки хорошего кода:</h2>
4
<h2>Итак, признаки хорошего кода:</h2>
5
<ul><li>он выглядит умным, но не слишком;</li>
5
<ul><li>он выглядит умным, но не слишком;</li>
6
<li>используемые алгоритмы оптимальны и по скорости, и по удобочитаемости;</li>
6
<li>используемые алгоритмы оптимальны и по скорости, и по удобочитаемости;</li>
7
<li>можно вернуться к написанию кода спустя несколько дней (например, после выходных) и сразу продолжить работу, не затрачивая мучительные часы на переосмысливание уже написанного;</li>
7
<li>можно вернуться к написанию кода спустя несколько дней (например, после выходных) и сразу продолжить работу, не затрачивая мучительные часы на переосмысливание уже написанного;</li>
8
<li>классы, функции и переменные названы грамотно и продуманно, то есть не нужно постоянно напрягать мозг, зачем они нужны;</li>
8
<li>классы, функции и переменные названы грамотно и продуманно, то есть не нужно постоянно напрягать мозг, зачем они нужны;</li>
9
<li>используются короткие методы, которые идеально выполняют одну задачу;</li>
9
<li>используются короткие методы, которые идеально выполняют одну задачу;</li>
10
<li>Unit-тесты пишутся просто и без каких-либо проблем;</li>
10
<li>Unit-тесты пишутся просто и без каких-либо проблем;</li>
11
<li>код является модульным, то есть вы можете тестировать одни его части независимо от других;</li>
11
<li>код является модульным, то есть вы можете тестировать одни его части независимо от других;</li>
12
<li>код нагляден и понятен не только вам, но и вашим коллегам, которые захотят в него заглянуть.</li>
12
<li>код нагляден и понятен не только вам, но и вашим коллегам, которые захотят в него заглянуть.</li>
13
</ul><h2>А теперь признаки плохого кода:</h2>
13
</ul><h2>А теперь признаки плохого кода:</h2>
14
<ul><li>комментариев слишком много и они чересчур длинны;</li>
14
<ul><li>комментариев слишком много и они чересчур длинны;</li>
15
<li>код не отличается гибкостью, его сложно поддерживать и модифицировать;</li>
15
<li>код не отличается гибкостью, его сложно поддерживать и модифицировать;</li>
16
<li>используются слишком длинные, а порой даже гигантские методы, состоящие из нескольких подзадач, которые не разбиваются на части;</li>
16
<li>используются слишком длинные, а порой даже гигантские методы, состоящие из нескольких подзадач, которые не разбиваются на части;</li>
17
<li>если вы меняете имплементацию одного метода, не обойтись и без внесения изменений в остальные;</li>
17
<li>если вы меняете имплементацию одного метода, не обойтись и без внесения изменений в остальные;</li>
18
<li>применяются очень большие<strong>try/catch</strong>-конструкции;</li>
18
<li>применяются очень большие<strong>try/catch</strong>-конструкции;</li>
19
<li>код содержит повторы, в нём встречаются идентичные либо почти идентичные блоки;</li>
19
<li>код содержит повторы, в нём встречаются идентичные либо почти идентичные блоки;</li>
20
<li>вы не можете придумать хорошие названия для методов либо они содержат слова "OR" и "AND";</li>
20
<li>вы не можете придумать хорошие названия для методов либо они содержат слова "OR" и "AND";</li>
21
<li>код не решает поставленных задач или решает их частично.</li>
21
<li>код не решает поставленных задач или решает их частично.</li>
22
</ul><p>В результате плохой код превращается в плохо написанный учебник. В нём постоянно рассказывается об одних и тех же событиях, а все главы ссылаются друг на друга. При этом автор часто противоречит сам себе.</p>
22
</ul><p>В результате плохой код превращается в плохо написанный учебник. В нём постоянно рассказывается об одних и тех же событиях, а все главы ссылаются друг на друга. При этом автор часто противоречит сам себе.</p>
23
<p><strong>Хотите научиться писать действительно хороший код?</strong>Записывайтесь на курс<a>"Разработчик Java"</a>в OTUS!</p>
23
<p><strong>Хотите научиться писать действительно хороший код?</strong>Записывайтесь на курс<a>"Разработчик Java"</a>в OTUS!</p>
24
<p><em>А какие вы знаете признаки хорошего и плохого кода? Пишите в комментариях!</em></p>
24
<p><em>А какие вы знаете признаки хорошего и плохого кода? Пишите в комментариях!</em></p>
25
25