OberonCore https://forum.oberoncore.ru/ |
|
Разделение данных от логики https://forum.oberoncore.ru/viewtopic.php?f=6&t=2900 |
Страница 1 из 1 |
Автор: | Роман М. [ Воскресенье, 10 Октябрь, 2010 21:07 ] |
Заголовок сообщения: | Разделение данных от логики |
Знакомство с языком Оберон-2 и связанные с ним ограничения (отсутствие поддержки константных массивов и других составных структур) натолкнули меня на мысль, что строки и любые другие составные структуры данных должны быть представлены в виде файлов ресурсов и при нужде подгружать их в память из постоянных носителей данных (диска, флэш-памяти, магнитной ленты и прочих). Как вы смотрите на использование строк в программах на Оберонах? Какова причина того, что в Обероне-2 константой можно задавать последовательность символов (строки), а других составных типов - нет? Должны ли строки существовать в программе или отдельно от неё? Если следовать принципу разделения данных от логики по примеру MVC, то получается, следует таки отделять. Но насколько это удобно и в каких случаях в этом нет необходимости? |
Автор: | Rifat [ Понедельник, 11 Октябрь, 2010 00:20 ] |
Заголовок сообщения: | Re: Разделение данных от логики |
Цитата: Как вы смотрите на использование строк в программах на Оберонах? Считаю, что константные строки в программе должны быть. Цитата: Какова причина того, что в Обероне-2 константой можно задавать последовательность символов (строки), а других составных типов - нет? Думаю, что составные типы на то они и составные, что их можно составить из нескольких более простых конструкций. Если делать константые объявления в языке то это усложнит компилятор. Вирт и так пишет, что: "Although compiler technology is a reasonably mature subject, most engineers hesitate to build their own compilers, particularly if manpower is scarce. The principal reason is the belief that compilers are inherently complex and large programs." А если еще константные объявления для составных типов ввести, то еще больше инженеров будет "hesitate to build their own compilers" Цитата: Должны ли строки существовать в программе или отдельно от неё? Считаю, что в программе строки должны существовать. Цитата: Но насколько это удобно и в каких случаях в этом нет необходимости? В случае простых программ нет необходимости выносить строки в ресурсы. К тому же сопровождать программу вместе с ресурными файлами сложнее, чем просто исходный файл со строками. |
Автор: | Илья Ермаков [ Понедельник, 11 Октябрь, 2010 09:18 ] |
Заголовок сообщения: | Re: Разделение данных от логики |
Если у Вас в задаче обширные ресурсы, то, конечно, разумно использовать файлы ресурсов. |
Автор: | Александр Ильин [ Понедельник, 11 Октябрь, 2010 09:22 ] |
Заголовок сообщения: | Re: Разделение данных от логики |
Роман М. писал(а): Как вы смотрите на использование строк в программах на Оберонах? А как же имена файлов с ресурсами указывать?
|
Автор: | Роман М. [ Понедельник, 11 Октябрь, 2010 09:46 ] |
Заголовок сообщения: | Re: Разделение данных от логики |
Александр Ильин писал(а): Роман М. писал(а): Как вы смотрите на использование строк в программах на Оберонах? А как же имя файлов с ресурсами указывать?Код: CONST Default_File_Name = 12345; Default_File_Path = 12346; Some_Message_For_User = 2001; Warning_Message = 2002; Строки зачем нужны-то, вообще? Строки используются:
Жёстковато вышло. |
Автор: | Роман М. [ Понедельник, 11 Октябрь, 2010 09:55 ] |
Заголовок сообщения: | Re: Разделение данных от логики |
Rifat писал(а): Думаю, что составные типы на то они и составные, что их можно составить из нескольких более простых конструкций. Если делать константые объявления в языке то это усложнит компилятор. Строка - тоже составной тип и можно было ввести на наих ограничения также, как и на другие константы составных типов. А то выглядит, будто строки прошли по чьей-то протекции, а других - закосили.Rifat писал(а): В случае простых программ нет необходимости выносить строки в ресурсы. Согласен. Нужен компромисс. Для простых программ нет смысла усложнять.К тому же сопровождать программу вместе с ресурными файлами сложнее, чем просто исходный файл со строками. В принципе отделение строк (данных) от кода можно считать дополнительным упрощением для поддержки кода. Проще константы поддерживать, чем строки. |
Автор: | Info21 [ Понедельник, 11 Октябрь, 2010 10:20 ] |
Заголовок сообщения: | Re: Разделение данных от логики |
Роман М. писал(а): Строка - тоже составной тип и можно было ввести на наих ограничения также, как и на другие константы составных типов. А то выглядит, будто строки прошли по чьей-то протекции, а других - закосили. Массивы и особенно литерные цепочки -- промежуточная штука между элементарными типами и полноценными составными (записями).Как с любыми промежуточными штуками есть момент условности. Но в КП баланс хороший: пусть для цепочек и нет явного типа, но необходимый минимум поддержки есть. Всё-таки К в ИКТ -- это коммуникации, а развитая коммуникация (что бы ни говорили драконолюбы) -- это прежде всего текст, и одних литер маловато. ------------------ Со "строками" всё время путаница. От StdLog.String <> StdLog.Ln до документации по меню, где надо ставить четыре строки в одной строке. Поэтому проще всего оказалось во всех текстах перейти на "литерные цепочки". |
Автор: | Роман М. [ Понедельник, 11 Октябрь, 2010 10:53 ] |
Заголовок сообщения: | Re: Разделение данных от логики |
Info21 писал(а): Со "строками" всё время путаница. От StdLog.String <> StdLog.Ln до документации по меню, где надо ставить четыре строки в одной строке. Поэтому проще всего оказалось во всех текстах перейти на "литерные цепочки". StdLog вкупе со строками - вообще отдельная песня. Всё пытаюсь найти золотую середину при использовании, но что-то не получается. Мешает лишняя возня при работе с параметрами. Хочется указать просто: Format("Some string: %s. Key = %d", str, key) и не париться со склеиванием строк и StdLog. |
Автор: | Info21 [ Понедельник, 11 Октябрь, 2010 12:16 ] |
Заголовок сообщения: | Re: Разделение данных от логики |
Роман М. писал(а): StdLog вкупе со строками - вообще отдельная песня. Всё пытаюсь найти золотую середину при использовании, но что-то не получается. Мешает лишняя возня при работе с параметрами. Хочется указать просто: Format("Some string: %s. Key = %d", str, key) и не париться со склеиванием строк и StdLog. Тут слишком много вариаций, особенно с числами с плавающей точкой. Посмотрите Lib, там какие-то шорткаты есть. Если не смотрели. Видимо, всё-таки, сделать фасадик-настройки под себя/под своих коллег -- единственный тут разумный способ. |
Автор: | id_ler [ Вторник, 12 Октябрь, 2010 09:17 ] |
Заголовок сообщения: | Re: Разделение данных от логики |
Оригинальное применение констант в О3 Цитата: CONST
copyright* = "© 1998 - 2009 Werner Braun, Oі Software GmbH & Co. KG, Germany"; (* License-Types *) licInt* = "Oі internal, not for distribution"; licGpl* = "GPLv3"; licCom* = "commercial"; license* = licGpl; |
Автор: | Роман М. [ Вторник, 12 Октябрь, 2010 12:51 ] |
Заголовок сообщения: | Re: Разделение данных от логики |
id_ler писал(а): Оригинальное применение констант в О3 Цитата: CONST copyright* = "© 1998 - 2009 Werner Braun, Oі Software GmbH & Co. KG, Germany"; (* License-Types *) licInt* = "Oі internal, not for distribution"; licGpl* = "GPLv3"; licCom* = "commercial"; license* = licGpl; В данном случае, скорее всего, сделано так для того, чтобы скомпилированные модули содержали лицензионнную информацию и можно было бы обнаружить факт использования модулей не по лицензии. |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |