Всім привіт, JavaRush спільнота! Сьогодні поговоримо про якість коду. Так-так, дорогі друзі. Ніхто не досконалий. До всіх колись приходить розуміння, що код міг би бути кращим… Але що робити в цій ситуації? Як мінімум почати досліджувати це питання. Якщо ви тут, значить тема вам цікава, тож поїхали. Сьогодні опишемо способи, за допомогою яких можна зробити свій код кращим і чистішим. Так, щоб не було в майбутньому соромно за свій код!..)) Всі ці методи допоможуть програмісту стати хорошим програмістом.
Хабре JavaRush: D, мої в тому числі. Слідкуйте за хорошими блогами та коментуйте пости, ділитесь своєю думкою.
1. Хочеш покращити свій код – читай чужий
Якщо хочете різко підвищити вміння програмувати, необхідно читати код, написаний іншими програмістами. Можна вірити у це, можна не вірити. Але якщо ризикнути, обіцяю: буде винагорода за витрачений час. Наприклад, не читати на Хабре, як працює HashMap, ArrayList, LinkedList і так далі, а почитати їхній код і розібратися самостійно. Наводжу список класів для прочитання:-
HashMap – найчастіші питання на співбесідах щодо нього. Можна вбити одразу кількох зайців: і код зрозуміти, і знання потрібні здобути.
-
ArrayList - той самий випадок, що і з HashMap. Там немає якихось складних речей, але почитати та розібратися справді варто.
-
String - чудовий приклад. Зрозуміти, чому ж він незмінний.
-
AtomicInteger - прикольний клас: там описаний процес, як атомарно виконувати операції над Integer об'єктами.
-
А далі — хоч усі класи поспіль…)
2. Дотримуйся Code Conventions — угод з написання коду
Угоди щодо написання коду – це набір рекомендацій, які розробляються командами девелоперів і включають рекомендації щодо стилю програмування та методів для кожного аспекту коду, який написано всередині компанії чи певного проекту. Ці угоди як правило специфічні для кожної мови програмування і охоплюють організацію файлів, відступи, коментарі, оголошення, оператори, прогалини, угоди про імена, методи та принципи програмування, правила програмування, передові методи архітектури і т. д. Основна перевага певних стандартів полягає у те, що код виглядає однаково і написаний в одному стилі. Це робить його більш читаним та допомагає програмістам розуміти код, написаний іншим програмістом. Якщо стандартам кодування слідуватимуть і послідовно застосовувати їх у процесі розробки, у майбутньому буде простіше підтримувати та розширювати код, реорганізовувати його та вирішувати конфлікти інтеграції. Угоди про код важливі для програмістів з низки причин:- 40%-80% вартості програмного забезпечення йде на його обслуговування;
- навряд чи будь-яке програмне забезпечення підтримується автором протягом усього його життя;
- Угоди про код покращують читання програмного забезпечення, дозволяючи програмістам швидше зрозуміти новий код.
3. Використовуй Code Review – перевірку коду іншими
Code review — один із найпотужніших інструментів для покращення коду. Чому? Тому що код переглянуть ті фахівці, які його не писали. А новий погляд дуже корисний. І найчастіше саме Code Review допомагає не допустити написання відверто страшного коду. Я знаю, що це не завжди можливо, тому що потрібно знайти ще одну людину, яка б захотіла займатися цим. Але це не означає, що цим інструментом не варто скористатися. Швидше навпаки: це привід знайти однодумців, яким також важливо покращити якість коду. До речі, хто забороняє знайти їх тут на JavaRush? У місці, де всі хочуть стати програмістами.4. Пиши Unit Tests – модульні тести
Безперечно, мій найулюбленіший з методів покращення коду — це написання модульних тестів. Причому що більше їх писати, то краще. У комп'ютерному програмуванні модульне тестування — це процес розробки програмного забезпечення, у якому найменша частина вихідного коду, що випробувана, звана модульною, тестується індивідуально і незалежно, щоб перевірити, чи працюють вони так, як очікувалося. Це допоможе вам виявити збої в алгоритмах та/або логіці до випуску коду. Оскільки модульне тестування потребує відповідної структури вашого коду, це означає, що код має бути розділений на дрібніші та сфокусованіші функції. Кожен з яких відповідає за одну операцію над набором даних, а не за великі функції, що виконують ряд різних операцій.Single Responsibility Principle …) Друга перевага написання добре протестованого коду полягає в тому, що можна запобігти майбутнім збоям при невеликих змінах у існуючій функціональності розриву коду. Коли відбудеться збій, модульні випробування скажуть, що було написано щось не так. На перший погляд витрати часу на написання модульних тестів під час розробки виглядають як додаткові витрати. Однак це заощадить час у майбутньому, який доведеться витратити на налагодження. Це має бути покроковий процес. Тому вперед і з піснею - пишемо тести на всі методи та класи :D5. Використовуй інструменти для покращення якості коду
Немає розробника, який би ніколи не помилявся. Зазвичай компілятор вловлює синтаксичні та арифметичні проблеми та виводить трасування стека. Але все ще можуть виникнути деякі проблеми, які компілятор не вловлює. Наприклад, неналежним чином реалізовані вимоги, неправильні алгоритми, неправильна структура коду або якісь потенційні проблеми, відомі спільноті з досвіду. Єдиний спосіб вловити такі помилки – попросити якогось старшого розробника перевірити ваш код. Такий підхід не є панацеєю і мало змінює. З кожним новим розробником у команді у вас має бути додаткова пара очей, які будуть дивитися на його код. Але, на щастя, є багато інструментів, які можуть допомогти вам контролювати якість коду. Я використовував у роботі над різними проектами Checkstyle, PMD, FindBugs, SonarQube. Є й інші. Всі вони зазвичай використовуються для аналізу якості та створення деяких корисних звітів. Найчастіше ці звіти публікуються серверами безперервної інтеграції, як-от Jenkins.6. Пишіть простий та зрозумілий код
Завжди пишіть простий, зрозумілий та логічний код. Люди схильні писати складний код довести свою здатність робити це. Простий, але логічний код завжди працює добре, призводить до меншої кількості проблем і більш розширюється. Хороший код – найкраща документація. Якщо з'явилася думка додати коментар, запитайте себе: Як я можу покращити код, щоб цей коментар не знадобився? » ~ Стів Макконнелл.7. Читайте документацію
Одна з важливих навичок хороших програмістів — читати багато документації. Нехай це будуть специфікації, JSR, документи API, навчальні посібники тощо. буд. Читання документів допомагає вам створити ту міцну основу, де ви найкраще програмуєте. Останнє, але не менш важливе: не порівнюйте себе з іншими Ваше порівняння себе з іншими призведе лише до негативних почуттів та нездорової конкуренції. У кожного свої сильні та слабкі сторони. Тому важливо знати їх та працювати з ними. Проаналізуйте себе, перерахуйте свої сильні сторони та працюйте над ними. Програмування це справжнє задоволення: насолоджуйтесь ним."Постійна одну людину - змінна іншу людину."
8. Стеж за цікавими блогерами
По всьому світу тисячі ентузіастів працюють над одними й тими самими технологіями та пишуть про них. Блоги часто пишуться самими програмістами, і більшість із них ділиться особистою думкою та досвідом. Можна побачити різні перспективи однієї і тієї ж технології у блогах. Можна бачити як добрі, так і погані технології в блогах. Як мінімум читайте статті на9. Читайте профільні книги
Ніщо не може замінити гарну книгу. Хороша книга навчить базовим поняттям у набагато простішій формі та застосовується до об'єктів реального світу. Їхні автори і самі великі програмісти. Читаючи книжки, можна навчитися на чужому досвіді. Пропоную прочитати Java. Ефективне програмування» Джошуа Блоха. У цій книзі представлено сімдесят вісім незамінних практичних правил програміста: робітники, найкращі рішення для задач програмування, з якими ви стикаєтеся щодня. У ній містяться найбільш практичні, авторитетні посібники, які варто використовувати для написання ефективних, добре розроблених програм. Якщо ви починаєте працювати з Java, не маючи досвіду програмування, ви можете прочитати книгу «Sams Teach Yourself Java 2 in 24 Hours». А щоб писати чистий код, є чудова книга "Чистий код Роберта Мартіна".10. Кодити! Кодити! Кодити!
Не можна стати хорошим програмістом, просто зазубривши книгу. Легко говорити про теоретичні концепції. Але дізнатися мовні обмеження або розробити найкращі практики можна лише тоді, коли пишеш код. Тому, щоб стати добрим програмістом, потрібно писати багато коду. Якщо ви новачок, почніть з написання програм для простих завдань, таких як ряди Фібоначчі, паліндром, трикутник Паскаля і т. д., а потім переходьте до більших завдань, таких як дерево двійкового пошуку і т. д. Якщо ви шукаєте онлайн- платформу для практики Java-програм, погляньте на Coding Ground . Більш того, можна пройти курс CS50 , переклад якого нам надав “самі знаєте хто” :DПідведемо підсумки
Не помиляється той, хто нічого не робить. Тому набираємось терпіння і як працьовитий японець відточуємо свої навички кодування. Для цього не забуваємо:- читати чужий код;
- проводити та просити, щоб провели Code Reivew;
- писати модульні випробування;
- використовувати інструменти для покращення коду;
- писати простий та зрозумілий код;
- читати документацію тих, хто зміг;
- стежити за цікавими програмістами;
- читати профільні книги;
- Кодити! Кодити! Кодити!
- підписатися на Романа на GitHub'e .
Корисні посилання
- 10 способів покращити свої навички програмування
- Один із простих способів покращити свої навички програмування — читати чужий код
- 11 Best Practices and Tools для Improve the Java Code Quality
- How to improve Java programming skill
- 10 Tips to Become a Better Java Developer
Ще мої статті
- Debug в Intellij IDEA: гайд для новачків
- Гайд зі створення клієнта для Skyscanner API та його публікації в jCenter та Maven Central [Частина 1]
- Створення системи моніторингу цін на авіаквитки: покрокове керівництво [Частина 1]
- Логування: що, як, де та чим? Як тестове завдання на співбесіду перетворилося на open-source бібліотеку
- Історія успіху. 20 годин програмування на тиждень, магістратура та особисте життя
- Як знайти роботу? Поради щодо розсилки резюме
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ