Форум программистов
Правила форума  |  Исходники Delphi  |  Основы Delphi  |  Блог программистов  |  Рассылка  |  Закажи футболку!  |  Конкурс программистов призы на 2000 руб


Вернуться   Форум программистов > Клуб программистов > Свободное общение

Результаты опроса: Какой у вас метод написания програм?
Да какой еще метод? Сажусь, и придумываю на ходу. 40 63.49%
Я сам себе программист, компилятор и компьютер . 12 19.05%
Слушаю умные советы, читаю подобные исх., книги. 14 22.22%
Долго готовлюсь, составляю план, зарание обдумываю глюки. 6 9.52%
Другой. 8 12.70%
Опрос с выбором нескольких вариантов ответа. Голосовавшие: 63. Вы ещё не голосовали в этом опросе

Ответ
 
Опции темы
Старый 22.01.2007, 21:44   #1
Cezar
Средний прогер
Форумчанин
 
Аватар для Cezar
 
Регистрация: 16.01.2007
Адрес: Украина/Ровно
Сообщений: 124
Репутация: 57
Счастье Философия программинга.

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

Я, например, представляю себе программу в виде електрогенератора, который подает ток куда и сколько нужно, а компьютер я представляю в виде нескольких тысяч електромоторчиков, какие управляют виртуальным миром. Задача программиста - создать последовательность, алгоритм подачи тока на моторчики, чтобы они по этому алгоритме управляли чем-то, создавали что-то. Создавать нужно именно алгоритм, ане код. Код - это средство, а не цель.
Перед началом написания новой проги (игры), я представляю себе настоящий мир, в котором нет ничего, ни воздуха, ни горизонта, ни других обьектов. Я пытаюсь наполнить этот мир нужными обьектами, своими законами физики и механики, своими алгоритмами поведения.
Когда этот мир будет проработан до малейщих деталей и крепко запечатлён в памяти, остается самая малость, перенести все это в компьютер с помощью какого-то языка программирования.
"Ни чё себе малость!" - скажите вы. А переносить нужно не собственно виртуальный мир как трехмерную сцену, нужно переносить алгоритм. Перед началом программирования я списываю десятки страниц тетради на рисование алгоритма.
Отсюда и формула выводится:Сложность и скорость написания программы обратно пропорциональны размеру нарисованного алгоритма.

Извините, если тема такая уже была.

Может, тема для вас покажется тупой, нерациональной. Если да, то поправляйте.


ЗЫ. Относитесь к этому вопросу по-философски.
Cezar вне форума   Ответить с цитированием
Старый 22.01.2007, 22:03   #2
Alar
Администратор
Администратор
 
Аватар для Alar
 
Регистрация: 28.10.2006
Сообщений: 4,293
Репутация: 859
По умолчанию

Cezar, тетрадка общая для каждого нового проекта. и множество схем и кодов, со временем переделанных и прочее... графика тоже разрабатываеться сначало на бумаге.
Alar вне форума   Ответить с цитированием
Старый 22.01.2007, 23:19   #3
execom
Редкий тунеядец
Модератор
 
Аватар для execom
 
Регистрация: 29.10.2006
Адрес: Там где много щуки и форели
Сообщений: 596
Репутация: 420
Отправить сообщение для execom с помощью ICQ
По умолчанию

Мне обычно помогало порисовать что-то вроде образов подсознания перенесённых на бумагу, иногда при этом получаются нормальные, почти готовые исходники, а иногда куча кружочков квадратиков, всяких глупых пометок место которым в телефонной книге, но вконечном итоге без этого обычно ни как, в таком ритме +пиво+сигареты+музыка зарождается начало программы, а потом когда мозг за сто-то зацепился так сказать сформированно ядро алгоритма, начинаю программить прямо в среде, причём полностью забывая про то что я там писал, главное при этом не останавливаться до тех пор пока не сделаю именно тот объём с которого я смогу начать в следующий раз, если сделать меньше этого то мысли в следующий раз могут так не "запустится", поэтому приходится оставлять в исходники всякие вехи, типа отступов или пояснений, а если сделать больше чем того требует настрой то опять же трудно начинать, потому что написанное сильно путается и как правило появляются тупые трудноисправимые баги! Ещё помогает, когда ловишь клин начинаешь либо про себя либо в слух говорить что-то типа: "так Assign..." (такое состояние с недавних пор я называют состоянием полного такасигна) просто лечь и поспать! Вообще трудно объяснить как всё происходить, но закономерности имеются и я пытаюсь предерживаться своим установкам!
__________________
ICQ: 103-756 или 176-934 как повезёт)
Сетевой журнал "Execom"
Вирусология
execom вне форума   Ответить с цитированием
Старый 23.01.2007, 00:04   #4
Veytarn
promuovere
Форумчанин
 
Аватар для Veytarn
 
Регистрация: 09.12.2006
Адрес: Полтава
Сообщений: 105
Репутация: 53
По умолчанию

Когда чем-то занимаюсь, то пытаюсь достич полной концентрации на объекте работы. Вообще неплохо , когда в чем-то доходишь , до уровня автоматизма.
__________________
!!!!!!!!!!!!!!!ВИНДОС МАЗДАЙ!!!!!!!!!!!!!!!
Veytarn вне форума   Ответить с цитированием
Старый 23.01.2007, 00:50   #5
mihali4
Старый брюзга
Заслуженный модератор
 
Аватар для mihali4
 
Регистрация: 22.11.2006
Адрес: Москва, Коньково
Сообщений: 8,851
Репутация: 2392
По умолчанию

На бумаге?
Ну ежели только какой-либо кусок алгоритма, который представить-то в голове сложно... Или, если не сразу поймешь закономерности...
А так - обычный подход:
- набросал пользовательский интерфейс (основные функции ведь обычно уже известны?);
- и пошел от функции к функции... внося необходимые коррективы назад по мере создания новых функций. Как правило, корректив получается не более 10% листинга (худший случай).

Не знаю, привычка. Не зависит от сложности программы. Как-то привык даже очень сложный "сольный" проект держать в голове.
Хуже - когда работаешь с кем-то в "команде". Проще все сделать самому...
Хотя, если логика работы программы позволяет четко распараллелиться...
mihali4 вне форума   Ответить с цитированием
Старый 23.01.2007, 00:55   #6
Cezar
Средний прогер
Форумчанин
 
Аватар для Cezar
 
Регистрация: 16.01.2007
Адрес: Украина/Ровно
Сообщений: 124
Репутация: 57
По умолчанию

Цитата:
Ещё помогает, когда ловишь клин начинаешь либо про себя либо в слух говорить что-то типа: "так Assign..." (такое состояние с недавних пор я называют состоянием полного такасигна)
Ха-ха! Прикольно сказал, а главное со смыслом.

Execom, твою мысль я понял. И вообще, у каждого свое восприятие мира, и соответственно, к программингу. Я программер уже 2 года, и скажу честно, МЕНЯ НИКТО НИКОГДА ЭТОМУ НЕ УЧИЛ, я самоучка. Учился из книг по Турбо Паскале и Ассемблере... стоп. Я отклоняюсь от темы. По этих книгах я учил язык, ане метод программирования. Это тоже самое, что выучить французкий алфавит и сразу пытатся проффесионально разговаривать по французки.

Многие начинающие прогеры, при написании первых "в меру серьезных" програм совершают большую ошибку. Новичок, окрыленный идеей и кучей энтузиазма, набросавший несколько строчек будущего кода в голове, бросается в Турбо Паскаль, и... *цензура*. Вот я, например, когда садился за Турбу, имел столько энтузиазма, что аж руки тряслись, но в течении минуты этот самый энтузиазм падал ниже плинтуса. "С чего начать?", "Как "это" будет работать?", "С кем посоветоватся?" - вот какие вопросы возникают в это время в голове. После пяти минут просиживания переп компом я просто бросал свой "проект" и запускал Казаки, и это наверное у всех было (я не про Казаки ). Сейчас все кардинально иначе. Теперь перед написанием кода я как минимум неделю буду разжевывать свою идею в голове, составлять детальный план, принцып работы проги, рисую километры (вру, метры) алгоритмов, и только после этого я приступаю к кодингу. Мой девиз - "Семь раз спланируй, один раз напиши". И главное, делать это с душой.
Сейчас мне только 14 лет, может еще многого не знаю, но я буду старатся. Мне важны мнения всех. И побольше критики.

Цитата:
Когда чем-то занимаюсь, то пытаюсь достич полной концентрации на объекте работы. Вообще неплохо , когда в чем-то доходишь , до уровня автоматизма.

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

ЗЫ. ЗЫ куда-то убежало... .
Cezar вне форума   Ответить с цитированием
Старый 23.01.2007, 09:33   #7
zetrix
Delphi/C++/C#
Профессионал
 
Аватар для zetrix
 
Регистрация: 29.10.2006
Сообщений: 2,116
Репутация: 601
По умолчанию

Вот-вот.. У меня те же проблемы.. Мысль в голове, кручу, верчу.. Опа! Всё понял как должно быть, сажусь за комп, прогерю день, два (конечно не без отрывно), а потом думаю: а на кой черт нужна эта прога?
Полностью доделаных прог у меня единицы (1-2), и то, это те проги, котрые мне очень нужны.
Программы под заказ конечно делаются совсем по другому. Там нет таких мыслей: это нельзя сделать... как бы это обойти... Т.к. сроки коротки, сраза открываю справочник и прочее. Средние программы на заказ - за 1 день - это запросто, но если для себя...
Конкретного алгоритма у меня нет при написании, хотя примерно иду по этим пунктам:
1) Набрасываю все компоненты которые нужны+размещаю их удобно
2) Начинаю по порядку обрабатывать события каждого из них (начинаю с кнопочек..)
3) если что-то не догоняю - справка+лит-ра
4) Полностью тестирую прогу (ввожу всё то что даже кошка не введёт, шагая по клаве..)
5) следую из 4 пункта обрабатываю искл. ситуации.
6) Работаю над красотой.
7) Убираю половину лишнего кода / оптимизиция
8) The End.
zetrix вне форума   Ответить с цитированием
Старый 23.01.2007, 10:14   #8
Alar
Администратор
Администратор
 
Аватар для Alar
 
Регистрация: 28.10.2006
Сообщений: 4,293
Репутация: 859
По умолчанию

Всё равно серьёзный проект требует каких-то записей. Иногда одними комментариями не обойтись. Вспомни потом где такая-то функция, нафика этот код и зачем нужна 1rn.dll .
Alar вне форума   Ответить с цитированием
Старый 23.01.2007, 10:55   #9
Alex_soldier
Пользователь
 
Аватар для Alex_soldier
 
Регистрация: 11.01.2007
Адрес: Россия
Сообщений: 12
Репутация: 10
По умолчанию Re: философия

Приветствую.
Философия обычно заканчивается, когда размер проекта превысит некий критический для 1 человека предел.

Собственно, все методики разработки появились как раз для борьбы с этой фатальностью. Чтобы неуклонно продвигаться вперед, чтобы ускорить процесс за счет работы команды, чтобы сократить потери при внезапном изменении концепций...

Кстати, предварительное проектирование действительно играет важную роль, НО... заранее всего не предусмотришь. Даже на небольших проектах частенько приходится возвращаться чуть ли не к уровню коррекции ТЗ.

В ближайшее время я планирую попробовать коллективный проект по разработке одной полезной программки на Delphi. Кто хочет поучаствовать или понаблюдать - пишите!
__________________
Ведущий рассылок "Web-мастерство" & "HTML-CSS-JS в примерах"
Alex_soldier вне форума   Ответить с цитированием
Старый 23.01.2007, 16:23   #10
Cezar
Средний прогер
Форумчанин
 
Аватар для Cezar
 
Регистрация: 16.01.2007
Адрес: Украина/Ровно
Сообщений: 124
Репутация: 57
По умолчанию

Цитата:
Всё равно серьёзный проект требует каких-то записей. Иногда одними комментариями не обойтись. Вспомни потом где такая-то функция, нафига этот код и зачем нужна 1rn.dll .
Полностью согласен! Я, например, предлагаю такой метод: сначала писать детальный Хелп, а потом, ориентируясь по этому Хелпу писать прогу, функцию за функцией.

Создаваемую программу нужно воспринимать как дом. Сначала создается фундамент - какрас проги, потом стены - функции, потом сверху ложится крыша - API, а потом можно и стены расскрасить, мебли поставить...

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

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

ЗЫ. ЗЫ опять убежало !!!
Cezar вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


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



03:52.


Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2010, Jelsoft Enterprises Ltd.

Ask Doctor at Healpth.com