HTML Diff
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