Быстрое и качественное написание программ - страница 4

 
Victor Ziborov:

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

Заметил, совершенно никаких обид.

Мне понравилась Ваша идея использовать word-файл для записи кода. Как-то несколько лет пытался использовать word, но из-за того, что там нет подсветки кода, начал использовать обычные include-файлы. Но в них, еесли честно, тоже путаница, потому что для каждого проекта все равно могу вносить какие-то корректировки в уже готовые функции.

Виктор, а Вы можете еще подсказать приемы для быстрого составления логической структуры программы?

 
delfikus:

Заметил, совершенно никаких обид.

Мне понравилась Ваша идея использовать word-файл для записи кода. Как-то несколько лет пытался использовать word, но из-за того, что там нет подсветки кода, начал использовать обычные include-файлы. Но в них, еесли честно, тоже путаница, потому что для каждого проекта все равно могу вносить какие-то корректировки в уже готовые функции.

Виктор, а Вы можете еще подсказать приемы для быстрого составления логической структуры программы?

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

Далее — на вскидку: используя операторы условия, лучше сравнивать переменные "на больше", а не "на меньше". Сравнение "на больше" легче воспринимаются человеческими мозгами (транслятору всё равно).

Вот такую математическую запись:  Если 2 < x < 5, то y = 90 (то есть если переменная x пребывает в интервале от 2 до 5, то...  —  это, так называемое, цепочечное сравнение, на Pythone, кстати, можно так его и писать) лучше программировать таким образом:

if( 2 < x&&x < 5 ) y=90; //- здесь сравниваем значения "на меньше"

Хотя это противоречит тому, что я сказал, что  лучше сравнивать переменные "на больше".

Я думаю, какие-нибудь другие приёмы, особенно с применением ООП, Вам подскажут и другие программисты.

 
delfikus:

Всем привет. Я пишу программы на MQL4 уже несколько лет, в том числе на заказ. Но есть у меня проблема - практически все программы вымучиваю по 2-3 недели. Вроде и с логикой проблем нет, и пишу быстро, но пока конструкцию программы придумаю, пока реализую в коде, пока перепишу все раз по десять - уходит куча времени. И книги по программированию читаю, а все равно проблема не решается. За программы с торговыми панелями, например, вообще не берусь - сижу над ними месяцами, у себя довожу до идеала, отправляю заказчику - он жалуется на то, что ничего не работает так, как нужно, не соответствует ТЗ и т.д.

Вот и возник у меня вопрос: кто как программирует, как проектируете программы, как тестируете? Как можно ускорить процесс разработки?

Привет. По пунктам:

1. Вероятно либо с логикой, либо со знанием функций языка все же проблемы есть, т.к. 2-3 недели на "любую" программу - много (по-моему, конечно). Если проблемы с логикой... даже не знаю, что тут может помочь, наверное, разбор готовых решений с описанием. Т.е. если не идут панели - разбирайте панели и т.д. Если проблемы со знанием языка - нужно больше практики. Также, думаю, будет полезно пройтись по документации полностью, откроете для себя что-то новое точно. Просто пробежаться по функциям, которые знаете, и больше времени уделить "пробелам" в знаниях. Когда знаете что может язык - уверенности будет больше.

2. Попробуйте работу с псевдокодом. Т.е. прямо в коде программы, перед тем как писать сам код опишите по пунктам то, что он должен делать. Когда опишите в общем, попробуйте описать код еще более детально и т.д. до тех пор, пока Вы хорошо не будете понимать структуру программы.

3. А зачем переписывать все десять раз? Вероятно, Вы еще не выработали свой стиль программирования, потому хочется все "переписать". Подумайте над этим. Посмотрите стиль программистов, код которых Вы считаете "образцовым". Заимствуйте что-то у них, добавляйте свое.

4. Книга книге рознь. Если хотите повысить качество программирования, обратите внимание на "Совершенный код" С. Макконнелла. Там есть много практик хорошего программирования. Поможет также с пунктами 2 и 3.

5. Про библиотеки Вам уже говорили. Лучше один раз все проверить и в дальнейшей использовать, чем каждый раз придумывать заново. Посмотрите, например, библиотеку Игоря Кима, его стиль, возможно, Вам понравится (мне лично - не очень нравится).