Если нельзя, но очень хочется, то нужно обязательно и ничего в мире не стоит того, чтобы делать из этого проблему!


Интересна Java? Кликай по ссылке и изучай!
Если тебе полезно что-то из того, чем я делюсь в своем блоге - можешь поделиться своими деньгами со мной.
с пожеланием
столько времени читатели провели на блоге - 
сейчас онлайн - 

среда, 8 октября 2008 г.

Глава "Отладка". Совершенный код. С. Макконнелл.

"Отлаживать код вдвое сложнее, чем писать. Поэтому, если при написании программы вы используете весь свой интеллект, вы по определению недостаточно умны, чтобы ее отладить" Брайан Керниган

"Отладка - это средство для крайних случаев" Стив Макконнелл

"Главный Закон Контроля Качества ПО: повышение качества программы снижает затраты на ее разработку" Стив Макконнелл

"Нет нужды выбирать между качеством, стоимостью и быстротой - они идут рука об руку" Стив Макконнелл

"О чем говорит наличие дефекта? ... о том, что вы не полностью понимаете программу. ... Если вы не до конца понимаете свои указания компилятору, еще чуть-чуть, и вы просто начнете пробовать все, что придет в голову, пока что-то не сработает, т.е. начнете программировать методом проб и ошибок" Стив Макконнелл

"Вам ненужно учиться исправлять дефекты - вам нужно знать, как их избегать" Стив Макконнелл

"Обнаружив ошибку, спросите себя, как и почему вы допустили ее. Как вы могли найти ее быстрее? Как ее можно было предотвратить? Содержит ли код другие подобные ошибки? Можно ли их исправить до того, как они приведут к проблемам?" Стив Макконнелл

"К сожалению, в вузах никогда не рассматриваются принципы отладки" Стив Макконнелл

"Совет: "Для нахождения" дефектов включайте в код команду печати". Это не адекватный уровень" Стив Макконнелл

"Поиск эффектов, основанный на гадании. Для нахождения дефекта разбросайте по программе случайным образом команды печати и изучите выходные данные. Если при помощи команд печати не удается найти дефект, попробуйте изменить тот или иной фрагмент - может, что и сработает. .... Запаситесь колой и леденцами .......... ночь будет долгой" Стив Макконнелл

"Сатана выделил часть ада программистам, которые отлаживают программы, опираясь на суеверия. В каждой группе есть один программист, бесконечно сражающийся с демоническими компьютерами, таинственными дефектами компилятора, скрытыми дефектами языка, которые появляются только в полнолуние,......... Если написания вами программа не работает, ошибка лежит на вашей совести. Компьютер и компилятор ни в чем не виноваты. Программа не делает каждый раз что-то иное. Она не писала сама себя - ее написали вы, так что не уходите от ответственности" Стив Макконнелл

"...если вы полагаете что ошибок в вашем коде нет, то найти их еще труднее" Стив Макконнелл

"Предполагая, что виновником проблемы являетесь вы сами, вы сможете избежать неловких ситуаций. связанных с публичным признанием вины, которую вы первоначально отвергали" Стив Макконнелл

"Отладка программы, основанная на размышлении о проблеме, гораздо эффективнее и интереснее, чем отладка с использованием глаз тритона и помета летучей мыши" Стив Макконнелл

"Лучшие программисты отлаживают программы в 20 раз быстрее, чем их менее квалифицированные коллеги, не гадают, как исправить дефекты" Стив Макконнелл

"Стабилизация ошибки обычно не ограничивается нахождением теста, приводящего к ошибке. Она предполагает упрощение теста до тех пор, пока не будет получен самый простой тест, все еще приводящий к ошибке" Стив Макконнелл

"Если найти причину дефекта не удается, возможно, это обусловлено низким качеством кода" Стив Макконнелл

"Используйте разные инструменты.....Правильный инструмент способен делать трудную задачу простой" Стив Макконнелл

"Воспроизведите ошибку несколькими способами" Стив Макконнелл

"Используйте "Мозговой штурм" для построения нескольких гипотез.... просто придумайте за несколько минут максимальное число гипотез" Стив Макконнелл

"Классы, которые были дефектными раньше, более подвержены ошибкам" Стив Макконнелл

"Проверьте код, который был изменен недавно" Стив Макконнелл

"Отладка будет легкой, если вы будете добавлять элементы в систему по одному за раз" Стив Макконнелл

"Обсудите проблему с кем-то другим. Некоторые программисты называют это "отладочной исповедью" ..... Привет, Дженифер, у тебя есть свободная минутка? У меня проблема. Вот этот список сотрудников должен быть отсортирован, но некоторые фамилии выводятся в неверном порядке. Однако во второй раз они сортируются правильно. Чтобы узнать, не связана ли проблема с вводом новых фамилий, я добавил несколько новых записей, но все они были выведены правильно. Я знаю, что список должен быть отсортирован уже при первом запуске программы, потому что фамилий сортируются дважды: при вводе и при сохранении... подожди... нет, при вводе они не сортируются. Все верно. При вводе их место в списке определяется лишь приблизительно. Спасибо, Дженифер, ты мне очень помогла. Дженифер не сказала ни слова....." Стив Макконнелл

"Отдохните от проблемы. Пусть проблемой займется ваше подсознание" Стив Макконнелл

"Отладка методом грубой силы...... часто игнорируют....... - полный обзор проекта и/или кода дефектного фрагмента. - выбрасывание фрагмента кода и его повторное проектирование/кодирование с нуля. - выбрасывание всей программы и ее повторное..... - компиляция кода с полной отладочной информацией. - компиляция кода на самом строгом уровне диагностики .... - блочное тестирование нового блока в изолированном состоянии. .............." Стив Макконнелл

"Игрок, живущий в каждом из нас, скорее выбрал бы рисковый подход, позволяющий обнаружить дефект за пять минут, а не надежную методику, непременно приводящую к нахождению дефекта за пол часа. Однако это рискованное дело: если пятиминутный подход не сработает, вы начинаете упрямиться. Обнаружение дефекта становится делом принципа, и вы впустую тратите часы, а потом дни, недели, месяцы...." Стив Макконнелл

"Как часто вы тратили два часа на отладку кода, на написание которого уходило только 30 минут? ТАкое распределение времени трудно признать разумным, и вам следовало бы отлаживать не плохой код, а вообще переписать его" Стив Макконнелл

"Если вы все же решаете попробовать быстрый способ отладки, ограничьте его применение определенным временем. По истечении этого срока смиритесь с тем, что дефект не так прост, как вам казалось сначала, и используйте трудный путь" Стив Макконнелл

"Сложной частью отладки является поиск дефекта. Устранить его легко. Однако, как часто бывает, из-за этой самой легкости устранение одних дефектов создает благоприятные условия для внесения других" Стив Макконнелл

"Прежде чем браться за решение проблемы, поймите ее" Стив Макконнелл

"Не ограничивайтесь пониманием проблемы - поймите программу" Стив Макконнелл

"Расслабьтесь. Отдыхайте, пока правильность решения не станет очевидной. Не поддавайтесь соблазну сэкономить время, обычно это приводит к обратному результату" Стив Макконнелл

"Сохраняйте первоначальный исходный код" Стив Макконнелл

"Устраняйте проблему а не ее симптомы" Стив Макконнелл

"Изменяйте код только при наличии веских оснований. ... Типичный ход мыслей "Похоже этот цикл содержит дефект. Наверное, это ошибка занижения или завышения на 1, так что я просто отниму 1 и посмотрю, что получится. Ерунда какая-то. Ну-ка если прибавить 1? Вроде все работает. Думаю, проблема решена"" Стив Макконнелл

"Внесение случайных изменений в код похоже на накачивание шин автомобиля при неисправности двигателя" Стив Макконнелл

""Не знаю, в чем тут дело. будем надеяться, что это изменение сработает." Не делайте так. Это вуду-программирование" Стив Макконнелл

"Обнаружив один дефект, поищите аналогичные дефекты. дефекты часто появляются группами..." Стив Макконнелл

"Самолюбие говорит вам, что ваш код не может содержать ошибок....... вы должны думать строго и стать немыслимым формалистом. Отлаживая собственный код, вы должны быстро переключаться между гибким творческим мышлением, характерным для проектирования, и жестким критичным мышлением, нужным для отладки" Стив Макконнелл

"Вы видите то, что ожидаете увдиеть, и поэтому не замечаете отличия, такие как неправильно написанное слово "увдиеть" в этом предложении" Стив Макконнелл

"Одним из самых простых и эффективных инструментов отладки является сам компилятор. Задайте в компиляторе максимально строгий уровень диагностики и устраняйте все ее ошибки и предупреждения....Детям иногда кажется, что, если они закроют глаза и перестанут вас видеть, вы пропадете" Стив Макконнелл

"Исходите из того, что разработчики компилятора знают язык гораздо лучше вас. Если они о чем-то вас предупреждают, рассматривайте это как возможность узнать о языке что-то новое. Стремитесь понять подлинный смысл каждого предупреждения" Стив Макконнелл

"Рассматривайте предупреждения как ошибки" Стив Макконнелл

"Как вы исправите неуловимые ошибки, если будете игнорировать явные?" Стив Макконнелл

"Существуют инструменты, проверяющие код тщательнее, чем компилятор" Стив Макконнелл

"Изучайте профиль программы" Стив Макконнелл

"...инструменты отладки - это костыли..... при поиске дефектов программу нужно выполнять в уме, а не в отладчике" Стив Макконнелл

"Интерактивный отладчик - великолепный пример инструмента, который не нужен: он поощряет хакерство методом проб и ошибок, а не систематичное проектирование и позволяет непрофессионалам скрыть свою некомпетентность" Стив Макконнелл

"Любой эффективный инструмент можно использовать правильно и неправильно. Отладчик - не исключение" Стив Макконнелл

"Наиболее эффективная комбинация - ясный ум и хороший отладчик" Стив Макконнелл

"Используйте Научный Метод Отладки" Стив Макконнелл

Комментариев нет:

Отправить комментарий