Модераторы: Snowy, MetalFan, bems, Poseidon

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Организация проекта 
:(
    Опции темы
Gold Dragon
Дата 1.9.2014, 10:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: нет
Всего: 71



Собственно вопрос как логично организовать работы с проектом..? Поясню малость: в PHP в данном случае всё было просто: всё по папкам, каждый класс (библиотека) в отдельном файле. В Делфи малость всё по другому.

Допустим есть основная форма, соответсвенно и весь код в одном месте. Но мне нужно, к примеру, иметь механизм управлением настройками, библиотеку для работы с ДатамиВременем и т.д. и т.п. И соответсвенно всё это иметь в одном файле не совсем разумно да и не удобно.

Как мне это лучше использовать, т.е. как организовать саму работу.. Создавать какие-то отдельные DLL, какие-то отдельные PAS-файлы или как-то по иному? К чему сводится практика?

PS
просто изначально хочу организовать удобно и практично. Планирую создать большой проект и не хочу создать мешанину изначально smile


--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
Poseidon
Дата 1.9.2014, 11:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphi developer
****


Профиль
Группа: Комодератор
Сообщений: 5273
Регистрация: 4.2.2005
Где: Гомель, Беларусь

Репутация: 9
Всего: 133



Никто не мешает "разбить" код по отдельным Unit. Их можно размещать где угодно: в одной куче или расфасовать по папкам.

Цитата(Gold Dragon @  1.9.2014,  10:59 Найти цитируемый пост)
в PHP в данном случае всё было просто: всё по папкам, каждый класс (библиотека) в отдельном файле.
В Delphi так же можно каждый класс описать в отдельном файле. 

Цитата(Gold Dragon @  1.9.2014,  10:59 Найти цитируемый пост)
Допустим есть основная форма, соответсвенно и весь код в одном месте. Но мне нужно, к примеру, иметь механизм управлением настройками, библиотеку для работы с ДатамиВременем и т.д. и т.п.
В этом одном месте можно разместить только код, который непосредственно связан с этой формой (только методы TForm). Все остальное (механизм управлением настройками, библиотеку для работы с ДатамиВременем и т.д. и т.п.) можно разнести по модулям (Unit).

Добавлено через 1 минуту и 40 секунд
Кстати, в Delphi уже есть библиотека для работы с датой/временем - DateUtils. Возможно там уже есть то, что нужно.


--------------------
Если хочешь, что бы что-то работало - используй написанное, 
если хочешь что-то понять - пиши сам...
PM MAIL ICQ   Вверх
Gold Dragon
Дата 1.9.2014, 11:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: нет
Всего: 71



Цитата(Poseidon @  1.9.2014,  12:32 Найти цитируемый пост)
В Delphi так же можно каждый класс описать в отдельном файле. 
сейчас немного не понятно как взаимодействуют, например, глобальные переменные...

Допустим я определяю глобальную переменную, которая хранит языковые константы. Что-то типа такого
Код

type
  // Языковые константы
  TLang = (restore, exit, open, .........);

var
   LANG : array[TLang] of string;

procedure TMainForm.GetLanguage();
{ Загружаем языковые данные }
var
  Path : string;
begin
  // путь до корневой папки
  PathRoot := ExtractFilePath(Application.ExeName);
  // TODO: временная заглушка пути к программе
  PathRoot := 'e:\delphi\GDOrg\';

  Path := PathRoot + 'language\' + Params.language + '.ini';
  IniFile := TIniFile.Create(Path);
  if FileExists(Path) then //проверяем есть ли языковой файл
    begin
      lang[restore] := IniFile.ReadString('menutray', 'restore', 'Восстановить');
      lang[exit] := IniFile.ReadString('menutray', 'exit', 'Выход');
      lang[open] := IniFile.ReadString('menutray', 'open', 'Открыть');
    end
  else
    begin
      lang[restore] := 'Восстановить';
      lang[exit] := 'Выход';
      lang[open] := 'Открыть';
    end;
  IniFile.Free;

end;



Как мне это перенести в другой файл и как это будет взаимодействовать, т.е.  определять тим и переменную мне нужно в основной форме или же можно в другом файле?

Добавлено через 2 минуты и 9 секунд
Цитата(Poseidon @  1.9.2014,  12:32 Найти цитируемый пост)
Кстати, в Delphi уже есть библиотека для работы с датой/временем - DateUtils. Возможно там уже есть то, что нужно. 
Да, там есть нужные мне функции конечно  smile Но требуются более свецифичные, например, прибавлять только рабочии дни или вычислять разницу с учётом празников или преобразовывать дату из любого формата в любой формат



--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
gesper
Дата 1.9.2014, 12:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


"Shарфик"
*


Профиль
Группа: Участник
Сообщений: 183
Регистрация: 23.2.2005

Репутация: 1
Всего: 2



В PHP, как я помню, была одна особенность - сервер может запретить глобальные переменные. Вот для меньшей нервотрепки лучше представь, что они запрещены.
А так, пока в uses модуль какой нибудь не добавишь, то его содержимое видно не будет в редактируемом модуле. Взять сделать unit и нагрузить его только переменными, иницилизировать их в начале и потом цеплять в остальных частях программы можно, но будут подводные камни, если начнешь свои классы лепить.

Красиво смотрится.... 
Цитата

Группа: Экс. модератор
Сообщений: 6666
Регистрация: 1.3.2004
Где: Россия, Тамбов


Это сообщение отредактировал(а) gesper - 1.9.2014, 12:28
--------------------
...И приколется обломившийся и oбломится приколовшийся...
PM MAIL   Вверх
Gold Dragon
Дата 1.9.2014, 12:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: нет
Всего: 71



Цитата(gesper @  1.9.2014,  13:27 Найти цитируемый пост)
В PHP, как я помню, была одна особенность - сервер может запретить глобальные переменные. 
немного не так  smile но не суть...

Так как мне быть? Мне нужно определить и заполнить глобальную переменную LANG данными. Где это мне сделать? соответсвенно со всеми процедурами (или может функциями)



--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
Poseidon
Дата 1.9.2014, 16:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphi developer
****


Профиль
Группа: Комодератор
Сообщений: 5273
Регистрация: 4.2.2005
Где: Гомель, Беларусь

Репутация: 9
Всего: 133



Цитата(Gold Dragon @  1.9.2014,  12:31 Найти цитируемый пост)
Мне нужно определить и заполнить глобальную переменную LANG данными. Где это мне сделать?
Можешь создать отдельный Unit (назвать его, к примеру, LangUnit), там описать TLang, LANG и функцию GetLanguage (может еще какие функции). Затем в модуле, в котором описан TMainForm, в uses добавить LangUnit и уже из этого моделя работать и с TLang, и с LANG, и вызывать GetLanguage.


--------------------
Если хочешь, что бы что-то работало - используй написанное, 
если хочешь что-то понять - пиши сам...
PM MAIL ICQ   Вверх
Gold Dragon
Дата 1.9.2014, 17:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: нет
Всего: 71



Poseidon, вот спасибо! Мне не хватило именно вот такого элементарного объяснения чтобы понять общий принцип  smile 

Так, теперь дальше.. На сколько вообще приемлемо в Делфи дробнение на отдельные модули? Т.е. лучше каждый такой обработчик закидывать в отдельный Юнит или же всё такие сделать 1-2 Юнита, которые не относятся в формам? 
Я так понимаю в каждом таком Unit подключаются при компиляции куча всяких процедур/классов/объектов. Не получается так, что в проект будет несколько раз включена та или иная "библиотека"?


--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
Gold Dragon
Дата 2.9.2014, 07:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: нет
Всего: 71



кстати, и есть ли смысл создавать отдельные DLL?


--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
Poseidon
Дата 2.9.2014, 09:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphi developer
****


Профиль
Группа: Комодератор
Сообщений: 5273
Регистрация: 4.2.2005
Где: Гомель, Беларусь

Репутация: 9
Всего: 133



Цитата(Gold Dragon @  1.9.2014,  17:08 Найти цитируемый пост)
На сколько вообще приемлемо в Делфи дробнение на отдельные модули? Т.е. лучше каждый такой обработчик закидывать в отдельный Юнит или же всё такие сделать 1-2 Юнита, которые не относятся в формам? 
Тут нет каких-то правил. Максимум - рекомендации. Все на усмотрение программиста. Можно все написать в одном модуле формы, а можно раскидать каждую функцию по отдельным модулям. Разницы для Delphi нет. Нужно смотреть со стороны легкости чтения кода. Лично я отделяю по модулям родственные классы, в отдельном модуле описываю глобальные константы, в отдельном - общие функции, и т.д. Если пишешь ты один, то как тебе удобнее, так и пиши. Если не один, то договоаривайтесь и пишите. Тут все делается для удобства разработчика, а не компилятора.

Цитата(Gold Dragon @  1.9.2014,  17:08 Найти цитируемый пост)
Я так понимаю в каждом таком Unit подключаются при компиляции куча всяких процедур/классов/объектов. Не получается так, что в проект будет несколько раз включена та или иная "библиотека"? 
Нет. Магия компилятора сделает свое дело. Более того, даже код, который не используется, но модуль с этим кодом подключен, будет при компиляции "выкинут" из exe.

Цитата(Gold Dragon @  2.9.2014,  07:10 Найти цитируемый пост)
кстати, и есть ли смысл создавать отдельные DLL? 
В данном случае, думаю, нет. Гемороя от dll будет гораздо больше, чем включение кода в exe. Хотя тут тоже могут быть нюансы. Если код будет использован разными проектами, если предполагается частое обновление кода и т.п., то его лучше впихнуть в dll. Плюс не стоит забывать, что dll - это уже отдельный проект и та магия компилятора, которая описана выше, тут не сработает. Получится дублирование некоторого стандартного кода в exe и dll, и, соответственно, размер exe без функций + dll с функциями > exe с функциями.



--------------------
Если хочешь, что бы что-то работало - используй написанное, 
если хочешь что-то понять - пиши сам...
PM MAIL ICQ   Вверх
Gold Dragon
Дата 2.9.2014, 09:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: нет
Всего: 71



Poseidon, всё понятно.. Основные мои опасения были насчёт компилятора.. Но коль так говоришь, то поверю на слово.

И на последок ещё один маленький вопрос... Я правильно понимаю что последние версии Делфи по умолчанию уже работают с юникодом?


--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
Poseidon
Дата 2.9.2014, 10:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphi developer
****


Профиль
Группа: Комодератор
Сообщений: 5273
Регистрация: 4.2.2005
Где: Гомель, Беларусь

Репутация: 9
Всего: 133



Цитата(Gold Dragon @  2.9.2014,  09:50 Найти цитируемый пост)
Я правильно понимаю что последние версии Делфи по умолчанию уже работают с юникодом? 
Да. Юникод появился начиная с версии 2009. Соответственно все ХЕ-версии уже с юникодом.



--------------------
Если хочешь, что бы что-то работало - используй написанное, 
если хочешь что-то понять - пиши сам...
PM MAIL ICQ   Вверх
Gold Dragon
Дата 2.9.2014, 10:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: нет
Всего: 71



Большое спасибо за разъяснения. Многое стало более понятным.

Тему можно пока закрыть  smile 

PS
малость помучился с подгрузкой INI-файлов в юникоде.. Хоть делфи по умолчанию и работает с юникодом, но всё таки пришлось задавать кодировку "ручками" smile


--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
gesper
Дата 2.9.2014, 13:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


"Shарфик"
*


Профиль
Группа: Участник
Сообщений: 183
Регистрация: 23.2.2005

Репутация: 1
Всего: 2



К слову, если проект большой и не пользуешься какими то программами для создания диаграмм работы программы твоей, то пора начать. Я особо не заморачивался изумением UML, для себя в общих чертаж в "yEd Graph Editor" делал схему как связаны между собой модули/классы, чтобы потом при разработке новых форм не теряться в том, кого и куда цеплять. Чтобы себе проблем не создать. 
--------------------
...И приколется обломившийся и oбломится приколовшийся...
PM MAIL   Вверх
Gold Dragon
Дата 2.9.2014, 16:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: нет
Всего: 71



gesper, ну с учётом того что я последние 14 лет программирую на PHP, то архитектура проектов Делфи мне кажется малость не логичным  smile 
Поэтому столько и вопросов

А проект уже начал делать: органайзер. Понимаю что велосипед и есть интересные проект. Ближе всего к моим требованиям подходит WinOrganizer, но почему-то он перестал развиваться, да и не всё меня там устраивает... Что касается проекты на Делфи - подобные какие нашёл что-то совсем удогие  smile 

PS
Сейчас немного ещё ещё вспомню что к чему в Делфи и открою новую тему.. Уверен чтобудет много вопросом.. web-органайзер сделать без проблем, но хочется иметь что-то автономное, без сервера на компе smile Очень давно планировл начать, года три  smile вот решился...

Добавлено @ 16:23
Проект планирую большой, естественно с открытым кодом. По этому и хочу предусмотреть всё что принято в Делфи, начиная от "как принято называть переменные/функции/класса" до "как организовать структуру проекта" и "стиль кода".. Вдруг участники проекта появятся. Вот чтоб глянул в код и было всё сразу понятно..

Это сообщение отредактировал(а) Gold Dragon - 2.9.2014, 16:29


--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
gesper
Дата 2.9.2014, 17:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


"Shарфик"
*


Профиль
Группа: Участник
Сообщений: 183
Регистрация: 23.2.2005

Репутация: 1
Всего: 2



Цитата(Gold Dragon @ 2.9.2014,  16:20)
gesper, ну с учётом того что я последние 14 лет программирую на PHP, то архитектура проектов Делфи мне кажется малость не логичным  smile 
Поэтому столько и вопросов

А проект уже начал делать: органайзер. Понимаю что велосипед и есть интересные проект. Ближе всего к моим требованиям подходит WinOrganizer, но почему-то он перестал развиваться, да и не всё меня там устраивает... Что касается проекты на Делфи - подобные какие нашёл что-то совсем удогие  smile 

PS
Сейчас немного ещё ещё вспомню что к чему в Делфи и открою новую тему.. Уверен чтобудет много вопросом.. web-органайзер сделать без проблем, но хочется иметь что-то автономное, без сервера на компе smile Очень давно планировл начать, года три  smile вот решился...

Добавлено @ 16:23
Проект планирую большой, естественно с открытым кодом. По этому и хочу предусмотреть всё что принято в Делфи, начиная от "как принято называть переменные/функции/класса" до "как организовать структуру проекта" и "стиль кода".. Вдруг участники проекта появятся. Вот чтоб глянул в код и было всё сразу понятно..

Это не велосипед, это так программа которая нужна каждому своя. Когда поиграться решил с программированием, то брат предложил сделать ему по его хотелкам. Он показал мне 4 программы в каждой было что то классное, но в целом либо перегружен функционалом, который ему не нужен. Либо идиотский интерфейс, либо..либо...  
Было несколько предложений по переводу программы на другой язык и продаже, куча хотелок, но у меня нет времени ей заниматься и желания делать это за так. Она уже убыточная. В этом году я отказался от продления домена сайта который был у меня, и от развития программы полностью. Глянь, если интересно.
http://freesoft.ru/pichugin_organizer
http://pichugin.ucoz.ru/publ/3-1-0-11
У нее есть глюки, и движок который надо переделать полносью(собрано на коленке). Сейчас я знаю как, но когда начинал такого не умел. И сейчас я бы отказался от Delphi и стал делать ее на Lazarus. Потому что круг пользоватлей шире можно получить.

По поводу правил - в книгах по Delphi нет некоторых интересных правил которые есть в Java и PHP. Помоему, главное чтобы все было однообразно и в одном стиле, а если часть эл-тов, например названия файлов, сделаны в стиле java то ничего страшного.

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

Это сообщение отредактировал(а) gesper - 2.9.2014, 17:50
--------------------
...И приколется обломившийся и oбломится приколовшийся...
PM MAIL   Вверх
Gold Dragon
Дата 2.9.2014, 18:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: нет
Всего: 71



Цитата(gesper @  2.9.2014,  18:48 Найти цитируемый пост)
 книгах по Delphi нет некоторых интересных правил которые есть в Java и PHP

Вот и я про это... В PHP есть несколько основных требований (не обязательных, но рекомендованных) которым большинство старается следовать... А в Делфи мне показалось "кто на что горазд" smile

gesper,  кажется находит твою программку, но скачать не смог.. Если не жалко, скинь проект куда-нибудь для скачивания


PS
а Lazarus это конкурент Делфи? .. ещё и бесплатный...

Добавлено через 2 минуты и 5 секунд
Цитата(gesper @  2.9.2014,  18:48 Найти цитируемый пост)
Первые версии проекта в свет если выбросишь, скинь ссылку в личку.

а что в личку то... я у ж официально проект открою где-нибудь на Гуглекоде  smile 


--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
gesper
Дата 2.9.2014, 18:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


"Shарфик"
*


Профиль
Группа: Участник
Сообщений: 183
Регистрация: 23.2.2005

Репутация: 1
Всего: 2



Цитата

gesper,  кажется находит твою программку, но скачать не смог.. Если не жалко, скинь проект куда-нибудь для скачивания

Программа сама тут, или ты исходники хочешь?
http://depositfiles.com/files/97fuh0qlx

Цитата

 Lazarus это конкурент Делфи? .. ещё и бесплатный...

Не знаю насчет конкурента, по мне нет, функционал другой дает и развивается медленней. Зато поддержка нескольких платформ сразу у тебя, есть функция преобразования проектов Delphi, но не полностью. У меня некоторые формы не сконвертировались. Язык и общий синтаксис такой же как и в Делфи, только иногда приходится функции другие использовать, чем те что в делфи. Где то удобнее, где то нет. Слежу больше за правильностью кода в нем, придирается больше.

Цитата

а что в личку то... я у ж официально проект открою где-нибудь на Гуглекоде  smile

ну туда) на гугл)

Это сообщение отредактировал(а) gesper - 2.9.2014, 18:54
--------------------
...И приколется обломившийся и oбломится приколовшийся...
PM MAIL   Вверх
Gold Dragon
Дата 2.9.2014, 19:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: нет
Всего: 71



Цитата(gesper @  2.9.2014,  19:54 Найти цитируемый пост)
Программа сама тут, или ты исходники хочешь?
конечно исходник smile  Программу я думаю сам скомпилирую... Просто качаю всё что есть и смотрю нутро, т.е. что кто и как. Исходники к сожалению находятся только лохматых годов: не современно как по коду так и по дизайну


Это сообщение отредактировал(а) Gold Dragon - 2.9.2014, 19:07


--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
gesper
Дата 2.9.2014, 19:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


"Shарфик"
*


Профиль
Группа: Участник
Сообщений: 183
Регистрация: 23.2.2005

Репутация: 1
Всего: 2



Не помню не одного исходника чтобы что то получилось скомпилировать, везде что то не хватало)
Личку смотри.

--------------------
...И приколется обломившийся и oбломится приколовшийся...
PM MAIL   Вверх
Poseidon
Дата 2.9.2014, 21:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphi developer
****


Профиль
Группа: Комодератор
Сообщений: 5273
Регистрация: 4.2.2005
Где: Гомель, Беларусь

Репутация: 9
Всего: 133



Цитата(Gold Dragon @ 2.9.2014,  16:20)
 По этому и хочу предусмотреть всё что принято в Делфи, начиная от "как принято называть переменные/функции/класса" до "как организовать структуру проекта" и "стиль кода".. 

Тогда тебе будет не лишним прочесть стандарты Embarcadero


--------------------
Если хочешь, что бы что-то работало - используй написанное, 
если хочешь что-то понять - пиши сам...
PM MAIL ICQ   Вверх
gesper
Дата 2.9.2014, 21:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


"Shарфик"
*


Профиль
Группа: Участник
Сообщений: 183
Регистрация: 23.2.2005

Репутация: 1
Всего: 2



Цитата(Poseidon @ 2.9.2014,  21:14)
Цитата(Gold Dragon @ 2.9.2014,  16:20)
 По этому и хочу предусмотреть всё что принято в Делфи, начиная от "как принято называть переменные/функции/класса" до "как организовать структуру проекта" и "стиль кода".. 

Тогда тебе будет не лишним прочесть стандарты Embarcadero

Не знал что это есть на сайте, впринципе все есть в учебниках, что там написано... кроме

Цитата

Всегда необходимо использовать два пробела для всех уровней отступа. Другими словами, первый уровень отступает на два пробела, второй на четыре и так далее. Никогда не используйте символы табуляции.

Кто писал это был мазахистом что ли? Форматировать код толдыча пробел.... smile 
--------------------
...И приколется обломившийся и oбломится приколовшийся...
PM MAIL   Вверх
Gold Dragon
Дата 2.9.2014, 23:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: нет
Всего: 71



Цитата(gesper @  2.9.2014,  22:32 Найти цитируемый пост)
Кто писал это был мазахистом что ли? Форматировать код толдыча пробел....
ну это и в PHP актуально.. Вот только два - так код сливается ... почему не 4....

Добавлено через 8 минут
Цитата(Poseidon @  2.9.2014,  22:14 Найти цитируемый пост)
Тогда тебе будет не лишним прочесть стандарты Embarcadero 

Очень позновательно....

PS
и кто придумал присвоение начинать с двоеточия, а не просто через "равно" делать....  smile 


--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
Gold Dragon
Дата 3.9.2014, 07:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: нет
Всего: 71



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


--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
gesper
Дата 3.9.2014, 10:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


"Shарфик"
*


Профиль
Группа: Участник
Сообщений: 183
Регистрация: 23.2.2005

Репутация: 1
Всего: 2



Цитата(Gold Dragon @ 3.9.2014,  07:33)
И ещё тогда.. с помощью чего делать автоматическое форматирование кода? В других IDE это встроенный функционал, выбираешь стиль и всё автоматом форматируется...

К слову, на Lazarus табом делается форматирование. Это есть в настройках, сколько пробелов у таба и на сайте его показывается как быстро форматировать табом в обе стороны.

Автовыравнивание было в Delphi, некогда не пользовался им. 
--------------------
...И приколется обломившийся и oбломится приколовшийся...
PM MAIL   Вверх
Gold Dragon
Дата 3.9.2014, 13:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: нет
Всего: 71



оказывается есть что-то подобное (форматирование кода) в новых версиях, но явно не во всех сборка... Нашёл какую-то версию XE6 и там оказалось это smile Хотя в XE5 этого функционала не было


--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
Gold Dragon
Дата 3.9.2014, 14:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: нет
Всего: 71



Проверил форматирование кода.. Работает  smile  но примитивненько, с PHPStorm не сравниться однозначно. Настроек по минимум

Это сообщение отредактировал(а) Gold Dragon - 3.9.2014, 14:14


--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
CynicRus
Дата 3.9.2014, 20:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 248
Регистрация: 31.5.2012

Репутация: 2
Всего: 5



Цитата(Gold Dragon @ 3.9.2014,  14:14)
Проверил форматирование кода.. Работает  smile  но примитивненько, с PHPStorm не сравниться однозначно. Настроек по минимум

Для удобства поставь cnPack - он и автоформатирует, и автодополняет и вообще имеет кучу вкусного. гуглить как Delphi cnPack. Ну а об организации классов - в качестве примера, могу привести свой распаковщик BSA. Он не совсем удачно организован с точки зрения человеческой логики, но уж очень мне хотелось с наследованием поиграться.

Глядеть тут.
PM MAIL   Вверх
Gold Dragon
Дата 4.9.2014, 07:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: нет
Всего: 71



Цитата(CynicRus @  3.9.2014,  21:23 Найти цитируемый пост)
Он не совсем удачно организован с точки зрения человеческой логики, но уж очень мне хотелось с наследованием поиграться.
Ну в принципе не знаю делфи для меня всё достаточно понятно и на первый взгляд: всё достаточно наглядно что и где. А если минут 15 посидеть то вообще буду во всём шарить..

Единственное - зачем абстрактный класс? В PHP давно идут споры необходимости использовать их и  каких масштабов должен быть проект. Лично я считаю это просто избыточным кодом на маленьких проектах smile Согласен если проект многомодульный и по размерам приближающийся к операционной системе или к IDE, но в других случаях просто лишний код.. 

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

PS
малость не понял синтаксис кода (не встречал в "учебниках")
Код

...
TBSAFileRecords = TArray<TBSAFile>;
....
name : TArray<AnsiChar>;
....
домыслить смогу конечно, но хочется чуть поясниния

Добавлено через 14 минут и 32 секунды
Цитата(CynicRus @  3.9.2014,  21:23 Найти цитируемый пост)
Для удобства поставь cnPack - он и автоформатирует, и автодополняет и вообще имеет кучу вкусного. гуглить как Delphi cnPack
АХ..... какая Х.... хорошая прога!!! +1!


Это сообщение отредактировал(а) Gold Dragon - 4.9.2014, 07:46


--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
phomm
Дата 4.9.2014, 10:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 38
Регистрация: 7.10.2010

Репутация: 1
Всего: 1



Цитата(Gold Dragon @  4.9.2014,  10:44 Найти цитируемый пост)
PSмалость не понял синтаксис кода (не встречал в "учебниках")код Pascal/Delphi1:2:3:4:5:...TBSAFileRecords = TArray<TBSAFile>;....name : TArray<AnsiChar>;....highlightSyntax('delphi_3MzQyZ','delphi');домыслить смогу конечно, но хочется чуть поясниния


Дженерики

В дополнение к цнпаку могу посоветовать GExperts, тоже набор мастеров, улучшающих работу в иде.

По вопросам оформления и стиля - лучше придерживаться борланда/амбара ну с незначительными отклонениями. Ну а архитектуру и модульность обычно с опытом приходит, кто с помощью умл совершенствует свои навыки, кто с паттернами, по банде и по статьям, много путей.
Могу посоветовать порыскать по Delphifeeds.com и Delphifeeds.ru на предмет соотв. статей. 
Есть некоторое количество блоггеров, которые пишут по делу.
PM MAIL WWW ICQ Skype   Вверх
Poseidon
Дата 4.9.2014, 11:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphi developer
****


Профиль
Группа: Комодератор
Сообщений: 5273
Регистрация: 4.2.2005
Где: Гомель, Беларусь

Репутация: 9
Всего: 133



Цитата(Gold Dragon @  2.9.2014,  23:04 Найти цитируемый пост)
и кто придумал присвоение начинать с двоеточия, а не просто через "равно" делать
Я так предполагаю, что это был Никлаус Вирт. В общем это еще от Паскаля пришло.





--------------------
Если хочешь, что бы что-то работало - используй написанное, 
если хочешь что-то понять - пиши сам...
PM MAIL ICQ   Вверх
Gold Dragon
Дата 4.9.2014, 13:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: нет
Всего: 71



Цитата(phomm @  4.9.2014,  11:16 Найти цитируемый пост)
По вопросам оформления и стиля - лучше придерживаться борланда/амбара ну с незначительными отклонениями. Ну а архитектуру и модульность обычно с опытом приходит, кто с помощью умл совершенствует свои навыки, кто с паттернами, по банде и по статьям, много путей.
В общем я понял одно.. такой сплочённости как в PHP в Делфи нет  smile 



--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
gesper
Дата 4.9.2014, 14:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


"Shарфик"
*


Профиль
Группа: Участник
Сообщений: 183
Регистрация: 23.2.2005

Репутация: 1
Всего: 2



Цитата(Gold Dragon @ 4.9.2014,  13:39)
общем я понял одно.. такой сплочённости как в PHP в Делфи нет  smile

Ты учти. Delphi - коммерческая среда построенная на языке Object Pascal(поддерживаемый ей только), а PHP язык без среды с кучей свободных редакторов.
--------------------
...И приколется обломившийся и oбломится приколовшийся...
PM MAIL   Вверх
Gold Dragon
Дата 4.9.2014, 14:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: нет
Всего: 71



ах точно!!! Но всё равно, разработчики как-то договариваются smile

В общем просмотрев кучу стилей написания, мне ближе тот который больше похож на PHP. И я таких уже встречал..


--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
superVad
Дата 4.9.2014, 16:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 735
Регистрация: 6.4.2006
Где: Черкассы, Украина

Репутация: 7
Всего: 15



Gold Dragon, вот несколько ссылок, может будет полезно:
Ссылка
Ссылка
Ссылка
Ну и там еще по блогам можно пошариться.

Это сообщение отредактировал(а) superVad - 4.9.2014, 16:51
PM MAIL   Вверх
ТоляМБА
Дата 4.9.2014, 18:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Котэ
***


Профиль
Группа: Завсегдатай
Сообщений: 1607
Регистрация: 15.12.2004

Репутация: 1
Всего: 252



Цитата(gesper @  4.9.2014,  16:11 Найти цитируемый пост)
Delphi - коммерческая среда построенная на языке Object Pascal

Цитата
Delphi (Де́лфи, произносится /ˈdɛlˌfi:/[1]) — императивный, структурированный, объектно-ориентированный язык программирования, диалект Object Pascal[2]. Начиная со среды разработки Delphi 7.0[3], в официальных документах Borland стала использовать название Delphi для обозначения языка Object Pascal. Начиная с 2007 года уже язык Delphi (производный от Object Pascal) начал жить своей самостоятельной жизнью

https://ru.wikipedia.org/wiki/Delphi_(язык_программирования)
PM   Вверх
Gold Dragon
Дата 4.9.2014, 20:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: нет
Всего: 71



ТоляМБА, и?  smile 

Никто и не спорит со сказанным... Но на мой взгляд, этот язык имеет меньше всего "обычиев" и "традиций" как в подходе к организации проекта, так и к тредованию по оформлению самого кода smile

Даже в этой теме достаточно ссылко на другие ресурсы где народ просто говорит о том что "пишет как хочет"  smile

Добавлено через 2 минуты и 33 секунды
superVad, +1 
достаточно позновательные статьи и структуре проекта, очень много интересный мыслей. Хоть материалы и старые, но ... 


--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
CynicRus
Дата 4.9.2014, 21:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 248
Регистрация: 31.5.2012

Репутация: 2
Всего: 5



Цитата(Gold Dragon @ 4.9.2014,  07:44)


PS
малость не понял синтаксис кода (не встречал в "учебниках")
Код

...
TBSAFileRecords = TArray<TBSAFile>;
....
name : TArray<AnsiChar>;
....
домыслить смогу конечно, но хочется чуть поясниния

Добавлено @ 07:59

TArray - дженерик обёртка, появившаяся в Delphi XE если не путаю. По сути - тот же самый массив. Просто использовать удобнее, чем обычный Array.

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


Это сообщение отредактировал(а) CynicRus - 4.9.2014, 21:27
PM MAIL   Вверх
gesper
Дата 5.9.2014, 13:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


"Shарфик"
*


Профиль
Группа: Участник
Сообщений: 183
Регистрация: 23.2.2005

Репутация: 1
Всего: 2



Цитата(ТоляМБА @ 4.9.2014,  18:25)
Цитата(gesper @  4.9.2014,  16:11 Найти цитируемый пост)
Delphi - коммерческая среда построенная на языке Object Pascal

Цитата
Delphi (Де́лфи, произносится /ˈdɛlˌfi:/[1]) — императивный, структурированный, объектно-ориентированный язык программирования, диалект Object Pascal[2]. Начиная со среды разработки Delphi 7.0[3], в официальных документах Borland стала использовать название Delphi для обозначения языка Object Pascal. Начиная с 2007 года уже язык Delphi (производный от Object Pascal) начал жить своей самостоятельной жизнью

https://ru.wikipedia.org/wiki/Delphi_(язык_программирования)

Первоисточник в любом случае Object Pascal. То что Борланд(которого нет уже) решила назвать Васю Петей, ей очков не прибавило.
И что хорошего в языке который только одна платформа/IDE понимает?

https://ru.wikipedia.org/wiki/Lazarus
https://ru.wikipedia.org/wiki/Free_Pascal
--------------------
...И приколется обломившийся и oбломится приколовшийся...
PM MAIL   Вверх
superVad
Дата 5.9.2014, 21:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 735
Регистрация: 6.4.2006
Где: Черкассы, Украина

Репутация: 7
Всего: 15



Цитата(gesper @  5.9.2014,  12:06 Найти цитируемый пост)
И что хорошего в языке который только одна платформа/IDE понимает?

А что хорошего в языке который много иде понимают? Наоборот же - унификаця.
PM MAIL   Вверх
Gold Dragon
Дата 6.9.2014, 21:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: нет
Всего: 71



народ, не отвлекаемся от темы!... Спорить можно сколько угодно, но Делфи есть и будет.. Lazarus - оболденная вещь (почитал немного, попробовал)... И очень надеюсь что у неё большое будущее лишь потому, что она бесплатная с открытым кодом. А практика показала что такие системы более динамичнее в плане развития и (самое главное) в поддержке..

PS
если всё перевести на историю.... Есть провессиональная армия, а есть народная армия.. И очень понятно кто победит.. Вот только Народная армия раз в 1000 больше....... За две недели опытов с этим языком (хотя лет 10-15 назад я писал на нём примерно на среднем уровне smile ) я понял, что он очень мощный язык, был и остаётся... Но есть один большой недостаток - очень большая неорганизованность, по сравнению с другими языками!

 PSS
свотрю справку по Lazarus... оказывается Total Commander 64-bit уже на нём писан smile

Добавлено @ 21:03
Цитата(superVad @  5.9.2014,  22:33 Найти цитируемый пост)
А что хорошего в языке который много иде понимают? Наоборот же - унификаця. 
очень многое... Например, у PHP много IDE и очень большая конкуренция... каждая версия любого IDE стремиться к "совершенству". Не "в тренде" - помер... А у Делфи, к сожалению, всё самое "вскусное" - сторонних разработчиков.. Самый элементарный пример - подсветка и форматирование кода


Это сообщение отредактировал(а) Gold Dragon - 6.9.2014, 21:03


--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
drkot
Дата 7.9.2014, 18:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ищущий
***


Профиль
Группа: Завсегдатай
Сообщений: 1042
Регистрация: 5.5.2006

Репутация: нет
Всего: 8



Цитата(Gold Dragon @  4.9.2014,  21:59 Найти цитируемый пост)
"пишет как хочет" 

так пишут только школьники, и то только мини поделки.

Ключевой особенностью (по сравнению с PHP) является организация "области видимости" и запрет на перекрестные ссылки.
Идеальный способ организации один класс = один модуль. Описание типов (общих для нескольких модулей) желательно тоже выносить в отдельный модуль. Тоже касается и констант.

На мой взгляд хорошим решением было бы прочесть книгу по Delphi5-7. В то время авторы уделяли внимание основам синтаксиса. А в свежих книгах данная тема зачастую не затрагивается.


--------------------
Ошибка не становится истиной по причине широкого распространения,
как и Истина не становится Ошибкой из-за того, что никто её не видит.
PM   Вверх
bems
Дата 7.9.2014, 18:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 3400
Регистрация: 5.1.2006

Репутация: 18
Всего: 88



Цитата(gesper @  2.9.2014,  21:32 Найти цитируемый пост)
Кто писал это был мазахистом что ли? Форматировать код толдыча пробел....
не болтайте ерундой smile
речь идет о том чтобы не использовать символ табуляции, потому что он может по разному отображаться с разными настройками IDE, соответственно не у всех он будет выглядеть так как у тебя. но кнопкой Tab можно вставлять нужно количество пробелов вместо символа табуляции (тоже настраиваейтся в IDE). талдычить пробел не нужно.



--------------------
Обижено школьников: 8
PM MAIL   Вверх
Gold Dragon
Дата 8.9.2014, 08:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: нет
Всего: 71



Цитата(drkot @  7.9.2014,  19:10 Найти цитируемый пост)
Ключевой особенностью (по сравнению с PHP) является организация "области видимости" и запрет на перекрестные ссылки.
а чуть подробнее.. Области видимости и PHP достаточно организованы



--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
drkot
Дата 8.9.2014, 10:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ищущий
***


Профиль
Группа: Завсегдатай
Сообщений: 1042
Регистрация: 5.5.2006

Репутация: нет
Всего: 8



Цитата(Gold Dragon @  8.9.2014,  09:25 Найти цитируемый пост)
достаточно организованы

речь не о том, что они не организованны, а о том, что они разные

так в каждом модуле Delphi две области видимости: interface (область видима для других модулей) и implementation (видима только внутри модуля).
Также имеется разрешение на совпадение имен (констант переменных или типов) в подключенных модулях. 
Видимость любых описаний всегда ограничена блоком к которому относится описание.


--------------------
Ошибка не становится истиной по причине широкого распространения,
как и Истина не становится Ошибкой из-за того, что никто её не видит.
PM   Вверх
PointerToNil
Дата 9.9.2014, 06:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



*


Профиль
Группа: Участник
Сообщений: 108
Регистрация: 17.6.2013

Репутация: 2
Всего: 6



Цитата(bems @  7.9.2014,  18:35 Найти цитируемый пост)
речь идет о том чтобы не использовать символ табуляции, потому что он может по разному отображаться с разными настройками IDE, соответственно не у всех он будет выглядеть так как у тебя.
странно, что суть этой замечательной возможности не до всех доходит
программеры (на разных языках) спорят о наиболее удобной ширине отступов (2? 4? 8 пробелов?) и никак не придут к одному мнению
тогда как использование для отступов именно символов табуляции плюс настройка ширины отображения таба в IDE как раз позволяет каждому разглядывать и набирать код в удобном именно ему виде, а у другого программиста с другими настройками IDE он отобразится в удобном уже ему виде 
для этого достаточно не мешать табы с пробелами, точнее, мешать по уму и осознанно

касательно дельфовского стиля кодирования - все просто: общепризнанный авторитет один (борланд/эмбаркадеро) и их код (rtl/vcl) и является для (не стремящихся во что бы то ни стало самовыразиться) дельфистов образцом стиля

Это сообщение отредактировал(а) PointerToNil - 9.9.2014, 10:31
PM MAIL   Вверх
bems
Дата 10.9.2014, 20:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 3400
Регистрация: 5.1.2006

Репутация: 18
Всего: 88



Цитата(PointerToNil @  9.9.2014,  06:15 Найти цитируемый пост)
каждому разглядывать и набирать код в удобном именно ему виде

на практике всё просто расползается smile


--------------------
Обижено школьников: 8
PM MAIL   Вверх
Gold Dragon
Дата 10.9.2014, 21:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: нет
Всего: 71



ну из практики скажу.. два пробела это ужасно мало  smile  smile  smile идеально 4

PS
и кстати, "нормальные" IDE легко настраивают табуляцию.. т.е. жмёшь tab, а тебе X пробелов


--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
PointerToNil
Дата 11.9.2014, 09:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



*


Профиль
Группа: Участник
Сообщений: 108
Регистрация: 17.6.2013

Репутация: 2
Всего: 6



Цитата(bems @  10.9.2014,  20:40 Найти цитируемый пост)
на практике всё просто расползается
даже если и всё, то не у всех
а только у тех, кто смешивает табуляцию с пробелами, причем тупо (неправильно)

PM MAIL   Вверх
Poseidon
Дата 11.9.2014, 12:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphi developer
****


Профиль
Группа: Комодератор
Сообщений: 5273
Регистрация: 4.2.2005
Где: Гомель, Беларусь

Репутация: 9
Всего: 133



Цитата(Gold Dragon @  10.9.2014,  21:00 Найти цитируемый пост)
кстати, "нормальные" IDE легко настраивают табуляцию.. т.е. жмёшь tab, а тебе X пробелов 

Вроди как bems об этом и писал 
Цитата(bems @  7.9.2014,  18:35 Найти цитируемый пост)
кнопкой Tab можно вставлять нужно количество пробелов вместо символа табуляции (тоже настраиваейтся в IDE). 
 правда я не скажу с ходу где это настраивается т.к. не пользуюсь табом.



--------------------
Если хочешь, что бы что-то работало - используй написанное, 
если хочешь что-то понять - пиши сам...
PM MAIL ICQ   Вверх
bems
Дата 11.9.2014, 21:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 3400
Регистрация: 5.1.2006

Репутация: 18
Всего: 88



да, а можно и "умное" количество пробелов. но мыши продолжают использовать символ табуляции smile


--------------------
Обижено школьников: 8
PM MAIL   Вверх
Gold Dragon
Дата 12.9.2014, 07:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: нет
Всего: 71



Цитата(drkot @  7.9.2014,  19:10 Найти цитируемый пост)
Идеальный способ организации один класс = один модуль. Описание типов (общих для нескольких модулей) желательно тоже выносить в отдельный модуль. Тоже касается и констант.

два вопроса:

1. Как быть с наследуемыми классами? Лучше (грамотнее) положить в один модуль или всё же раскидать?

2. На сколько оправдано использовать константы в Делфи. Поясню: например, в PHP если констант очень много (например используются в качестве языковых констант), то формирование да и обработка их в целом занимает значительно больше времени, чем к примеру подключить ini-файл и сформировать массив в теми же данными и уже работать с массивом. Хотя памяти константы меньше занимают чем тот же массив

Это сообщение отредактировал(а) Gold Dragon - 12.9.2014, 07:39


--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
bems
Дата 12.9.2014, 09:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 3400
Регистрация: 5.1.2006

Репутация: 18
Всего: 88



Цитата(Gold Dragon @  12.9.2014,  07:38 Найти цитируемый пост)
На сколько оправдано использовать константы в Делфи. Поясню: например, в PHP если констант очень много (например используются в качестве языковых констант), то формирование да и обработка их в целом занимает значительно больше времени, чем к примеру подключить ini-файл и сформировать массив в теми же данными и уже работать с массивом. Хотя памяти константы меньше занимают чем тот же массив

оправданей некуда. не знаю что там в РНР с константами, наверное проблемы связаны с тем что это интерпретируемый язык. в дельфи всё окей с ними.


--------------------
Обижено школьников: 8
PM MAIL   Вверх
drkot
Дата 12.9.2014, 10:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ищущий
***


Профиль
Группа: Завсегдатай
Сообщений: 1042
Регистрация: 5.5.2006

Репутация: нет
Всего: 8



Цитата(Gold Dragon @  12.9.2014,  08:38 Найти цитируемый пост)
Как быть с наследуемыми классами?

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


--------------------
Ошибка не становится истиной по причине широкого распространения,
как и Истина не становится Ошибкой из-за того, что никто её не видит.
PM   Вверх
superVad
Дата 12.9.2014, 11:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 735
Регистрация: 6.4.2006
Где: Черкассы, Украина

Репутация: 7
Всего: 15



Цитата(Gold Dragon @  12.9.2014,  06:38 Найти цитируемый пост)
1. Как быть с наследуемыми классами?

Главное не забывать некоторые моменты для классов в одном модуле - ссылка.
PM MAIL   Вверх
drkot
Дата 12.9.2014, 20:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ищущий
***


Профиль
Группа: Завсегдатай
Сообщений: 1042
Регистрация: 5.5.2006

Репутация: нет
Всего: 8



superVad, статья конечно не плохая... но есть и другая
А код автора хорошо соответствует его же статье... поэтому я бы не сильно закорачивался над этим блогом. Ознакомиться можно, но не более.


--------------------
Ошибка не становится истиной по причине широкого распространения,
как и Истина не становится Ошибкой из-за того, что никто её не видит.
PM   Вверх
superVad
Дата 12.9.2014, 21:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 735
Регистрация: 6.4.2006
Где: Черкассы, Украина

Репутация: 7
Всего: 15



Цитата(drkot @  12.9.2014,  19:59 Найти цитируемый пост)
superVad, статья конечно не плохая... но есть и другаяА код автора хорошо соответствует его же статье... поэтому я бы не сильно закорачивался над этим блогом. Ознакомиться можно, но не более.

Я всего лишь намекнул, что классы в одном модуле имеют доступ к приватным членам друг друга. В свое время я на этом моменте завис.
PM MAIL   Вверх
drkot
Дата 13.9.2014, 13:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ищущий
***


Профиль
Группа: Завсегдатай
Сообщений: 1042
Регистрация: 5.5.2006

Репутация: нет
Всего: 8



Цитата(superVad @  12.9.2014,  22:15 Найти цитируемый пост)
имеют доступ к приватным членам

это как раз и позволяет проектировать абстрактную ветку классов в одном модуле, при этом области видимости можно делать так "как надо" для конечных классов, при этом используя приватные методы и поля.
Так что это очень полезная особенность, жаль только ее применение нигде не описано... вот в результате и появилась директива strict  


--------------------
Ошибка не становится истиной по причине широкого распространения,
как и Истина не становится Ошибкой из-за того, что никто её не видит.
PM   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.2033 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.