Головне питання програмування, рефакторінгу і всього такого

Покращимо якість коду!
Я написав маленьку електронну книгу в якій розглядаю питання як зробити код краще. Книга орієнтована на Сі/Сі++ програмістів, але буде цікава і розробників, що використовують інші мови. Формат книги не підходить для мого коханого Хабра, але мені цікаво отримати зворотний зв'язок і обговорити думки, викладені у статті. Тому я вирішив розмістити тут тільки анонс, а з самою статтею можна ознайомитися тут. І запрошую в коментарі для обговорення.

Сподіваюся вам сподобався цей збірник порад. Звичайно, попередити про всіх способах написати програму неправильно неможливо, та в цьому й немає сенсу. Моєю метою було застерегти програміста і розвинути в ньому почуття небезпеки. Можливо, коли програміст в черговий раз зіткнеться з чимось незрозумілим, він згадає про моїх настановах і не стане поспішати. Іноді кілька хвилин вивчення документації або написання більш простого/ясного коду дозволить уникнути внесення прихованої помилки, яка потім кілька років отруювала життя користувачам і колегам.

Ось 42 теми, які я розглядаю:
  1. Не беріть на себе роботу компілятора
  2. 0, це не 1
  3. Один раз скопіюй, кілька разів перевір
  4. Бійтеся оператора ?: і укладайте його в круглі дужки
  5. Використовуйте доступні інструменти для перевірки коду
  6. Перевірте всі місця, де покажчик явно приводиться до цілочисельним типами
  7. Не викликайте функцію alloca() всередині циклів
  8. Пам'ятайте, що вилучення у деструкторе — це небезпечно
  9. Використовуйте для позначення термінального нуля літерал '\0'
  10. Намагайтеся «не дрібнити» при використанні #ifdef
  11. Не скупіться на рядках коду
  12. Займаючись Copy-Paste, зосередьтеся в кінці роботи
  13. Вирівнюйте однотипний код «таблицею»
  14. Пам'ятайте: не завжди достатньо компілятора і хорошого стилю кодування
  15. Якщо є можливість, починайте використовувати enum class.
  16. «Дивіться як я можу» — неприпустимо в програмуванні
  17. Використовуйте спеціалізовані функції для затирання в пам'яті приватних даних
  18. Знання, отримані при роботі з однією мовою, не завжди застосовні до іншої мови
  19. Як правильно викликати один конструктор з іншого
  20. Перевірки про досягнення кінця файлу (ФАЙЛУ) може бути недостатньо
  21. Перевіряйте ознака досягнення кінця файлу (EOF) правильно
  22. Не використовуйте #pragma warning(default: X)
  23. Обчислюйте довжину рядкового літерала автоматично
  24. Ідентифікатори override і final повинні стати вашими новими друзями
  25. не порівнюйте 'this' з nullptr
  26. Підступний VARIANT_BOOL
  27. Підступні BSTR рядка
  28. Не робіть макрос там, де можна зробити звичайну функцію
  29. Використовуйте для ітераторів префіксний оператор инкремента (++i) замість постфиксного (i++)
  30. Visual C++ і функція wprintf()
  31. C і C++ масиви не передаються за значенням
  32. Бійтеся printf
  33. Ніколи не разыменовывайте нульові покажчики
  34. Undefined behavior ближче, ніж ви думаєте
  35. Додаючи в enum нову константу, не забуваємо поправити оператори switch
  36. Якщо на вашому комп'ютері відбуваються магічні події, перевірте пам'ять
  37. Бійтеся оператора continue всередині do {… } while(...)
  38. З сьогоднішнього дня використовуйте nullptr замість NULL
  39. Чому некоректний код іноді працює
  40. Вбудуйте статичний аналіз коду
  41. чиніть опір додавання в проект нових бібліотек
  42. Не давайте функцій назва «empty»
Отже, посилання на статтю: http://www.viva64.com/ru/b/0391/

Англійською мовою: http://www.viva64.com/en/b/0391/

Я передбачаю, що може ненавмисно трапитися Хаброэффект, тому хочу заздалегідь підстрахуватися. Тому викладаю на Яндекс Диск в форматі PDF:

Російська: https://yadi.sk/i/RCHauHFBr2cSs

Англійська: https://yadi.sk/i/u11TL5ccr2cSf

P. S. Я спеціально не розміщую текст книги на інших сайтах. Досить багато людей повідомляє про недоліки в тексті, і, якщо текст буде опубліковано в кількох місцях, я замучаюсь вносити виправлення. Коли текст стабілізується, я розміщу його ще де-то в різних форматах. Поки ж прошу поставитися з розумінням. І ще прохання. Про помічені ляпи прошу писати мені на пошту (karpov [@] viva64.com), а не в коментарях.

Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.