Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

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

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Результаты опроса: Какой у вас метод написания програм?
Да какой еще метод? Сажусь, и придумываю на ходу. 46 63.89%
Я сам себе программист, компилятор и компьютер . 13 18.06%
Слушаю умные советы, читаю подобные исх., книги. 15 20.83%
Долго готовлюсь, составляю план, зарание обдумываю глюки. 7 9.72%
Другой. 8 11.11%
Опрос с выбором нескольких вариантов ответа. Голосовавшие: 72. Вы ещё не голосовали в этом опросе

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

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

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

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

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


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

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

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

Когда чем-то занимаюсь, то пытаюсь достич полной концентрации на объекте работы. Вообще неплохо , когда в чем-то доходишь , до уровня автоматизма.
Veytarn вне форума Ответить с цитированием
Старый 23.01.2007, 00:55   #5
Cezar
Средний прогер
Форумчанин
 
Аватар для Cezar
 
Регистрация: 16.01.2007
Сообщений: 123
По умолчанию

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

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

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

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

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

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

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

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

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

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

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

В ближайшее время я планирую попробовать коллективный проект по разработке одной полезной программки на Delphi. Кто хочет поучаствовать или понаблюдать - пишите!
Alex_soldier вне форума Ответить с цитированием
Старый 23.01.2007, 16:23   #9
Cezar
Средний прогер
Форумчанин
 
Аватар для Cezar
 
Регистрация: 16.01.2007
Сообщений: 123
По умолчанию

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

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

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

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

ЗЫ. ЗЫ опять убежало !!!
Cezar вне форума Ответить с цитированием
Старый 23.01.2007, 20:48   #10
Veytarn
promuovere
Пользователь
 
Аватар для Veytarn
 
Регистрация: 09.12.2006
Сообщений: 95
По умолчанию

Цитата:
Сообщение от Cezar Посмотреть сообщение
но создание программы процесс творческий. Программист, он как поэт.
Когда то слышал высказывание, про три степени мастерства: знание, умение и навык. В программировании это может касаться работы при реализации сформировавшейся идеи. На примере азбуки морзе: знание - просто знает шифр букв и цифр, умение - умеет правильно записать радиограмму на нормальной скорости, навык - принимает текст на бешеной скорости (нормальный человек даже не сможет отличить два абсолютно разных знака типа .._ _ и ._.) и с удивлением смотрит на руку, которая пишет радиограмму.
Veytarn вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск