Показать полную графическую версию : Умеете ли Вы писать код без ошибок?
Eksworden
30-10-2011, 13:43
Внимательно просмотрел некоторые сообщения на форуме, которые касались синтаксических ошибок или ошибок в ходе компиляции. Когда мы используем какую-либо программу, иногда мы имеем дело с крешами или зависаниями. Используете ли вы какие-то методики или правила написания кода, что бы избежать ошибок при работе Вашей программы?
Delirium
30-10-2011, 16:27
код без ошибок не умеет писать никто.Абсолютно никто. Но для начала, для новичков, весь код можно обрамлять через try...catch... Т.е. в случае ошибки программы не вылетает, а выдает заранее сформированное сообщение об ошибке. Таким образом выявляется 90% ошибок программы.
А впоследствии, когда приходит опыт, уже знаешь, куда смотреть, где что проверять и т.д. Хотя, как говорится, "100%-ную защиту от дурака" создать тяжело. Всегда найдутся те, кто нажмет что то так, как, по твоему мнению, сделать невозможно :)
синтаксических ошибок или ошибок в ходе компиляции »
Эти ошибки, как правило, в ступор вводят тех, кто в должной мере не знает язык, на котором пишет (как правило, новички, или наоборот те, кто давно на нем не писал). В очень редких случаях они могут указывать на ошибки проектирования, но как правило, просто ляпы по невнимательности, на их исправление тратиться ничтожная доля времени.
Методика проверки - скомпилировать:)
с крешами или зависаниями »
От них никто не застрахован. 100% защиты точно не будет, поскольку пользователь, в отличие от программиста, думает по-другому, из-за этого, как правило, креши и бывают.
Основная методика защиты:
1. проверка корректности входных данных
2. проверка доступности ресурсов (например, доступность файла)
3. проверка указателей на NULL (и, как оборотная строна, присвоение NULL всем указателям, которые пусты)
4. проверка алгоритмов на сходимость
Хорошее средство - внимательное чтение кода.:)
Вроде основное сказал, вспомню еще - добавлю.:)
Я бы добавил ещё одно: проверка предельных случаев.
El Scorpio
31-10-2011, 03:15
Используете ли вы какие-то методики или правила написания кода, что бы избежать ошибок при работе Вашей программы? »
Методика номер 1 для C++ - никогда не работать со строками через "символьные указатели"
Eksworden
31-10-2011, 11:13
Delirium: код без ошибок не умеет писать никто. Абсолютно никто.
"Никогда не говори: никогда" ;)
Благодарю Вас за ответы. Особенно мне понравился ответ PhilB. Сразу чувствуется, что он имел дело с этим в своей повседневной работе. Iska "проверка предельных случаев" - это профессионально.
Не могли бы Вы подсказать, какие ошибки проектирования наиболее часто встречаются и как их можно "отловить"?
XPEHOMETP
31-10-2011, 13:16
Оййй! Если бы все знали заранее, какие ошибки всегда встречаются, и как их отловить, то программирование было бы плевым занятием!
Насчет крешей и зависания, добавлю:
1. Не использовать многопоточное программирование без четкого обоснования, что это дествительно нужно.
2. В каждом языке есть свои особенности, влияющие на стабильность. (То что в си приводит к к крешу, в php может оказаться всего лишь "notice").
Насчет ошибок проектирования.
Есть понятие антипаттерн (http://ru.wikipedia.org/wiki/Антипаттерн) , описывающее многие распрастраненные ошибки.
Eksworden
31-10-2011, 20:10
Есть понятие антипаттерн , описывающее многие распрастраненные ошибки.
Спасибо за ответ. Антипаттернов существует очень много. Как Вы считаете, достаточно ли использовать "Шаблоны проектирования" для того, что бы избежать ошибок проектирования или необходимо придерживаться каких-то других подходов к проектированию?
Любезный
31-10-2011, 23:04
Книжка по теме:
http://www.books.ru/books/kak-ne-nado-programmirovat-na-c-111-nerabochikh-i-3-rabochikh-programmy-ili-pochemu-2--2--5986-205269/
Когда прочёл, понял - от С++ лучше держаться подальше.
El Scorpio
01-11-2011, 05:16
Книжка по теме:
http://www.books.ru/books/kak-ne-nad...--5986-205269/
Когда прочёл, понял - от С++ лучше держаться подальше. »
Когда прочёл описание книжки, понял, что от неё лучше держаться подальше :lol:
Когда прочёл, понял - от С++ лучше держаться подальше. »
Боюсь даже спрашивать, к чему надо держаться поближе. Я б вообще бы сказал, что самый правильный язык haskell. Но как-то на нем мало, кто пишет, как ни прискорбно. И использовать его в коммерческих проектах пока не рискую.
К вопросу а шаблонах проектирования.
Ну, вообще, шаблоны проектирования - эта систематизация основных идей.
Когда я сам познакомился с этим понятием, быстро обнаружил, что немалую часть я уже использовал, некоторую часть использовал немного по-другому. Они играют вспомогательную роль при проектировании и, являясь лишь приемами, предлагают архитектору приложения некоторые идеи. Это не методы, а только идеи. Существует масса подходов к проектированию, каждый архитектор исопользует свой. А вообще, проектирование - дело творческое. И нельзя его загнать в рамки. Главное - осмысление предметной области на концептуальном ур-е. :)
Если хотите подробности, читайте: Э. Гамма Р. Хелм Р. Джонсон Дж. Влиссидес "Приемы объектно-ориентированного проектирования". Особенно, вводный раздел.
Помимо ООП (который хорош для прикладных приложений), существуют другие подходы, о них тоже нельзя забывать.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.