Показаны сообщения с ярлыком Программирование. Показать все сообщения
Показаны сообщения с ярлыком Программирование. Показать все сообщения

вторник, 5 апреля 2011 г.

Как вы олаживаете пограмму?


Вы когда-нибудь задумывались о том, как ищете и исправляете ошибки? Пытались ли выявить какие-то алгоритмы в своих действиях?  Обычно, в литературе описывают два способа поиска причины ошибки:

1. Аналитический. Мы вспоминаем, как должен работать алгоритм, смотрим на то, что написали и видим несоответствие наших мыслей и написанного кода.

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

Первый способ, конечно же, формализовать не получится никак. Но для второго способа, по-моему, можно выявить ряд методик, которые очень помогли бы более осознанно подходить к отладке.

Так например, среди способов, применяемых мною для отладки, я могу выделить наиболее часто применяемый:
1. Ищем точку, где программа работает. Для этого можно: поставить точку остановки в том месте, где программа ещё не успела сглючить, упростить входные параметры, выкинуть часть кода, заменить часть программы более тупыми алгоритмами или заглушками, откатиться в программе контроля версий до той ревизии, где всё работало и т.д. В общем, определиться с координатой, по которой вы будете осуществлять поиск и найти точку на выбранной оси, где всё работает. Назовём эту точку «A».
2. Аналогичным способом ищем точку, где программа не работает. Назовём эту точку «B».
3. Берём точку где-нибудь посередине. Назовём эту точку «C». Проверяем, работает ли программа в точке C.
4. Если программа в точке C не работает, сужаем диапазон поиска до AC. Если работает – сужаем до CB. Переходим к пункту 3, но с новым, более узким диапазоном поиска. И так до тех пор, пока не мы не найдём ошибку аналитическим путём.

А какие способы поиска ошибок вы знаете и применяете на практике?

Чем я вдохновлялся записывая видео "Как программировать эффективно и качественно"


Большое спасибо всем, кто уделил внимание моей работе «Как программировать эффективно и качественно». Хочу добавить, что большинство мыслей, прозвучавшие в этом видео – совсем не моё изобретение. Моя задача – собрать наиболее важные мысли на эту тему и в течение часа их максимально сжато озвучить. Прежде чем приступить к записи, я прочитал множество книг. От всяческих «Эффективное использование <название какого-нибудь языка>» и до верёвок, выстреливающих в ногу. Из всего прочитанного, особенно хотелось бы отметить книгу Стива Макконнела «Совершенный код».



Предупреждаю сразу. Книга большая и дотошная. Но несмотря на это, она более чем заслуживает прочтения. В ней вы найдёте описание многих трудностей, ошибок и подводных камней, встречающихся при разработке программ. Но самое главное – книга содержит много-много очень чётких инструкций, как сделать программу эффективной и качественной.

Заказать книжку можно здесь: http://www.ozon.ru/context/detail/id/5508646/

Здравствуйте. Меня зовут Михаил Песков. Хочу предоставить вашему вниманию первое снятое мной видеопособие. Чтобы вам было понятнее, о чём это видео, и этот журнал, давайте я расскажу немного о себе.

Я программист. Программирую я уже порядка 15-ти лет, из них 9 лет – профессионально. В течение 5-ти лет мне доводилось читать некоторые курсы, связанные с программированием в одном из университетов нашей страны. На одном из последних мест моей работы, я в течение трёх с половиной лет возглавлял небольшой коллектив программистов порядка семи человек. За время моей профессиональной деятельности через меня прошли десятки начинающих программистов, которым мне доводилось ставить технику написания и отладки программ. Сейчас я преподавательской деятельностью не занимаюсь, но очень хочу, чтобы мой опыт сохранился и передался следующим поколениям. С этой целью я решил записать несколько видео, первое из которых я хочу предоставить вам.

За время своей работы мне очень часто приходилось работать с начинающими программистами. В одно время я стал замечать, что оказывается, большинство новичков совершают одни и те же ошибки. Чтобы облегчить свой труд, я написал небольшую брошюрку, в которой перечислил ряд рекомендаций, которые могли бы помочь человеку сделать свои первые шаги в этой замечательной профессии без похода по граблям, набившим лоб уже не одному предыдущему поколению. В этих рекомендациях было написано, как лучше писать программу и к чему следует стремиться. А самое главное – исходя из каких причин это нужно делать. Результат не заставил себя долго ждать, и мои подопечные довольно-таки быстро поднялись в своём профессиональном уровне. В течение двух лет я обкатывал этот материал, старался его сделать лаконичнее, но в то же время, не упустить что-нибудь важное. И вот теперь я хочу представить результат моего труда в этом видео.

Данное видео предназначено в основном для начинающих программистов. В нём я старался рассказать о тех вещах, которые обычно не даются в наших ВУЗах, но тем не менее, очень важны в работе каждого программиста. Возможно, материал этого видео будет полезен и не новичкам. По крайней мере, я надеюсь, что опытные разработчики, просмотревшие данный видеокурс, смогут систематизировать свои знания и лучше понять причины, по которым следует или не следует делать какие-либо вещи. Я очень надеюсь, что это видео поможет вам повысить качество и эффективность своей работы. В общем, желаю вам приятного просмотра.