purebasic.info

PureBasic forum
Текущее время: Сб окт 20, 2018 1:20 am

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 25 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Организация программного кода
СообщениеДобавлено: Вт июн 12, 2018 4:57 pm 
Не в сети
доцент

Зарегистрирован: Пн мар 30, 2015 5:48 pm
Сообщений: 49
Благодарил (а): 35 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
У меня такой вопрос: как грамотно создавать свой проект и организовывать построение кода в нем?
Эта тема актуальна для достаточно больших проектов. Например, у меня программый код содержит более 2000 строк и дальше расширяется. Весь код в одном файле *.pb. При каждой доработке программы приходится вникать в то, что было сделано давно. Хотелось бы как-то структурировать код для облегчения его интерпретации. Это конечно дело вкуса, но все же... Уважаемые форумчане, расскажите пожалуйста, как вы строите свои проекты.
Спасибо!
:)


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Организация программного кода
СообщениеДобавлено: Вт июн 12, 2018 5:10 pm 
Не в сети
док
Аватар пользователя

Зарегистрирован: Вт ноя 22, 2016 7:59 am
Сообщений: 77
Откуда: Россия/Пятигорск
Благодарил (а): 0 раз.
Поблагодарили: 15 раз.
Пункты репутации: 0
Большой код желательно разделять по функционалу на несколько файлов и включать их в основной файл при помощи команд IncludeFile/XIncludeFile.
Также можно использовать механизм модулей при помощи DeclareModule/Module/UseModule.
Как это реализуется на практике можно посмотреть здесь: http://purebasic.info/phpBB3ex/viewtopic.php?f=1&t=4646


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Организация программного кода
СообщениеДобавлено: Вт июн 12, 2018 7:24 pm 
Не в сети
профессор

Зарегистрирован: Вс июл 05, 2009 5:55 pm
Сообщений: 220
Благодарил (а): 1 раз.
Поблагодарили: 7 раз.
Пункты репутации: 0
Когда-то мне встречалась статейка о культуре программирования написана для пурика(годится для любого языка), вот к сожалению, где-то не могу найти. По ссылке выше описано много "воды".

Можно попробовать в гугле поискать.

+Вот например я помню, что если пишешь прогу все переменные описывай нормальным текстом английским или русским но буквы английские, а не i=3: d3=32:dg_1$="123 & 321", а так cikl_proxoda=5, это упрощает понимание назначения переменной.
+Еще помню пиши в шапке, что делает прога, название проги никак не поможет в этом. Будешь смотреть этот код через месяц или год и думать чего я тут хотел доделать.
+Пиши комментарий в конце строки, если сложная строка
+Пиши комент для процедур и значение входящих параметров
+Я иногда массив использую в качестве настроек или флагов и в коментах описываю значение флагов и настроек.

И еще если найдешь таки тот сайт который описывает для пурика, выложи пожалуйста ссылку сюда.

Вот из этого репертуара ссылка
http://1clancer.ru/article/kultura_prog ... vaniya_181
http://www.javaportal.ru/articles/cultu ... mming.html
Вот тут http://lib.qrz.ru/book/export/html/10768 написано "Следует отметить, что широкое применение комментариев обычно является признаком культуры программирования. Это особенно важно для математических систем, реализующих вычисления по сложным и подчас малопонятным для неспециалистов алгоритмам. Без подробных комментариев пакеты расширений и применений теряют свою практическую полезность и превращаются в ребусы — увы, куда менее интересные, чем те, которые публикуются в газетах и журналах."
В 11 разделе немного "Некоторые правила культурного программирования" правда это не все относится к нам.

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

У меня конечно вопрос как кто борется с разными версиями прог, когда пишешь какую-то версию, потом код немножко меняется и уже имеет другую версию.

Может поможет - "данная тема была слегка рассмотрена в бестселлере Ксавье, Пачеко Делфи для профессионалов..." описано тут - http://forum.chertenok.ru/mobile/thread/5101

_________________
искатель истины


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Организация программного кода
СообщениеДобавлено: Вт июн 12, 2018 9:28 pm 
Не в сети
док

Зарегистрирован: Ср июн 18, 2014 6:34 pm
Сообщений: 105
Благодарил (а): 2 раз.
Поблагодарили: 1 раз.
Пункты репутации: 0
На эту тему много мнений.
Здесь были знатоки, которые называли говнокодерами тех, кто переменные писал английскими буквами русскими словами.
http://www.purebasic.info/phpBB3ex/view ... 9166#p9166

Другие знатоки называли гавнокодерами тех, у кого много кода.
http://www.purebasic.info/phpBB3ex/viewtopic.php?p=5390#p5390


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Организация программного кода
СообщениеДобавлено: Вт июн 12, 2018 11:44 pm 
Не в сети
профессор

Зарегистрирован: Чт фев 09, 2017 10:37 am
Сообщений: 201
Благодарил (а): 20 раз.
Поблагодарили: 33 раз.
Пункты репутации: 0
Вот мой не долгий опыт: как называть переменные

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


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Организация программного кода
СообщениеДобавлено: Ср июн 13, 2018 7:44 am 
Не в сети
профессор

Зарегистрирован: Вт май 13, 2014 4:12 am
Сообщений: 684
Благодарил (а): 75 раз.
Поблагодарили: 20 раз.
Пункты репутации: 5
balex1978 писал(а):
У меня конечно вопрос как кто борется с разными версиями прог, когда пишешь какую-то версию, потом код немножко меняется и уже имеет другую версию.

у меня каждая версия в своей папке, всё необходимое в папке, снаружы нет ни чего
когда понимаю что пора делать новую версию, просто копирую папку и и пробую делать, бывает не прошла идея, просто удаляю эту папку и остаюсь при своих
иногда для проверки идеи делаю папку и пробую, получилось / не получилось, исходники то целые
если за пределами папки не будет ни чего, только тогда это будет независимо, иначе бесполезно
balex1978 писал(а):
а так cikl_proxoda=5, это упрощает понимание назначения переменной.

да не упрощает это, ты через неделю забудешь что ты там зашифровал, только коменты спасают, много коментов
другой чел подобным шифром может зашифровать другое, и только в коментах будет правда

всё остальное от лукавого, сегодня помнишь, завтра забыл


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Организация программного кода
СообщениеДобавлено: Ср июн 13, 2018 5:50 pm 
Не в сети
профессор

Зарегистрирован: Вс июл 05, 2009 5:55 pm
Сообщений: 220
Благодарил (а): 1 раз.
Поблагодарили: 7 раз.
Пункты репутации: 0
Дегтярёв писал(а):
Другие знатоки называли гавнокодерами тех, у кого много кода
Знач Блин Гейтс великий гавно... :D . Сюда можно приписать и Дроида и Мак и Яву и чего только неприпишеш, ведь большое, Большущее. По поводу руские слова английскими буквами, это я писал для тех кто понимает по руски, китайски но не на инглише, поэтому пиши на английском если хорошо знаеш его.
newJS писал(а):
да не упрощает это, ты через неделю забудешь что ты там зашифровал, только коменты спасают,
с коментами согласен, но согласись если в цикле писать For D=... To ... и такие повторы 4-5 раз, можно спутать, особенно если гдето в коде встретится переменная D, хотя букв в алфавите много и сочитаний тож. Мне стало проще понимать код после переименовываний всех коротких переменных на словосочитания, естественно с коментами, а то ваще труба была. :D
Пётр писал(а):
У меня есть прога, состояшая из 14000 строк, SofTie поругай меня пожалуйста!
Вот Петр для меня не только МОДЕРАТОР но и почти Профи, то как он отвечает на вопросы дано не каждому, да и посмотри сколько у него ответов на 2008 год -11173, у него свой сайт и пурик он знает поболее нас и кодит даж на Линукс и помоему в спидербасике и ... короче всего неперечесть(спроси у него), да ваще гений, красота. 8) Так что назвать его так у меня ИЗЫК неповорачивается даже если у него 14 тон текста. И сколько строчек занимает написать Виндовс севен, как думаеш, в пару тыщь впишемся :).
Цитата:
Не переживай так, все этим немного стардают.
Я тоже иногда так поступаю.
Вот опять Петр говорит про название переменных, ну не все инглиш знают, я вот нет и что ради этого его учить или мож немецком писать das_ist_fantastihs и кто это будит понимать кроме немцев и меня(я тоже непойму плоховать учился :) ).

_________________
искатель истины


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Организация программного кода
СообщениеДобавлено: Ср июн 13, 2018 6:16 pm 
Не в сети
профессор

Зарегистрирован: Вс июл 05, 2009 5:55 pm
Сообщений: 220
Благодарил (а): 1 раз.
Поблагодарили: 7 раз.
Пункты репутации: 0
Цитата:
А на злопыхателей, из всяких там,
ох и ругался Fdisk, жесть.
Цитата:
вывод из статьи, только один, чтоб не быть быдлокодером, надо выдумать новый, свой язык программирования, а имена переменным надо писать строго на иврите...
Короче НА ВКУС И ЦВЕТ ТОВАРИЩЕЙ НЕТ, а если вспомнить что многие непризнаю басик за язык програмирования(ну прЁт их от ООП и все тутзелень зеленая зависть, я писал на басиках разных и немного на АСМе, прямо ХЕХ кодами небольшие кодики на 86 проце, когда ПК 486 и 586 были по цене недостигаемы и даже пытался на СИ кодить пока непонял - "а басик проще и удобнее" и переменных меньше нужно), неговоря про ХТМЛ (хотя в абревиатуре ясно написано Ленгвич ну язык тобишь, кажется) :? , то я молчу.

_________________
искатель истины


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Организация программного кода
СообщениеДобавлено: Ср июн 13, 2018 6:48 pm 
Не в сети
доцент

Зарегистрирован: Пн мар 30, 2015 5:48 pm
Сообщений: 49
Благодарил (а): 35 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
alone67 писал(а):
Большой код желательно разделять по функционалу на несколько файлов и включать их в основной файл при помощи команд IncludeFile/XIncludeFile.

alone67, я посмотрел твой AppTemplate. Скомпилировать не получилось, достаточно сложная программа. В папке Source есть файлы типа *.pb, *.pbi, *.pbp.
Какие именно (по типу *.pb, *.pbi, *.pbp или *.pbf) файлы нужно создавать? Компилятору нужно как-то сообщать какой из файлов самый главный (или просто запускать компиляцию из своего главного файла, а потом создать exe-шник как обычно)?


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Организация программного кода
СообщениеДобавлено: Ср июн 13, 2018 7:43 pm 
Не в сети
профессор

Зарегистрирован: Чт фев 09, 2017 10:37 am
Сообщений: 201
Благодарил (а): 20 раз.
Поблагодарили: 33 раз.
Пункты репутации: 0
fil@tov писал(а):
у меня программый код содержит более 2000 строк
у меня 3838 строк в одном файле, без инклудов. Он не вызывает трудностей. Если имена функций в списке на панели и ты можешь прыгнуть к функции, то в чём надуманная структурированность? Я делаю инклуды для распространённых функций, которые являются самостоятельными и можно применить в другой программе. Допустим скрипт "Name", к нему инклуд "ForName". Когда я улучшаю инклуды то обновляю их во всех прогах в "ForName", а в главном вся программа. Чтобы достичь разделения это должно быть очевидная необходимость, как я понимаю проект может содержать dll и он их тоже компилирует. Если у тебя скрипт не достиг этого уровня, то создаёшь только лишние телодвижения. А вот оптимизировать код, чтобы части кода сделать в виде самостоятельных процедур, это всегда имеет смысл и ведёт к умению делить код на блоки.


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Организация программного кода
СообщениеДобавлено: Ср июн 13, 2018 8:54 pm 
Не в сети
док
Аватар пользователя

Зарегистрирован: Вт ноя 22, 2016 7:59 am
Сообщений: 77
Откуда: Россия/Пятигорск
Благодарил (а): 0 раз.
Поблагодарили: 15 раз.
Пункты репутации: 0
fil@tov писал(а):
alone67 писал(а):
Большой код желательно разделять по функционалу на несколько файлов и включать их в основной файл при помощи команд IncludeFile/XIncludeFile.

alone67, я посмотрел твой AppTemplate. Скомпилировать не получилось, достаточно сложная программа. В папке Source есть файлы типа *.pb, *.pbi, *.pbp.
Какие именно (по типу *.pb, *.pbi, *.pbp или *.pbf) файлы нужно создавать? Компилятору нужно как-то сообщать какой из файлов самый главный (или просто запускать компиляцию из своего главного файла, а потом создать exe-шник как обычно)?

Ничего сложного в компиляции нет. Открываешь файл проекта *.pbp (в данном случае файл .\Source\AppTemplate.pbp). При этом в "Настройках компилятора" можно увидеть, что главным файлом назначен Main.pb, а также указаны имя выходного exe-файла и местоположение файла иконки приложения. А теперь хочешь - запускай по F5, а хочешь - создавай приложение.
А вообще, судя по всему на форуме редко кто замарачивается с использованием файлов проектов, хотя это очень удобно.


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Организация программного кода
СообщениеДобавлено: Ср июн 13, 2018 10:56 pm 
Не в сети
МОДЕРАТОР
Аватар пользователя

Зарегистрирован: Пн апр 09, 2007 4:53 pm
Сообщений: 11299
Благодарил (а): 4 раз.
Поблагодарили: 436 раз.
Делить на файлы имеет смыл по логическому принципу. Допустим код работающий с сетью в одном файле, а код рисующий график в другом. При необходимости код помещают в модуль что позволяет изолировать его от остальной программы и не нужно задумываться о том есть ли в программе одноименные переменные, процедуры и т. д. Особенно это актуально если код будет использоваться в других проектах.

_________________
Компьютер позволяет решать все те проблемы, которые до его изобретения не существовали. :) :)


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Организация программного кода
СообщениеДобавлено: Чт июн 14, 2018 7:16 pm 
Не в сети
доцент

Зарегистрирован: Пн мар 30, 2015 5:48 pm
Сообщений: 49
Благодарил (а): 35 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
Мне понравился вариант с созданием проекта.
Я правильно понимаю алгоритм организации кода?
1. Создаем проект (проект --> новый проект). Это будет файл проекта *.pbp.
2. Создаем главный файл проекта *.pb. В настройках сообщаем компилятору об этом (вводный исходный файл).
3. Создаем вспомогательные файлы *.pbi, которые могут содержать в себе модули, а также другие процедуры.
4. В главном файле подключаем вспомогательные файлы с помощью ф-й IncludeFile и XIncludeFile.

Что обычно содержит главный файл (глобальные переменные, вызов (при запуске программы) каких-то процедур и цикл обработки событий главного окна)?
Выходной исполняемый файл - это и есть собранное приложение?
И еще такой вопрос (не совсем по теме): если в модуле содержится изолированный код, то как он будет влиять на работу программы, или там нужно писать какие-то универсальные процедуры, которые будут вызываться как инструменты?


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Организация программного кода
СообщениеДобавлено: Чт июн 14, 2018 8:59 pm 
Не в сети
МОДЕРАТОР
Аватар пользователя

Зарегистрирован: Пн апр 09, 2007 4:53 pm
Сообщений: 11299
Благодарил (а): 4 раз.
Поблагодарили: 436 раз.
fil@tov писал(а):
Что обычно содержит главный файл
Обычно в нем находится код работы с основных окном программы, цикл обработки событий окна, работа с параметрами переданными через командную строку, обработчик ошибок и т. д. связанное с приложением.

fil@tov писал(а):
глобальные переменные
Их в программе должно быть как можно меньше.

fil@tov писал(а):
если в модуле содержится изолированный код, то как он будет влиять на работу программы
Все что объявлено в DeclareModule доступно за его пределами. http://goo.gl/vJbp75

_________________
Компьютер позволяет решать все те проблемы, которые до его изобретения не существовали. :) :)


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Организация программного кода
СообщениеДобавлено: Чт июн 14, 2018 9:22 pm 
Не в сети
док
Аватар пользователя

Зарегистрирован: Вт ноя 22, 2016 7:59 am
Сообщений: 77
Откуда: Россия/Пятигорск
Благодарил (а): 0 раз.
Поблагодарили: 15 раз.
Пункты репутации: 0
fil@tov писал(а):
Я правильно понимаю алгоритм организации кода?

Да. Все делается именно так.


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 25 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: Bing [Bot] и гости: 6


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

Найти:
Перейти:  
cron
Создано на основе phpBB® Forum Software © phpBB Group (блог о phpBB)
Сборка создана CMSart Studio
Русская поддержка phpBB