Умеете ли Вы писать код без ошибок?
Внимательно просмотрел некоторые сообщения на форуме, которые касались синтаксических ошибок или ошибок в ходе компиляции. Когда мы используем какую-либо программу, иногда мы имеем дело с крешами или зависаниями. Используете ли вы какие-то методики или правила написания кода, что бы избежать ошибок при работе Вашей программы?
|
код без ошибок не умеет писать никто.Абсолютно никто. Но для начала, для новичков, весь код можно обрамлять через try...catch... Т.е. в случае ошибки программы не вылетает, а выдает заранее сформированное сообщение об ошибке. Таким образом выявляется 90% ошибок программы.
А впоследствии, когда приходит опыт, уже знаешь, куда смотреть, где что проверять и т.д. Хотя, как говорится, "100%-ную защиту от дурака" создать тяжело. Всегда найдутся те, кто нажмет что то так, как, по твоему мнению, сделать невозможно :) |
Цитата:
Методика проверки - скомпилировать:) Цитата:
Основная методика защиты: 1. проверка корректности входных данных 2. проверка доступности ресурсов (например, доступность файла) 3. проверка указателей на NULL (и, как оборотная строна, присвоение NULL всем указателям, которые пусты) 4. проверка алгоритмов на сходимость Хорошее средство - внимательное чтение кода.:) Вроде основное сказал, вспомню еще - добавлю.:) |
Я бы добавил ещё одно: проверка предельных случаев.
|
Цитата:
|
Цитата:
Благодарю Вас за ответы. Особенно мне понравился ответ PhilB. Сразу чувствуется, что он имел дело с этим в своей повседневной работе. Iska "проверка предельных случаев" - это профессионально. Не могли бы Вы подсказать, какие ошибки проектирования наиболее часто встречаются и как их можно "отловить"? |
Оййй! Если бы все знали заранее, какие ошибки всегда встречаются, и как их отловить, то программирование было бы плевым занятием!
|
Насчет крешей и зависания, добавлю:
1. Не использовать многопоточное программирование без четкого обоснования, что это дествительно нужно. 2. В каждом языке есть свои особенности, влияющие на стабильность. (То что в си приводит к к крешу, в php может оказаться всего лишь "notice"). Насчет ошибок проектирования. Есть понятие антипаттерн , описывающее многие распрастраненные ошибки. |
Цитата:
|
Книжка по теме:
http://www.books.ru/books/kak-ne-nad...--5986-205269/ Когда прочёл, понял - от С++ лучше держаться подальше. |
Цитата:
|
Цитата:
К вопросу а шаблонах проектирования. Ну, вообще, шаблоны проектирования - эта систематизация основных идей. Когда я сам познакомился с этим понятием, быстро обнаружил, что немалую часть я уже использовал, некоторую часть использовал немного по-другому. Они играют вспомогательную роль при проектировании и, являясь лишь приемами, предлагают архитектору приложения некоторые идеи. Это не методы, а только идеи. Существует масса подходов к проектированию, каждый архитектор исопользует свой. А вообще, проектирование - дело творческое. И нельзя его загнать в рамки. Главное - осмысление предметной области на концептуальном ур-е. :) Если хотите подробности, читайте: Э. Гамма Р. Хелм Р. Джонсон Дж. Влиссидес "Приемы объектно-ориентированного проектирования". Особенно, вводный раздел. Помимо ООП (который хорош для прикладных приложений), существуют другие подходы, о них тоже нельзя забывать. |
Время: 22:16. |
Время: 22:16.
© OSzone.net 2001-