JavaRush /Java блог /Random UA /10 способів покращити код, перевірених на особистому досв...
Roman Beekeeper
35 рівень

10 способів покращити код, перевірених на особистому досвіді

Стаття з групи Random UA
Всім привіт, JavaRush спільнота! 10 способів покращити код, перевірених на особистому досвіді. Сьогодні поговоримо про якість коду. Так-так, дорогі друзі. Ніхто не досконалий. До всіх колись приходить розуміння, що код міг би бути кращим… Але що робити в цій ситуації? Як мінімум почати досліджувати це питання. Якщо ви тут, значить тема вам цікава, тож поїхали. Сьогодні опишемо способи, за допомогою яких можна зробити свій код кращим і чистішим. Так, щоб не було в майбутньому соромно за свій код!..)) Всі ці методи допоможуть програмісту стати хорошим програмістом.

1. Хочеш покращити свій код – читай чужий

10 способів покращити код, перевірених на особистому досвіді - 2Якщо хочете різко підвищити вміння програмувати, необхідно читати код, написаний іншими програмістами. Можна вірити у це, можна не вірити. Але якщо ризикнути, обіцяю: буде винагорода за витрачений час. Наприклад, не читати на Хабре, як працює HashMap, ArrayList, LinkedList і так далі, а почитати їхній код і розібратися самостійно. Наводжу список класів для прочитання:
  1. HashMap – найчастіші питання на співбесідах щодо нього. Можна вбити одразу кількох зайців: і код зрозуміти, і знання потрібні здобути.

  2. ArrayList - той самий випадок, що і з HashMap. Там немає якихось складних речей, але почитати та розібратися справді варто.

  3. String - чудовий приклад. Зрозуміти, чому ж він незмінний.

  4. AtomicInteger - прикольний клас: там описаний процес, як атомарно виконувати операції над Integer об'єктами.

  5. А далі — хоч усі класи поспіль…)

Якщо говорити про щось серйозніше, звичайно, варто почитати код від компанії Pivotal. Ці хлопці написали найпопулярнішу екосистему в Java-світі. Їх код точно вартий того, щоб почитати. Тому раджу почати зі Spring Core . Читання незнайомого вихідного коду – це складна, але дуже корисна робота.

2. Дотримуйся Code Conventions — угод з написання коду

10 способів покращити код, перевірених на особистому досвіді - 3Угоди щодо написання коду – це набір рекомендацій, які розробляються командами девелоперів і включають рекомендації щодо стилю програмування та методів для кожного аспекту коду, який написано всередині компанії чи певного проекту. Ці угоди як правило специфічні для кожної мови програмування і охоплюють організацію файлів, відступи, коментарі, оголошення, оператори, прогалини, угоди про імена, методи та принципи програмування, правила програмування, передові методи архітектури і т. д. Основна перевага певних стандартів полягає у те, що код виглядає однаково і написаний в одному стилі. Це робить його більш читаним та допомагає програмістам розуміти код, написаний іншим програмістом. Якщо стандартам кодування слідуватимуть і послідовно застосовувати їх у процесі розробки, у майбутньому буде простіше підтримувати та розширювати код, реорганізовувати його та вирішувати конфлікти інтеграції. Угоди про код важливі для програмістів з низки причин:
  • 40%-80% вартості програмного забезпечення йде на його обслуговування;
  • навряд чи будь-яке програмне забезпечення підтримується автором протягом усього його життя;
  • Угоди про код покращують читання програмного забезпечення, дозволяючи програмістам швидше зрозуміти новий код.
Щиро кажучи, я великий шанувальник стандартів кодування. Для мене є сенс проводити час, обговорюючи і сперечаючись про них, оскільки це цінне заняття, яке заощадить ваш час та зусилля в майбутньому. Code Conventions повинні часто переглядатися. Правила можна перевести з обов'язкового на необов'язкові і навпаки. Якщо деякі з них не працюють належним чином, їх необхідно переробити або видалити з принципів.

3. Використовуй Code Review – перевірку коду іншими

Code review — один із найпотужніших інструментів для покращення коду. 10 способів покращити код, перевірених на особистому досвіді - 4Чому? Тому що код переглянуть ті фахівці, які його не писали. А новий погляд дуже корисний. І найчастіше саме Code Review допомагає не допустити написання відверто страшного коду. Я знаю, що це не завжди можливо, тому що потрібно знайти ще одну людину, яка б захотіла займатися цим. Але це не означає, що цим інструментом не варто скористатися. Швидше навпаки: це привід знайти однодумців, яким також важливо покращити якість коду. До речі, хто забороняє знайти їх тут на JavaRush? У місці, де всі хочуть стати програмістами.

4. Пиши Unit Tests – модульні тести

10 способів покращити код, перевірених на особистому досвіді - 5Безперечно, мій найулюбленіший з методів покращення коду — це написання модульних тестів. Причому що більше їх писати, то краще. У комп'ютерному програмуванні модульне тестування — це процес розробки програмного забезпечення, у якому найменша частина вихідного коду, що випробувана, звана модульною, тестується індивідуально і незалежно, щоб перевірити, чи працюють вони так, як очікувалося. Це допоможе вам виявити збої в алгоритмах та/або логіці до випуску коду. Оскільки модульне тестування потребує відповідної структури вашого коду, це означає, що код має бути розділений на дрібніші та сфокусованіші функції. Кожен з яких відповідає за одну операцію над набором даних, а не за великі функції, що виконують ряд різних операцій.Single Responsibility Principle …) Друга перевага написання добре протестованого коду полягає в тому, що можна запобігти майбутнім збоям при невеликих змінах у існуючій функціональності розриву коду. Коли відбудеться збій, модульні випробування скажуть, що було написано щось не так. На перший погляд витрати часу на написання модульних тестів під час розробки виглядають як додаткові витрати. Однак це заощадить час у майбутньому, який доведеться витратити на налагодження. Це має бути покроковий процес. Тому вперед і з піснею - пишемо тести на всі методи та класи :D

5. Використовуй інструменти для покращення якості коду

10 способів покращити код, перевірених на особистому досвіді - 6Немає розробника, який би ніколи не помилявся. Зазвичай компілятор вловлює синтаксичні та арифметичні проблеми та виводить трасування стека. Але все ще можуть виникнути деякі проблеми, які компілятор не вловлює. Наприклад, неналежним чином реалізовані вимоги, неправильні алгоритми, неправильна структура коду або якісь потенційні проблеми, відомі спільноті з досвіду. Єдиний спосіб вловити такі помилки – попросити якогось старшого розробника перевірити ваш код. Такий підхід не є панацеєю і мало змінює. З кожним новим розробником у команді у вас має бути додаткова пара очей, які будуть дивитися на його код. Але, на щастя, є багато інструментів, які можуть допомогти вам контролювати якість коду. Я використовував у роботі над різними проектами Checkstyle, PMD, FindBugs, SonarQube. Є й інші. Всі вони зазвичай використовуються для аналізу якості та створення деяких корисних звітів. Найчастіше ці звіти публікуються серверами безперервної інтеграції, як-от Jenkins.

6. Пишіть простий та зрозумілий код

10 способів покращити код, перевірених на особистому досвіді - 7Завжди пишіть простий, зрозумілий та логічний код. Люди схильні писати складний код довести свою здатність робити це. Простий, але логічний код завжди працює добре, призводить до меншої кількості проблем і більш розширюється. Хороший код – найкраща документація. Якщо з'явилася думка додати коментар, запитайте себе: Як я можу покращити код, щоб цей коментар не знадобився? » ~ Стів Макконнелл.

7. Читайте документацію

10 способів покращити код, перевірених на особистому досвіді - 8Одна з важливих навичок хороших програмістів — читати багато документації. Нехай це будуть специфікації, JSR, документи API, навчальні посібники тощо. буд. Читання документів допомагає вам створити ту міцну основу, де ви найкраще програмуєте. Останнє, але не менш важливе: не порівнюйте себе з іншими Ваше порівняння себе з іншими призведе лише до негативних почуттів та нездорової конкуренції. У кожного свої сильні та слабкі сторони. Тому важливо знати їх та працювати з ними. Проаналізуйте себе, перерахуйте свої сильні сторони та працюйте над ними. Програмування це справжнє задоволення: насолоджуйтесь ним.

"Постійна одну людину - змінна іншу людину."

Алан Дж. Перліс

8. Стеж за цікавими блогерами

10 способів покращити код, перевірених на особистому досвіді - 9По всьому світу тисячі ентузіастів працюють над одними й тими самими технологіями та пишуть про них. Блоги часто пишуться самими програмістами, і більшість із них ділиться особистою думкою та досвідом. Можна побачити різні перспективи однієї і тієї ж технології у блогах. Можна бачити як добрі, так і погані технології в блогах. Як мінімум читайте статті на Хабре JavaRush: D, мої в тому числі. Слідкуйте за хорошими блогами та коментуйте пости, ділитесь своєю думкою.

9. Читайте профільні книги

10 способів покращити код, перевірених на власному досвіді - 10Ніщо не може замінити гарну книгу. Хороша книга навчить базовим поняттям у набагато простішій формі та застосовується до об'єктів реального світу. Їхні автори і самі великі програмісти. Читаючи книжки, можна навчитися на чужому досвіді. Пропоную прочитати Java. Ефективне програмування» Джошуа Блоха. У цій книзі представлено сімдесят вісім незамінних практичних правил програміста: робітники, найкращі рішення для задач програмування, з якими ви стикаєтеся щодня. У ній містяться найбільш практичні, авторитетні посібники, які варто використовувати для написання ефективних, добре розроблених програм. Якщо ви починаєте працювати з Java, не маючи досвіду програмування, ви можете прочитати книгу «Sams Teach Yourself Java 2 in 24 Hours». А щоб писати чистий код, є чудова книга "Чистий код Роберта Мартіна".

10. Кодити! Кодити! Кодити!

Не можна стати хорошим програмістом, просто зазубривши книгу. 10 способів покращити код, перевірених на особистому досвіді - 11Легко говорити про теоретичні концепції. Але дізнатися мовні обмеження або розробити найкращі практики можна лише тоді, коли пишеш код. Тому, щоб стати добрим програмістом, потрібно писати багато коду. Якщо ви новачок, почніть з написання програм для простих завдань, таких як ряди Фібоначчі, паліндром, трикутник Паскаля і т. д., а потім переходьте до більших завдань, таких як дерево двійкового пошуку і т. д. Якщо ви шукаєте онлайн- платформу для практики Java-програм, погляньте на Coding Ground . Більш того, можна пройти курс CS50 , переклад якого нам надав “самі знаєте хто” :D

Підведемо підсумки

Не помиляється той, хто нічого не робить. Тому набираємось терпіння і як працьовитий японець відточуємо свої навички кодування. Для цього не забуваємо:
  • читати чужий код;
  • проводити та просити, щоб провели Code Reivew;
  • писати модульні випробування;
  • використовувати інструменти для покращення коду;
  • писати простий та зрозумілий код;
  • читати документацію тих, хто зміг;
  • стежити за цікавими програмістами;
  • читати профільні книги;
  • Кодити! Кодити! Кодити!
  • підписатися на Романа на GitHub'e .

Корисні посилання

Ще мої статті

Коментарі
ЩОБ ПОДИВИТИСЯ ВСІ КОМЕНТАРІ АБО ЗАЛИШИТИ КОМЕНТАР,
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ