Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Мини электронная книга: учитесь как избежать ошибок на готовых примерах.
|
|||
|---|---|---|---|
|
#18+
Предлагаю вашему вниманию небольшую электронную книгу: Главный вопрос программирования, рефакторинга и всего такого . Книга ориентирована на Си/Си++ программистов, но будет интересна и разработчикам, использующим другие языки. Отличие этой книги от других заключается в том, что она основывается на разборе настоящих, а не теоретических случаев. В начале каждой главы приводится ошибка, найденная в реальном приложении, а затем рассматриваются различные советы, как такую ошибку можно было бы избежать. Рассмотренные вопросы помогут читателям улучшить свой стиль написания кода и усовершенствовать стандарт кодирования, используемый в команде. В книге рассматриваются 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. Проверки о достижении конца файла (EOF) может быть недостаточно 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" Заключение Для тех, кому удобней читать текст в формате PDF на английском, можно воспользоваться следующей ссылкой: https://yadi.sk/i/zKHIOS84r87nk? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2016, 14:57 |
|
||
|
Мини электронная книга: учитесь как избежать ошибок на готовых примерах.
|
|||
|---|---|---|---|
|
#18+
el_programmerПроверки о достиженииПоправьте, а то не по-русски получилось. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2016, 15:03 |
|
||
|
Мини электронная книга: учитесь как избежать ошибок на готовых примерах.
|
|||
|---|---|---|---|
|
#18+
el_programmerДля тех, кому удобней читать текст в формате PDF на английском, можно воспользоваться следующей ссылкой: https://yadi.sk/i/zKHIOS84r87nk? А можно в формате PDF но на русском? не ПДФ в имени файла, а чтобы текст в нем был переведен, код можно оставить с нетронутыми virgin комментариями... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2016, 15:19 |
|
||
|
Мини электронная книга: учитесь как избежать ошибок на готовых примерах.
|
|||
|---|---|---|---|
|
#18+
ГомункулА можно в формате PDF но на русском? https://yadi.sk/i/LKkWupFjr5WzR Взято тут https://habrahabr.ru/company/pvs-studio/blog/281719/ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2016, 15:26 |
|
||
|
Мини электронная книга: учитесь как избежать ошибок на готовых примерах.
|
|||
|---|---|---|---|
|
#18+
Dima TГомункулА можно в формате PDF но на русском? https://yadi.sk/i/LKkWupFjr5WzR Взято тут https://habrahabr.ru/company/pvs-studio/blog/281719/ мучас грасиас! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2016, 15:30 |
|
||
|
Мини электронная книга: учитесь как избежать ошибок на готовых примерах.
|
|||
|---|---|---|---|
|
#18+
здорово, очень интересно. проверю, как там viva для Linux... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2016, 19:31 |
|
||
|
Мини электронная книга: учитесь как избежать ошибок на готовых примерах.
|
|||
|---|---|---|---|
|
#18+
Насколько я понимю, многие советы являются толкованием месседжей PVS-Studio. Я тоже подобным занимался когда описывал code-style agreement для для команды, (наполовину на основе сообщений от FindBug). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2016, 19:46 |
|
||
|
|

start [/forum/topic.php?fid=57&gotonew=1&tid=2018518]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
34ms |
get topic data: |
10ms |
get first new msg: |
8ms |
get forum data: |
3ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
| others: | 12ms |
| total: | 145ms |

| 0 / 0 |
