powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Критерий уровня абстракции (слоя абстракции)
14 сообщений из 939, страница 38 из 38
Критерий уровня абстракции (слоя абстракции)
    #38324696
ДохтаР
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LumixBasil A. Sidorovпропущено...
Т.е. вы предлагаете вместо использования литерной константы всюду подставлять её значение???

Я предлагаю для нашей дискуссии развести понятие сигнатуры языка и литерального алиаса.

- - - - - - - - - - - -

Если отвечать на ваш вопрос совсем по-честному и прямо, то ответ: ДА.
Если немножко заумно отвечать, то с моей точки зрения расстановка везде алисов литерала и расстановка самого литерала - это одно и то же.
Например, каждый раз набирать сложный маркер это слишком муторно, поэтому его дефайнят

Код: plaintext
1.
#define marker "fdg7s98dfg798sd7g098sdf70g98s7df9g87sd09fg87sfd9g87sd09g87"



Но когда мы в коде расставляем marker, то на самом деле это ничем не отличается от ручного прописывания этого литерала. Т.е. я считаю любую конструкцию, которая лишь добавляет удобство тайпинга косметикой (сахаром).

Но если мы захотим облегчить себе тайпинг вот так
Код: plaintext
1.
marker = "fdg7s98dfg798sd7g098sdf70g98s7df9g87sd09fg87sfd9g87sd09g87"



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

Первый случай я обозначил как alias a = 5 а второй случай я обозначил как a = 5. Это искусственные обозначения, которые не имеют отношения к какому-то конкретному языку. Это кросс-языковая символика.

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

#define marker "fdg7s98dfg798sd7g098sdf70g98s7df9g87sd09fg87sfd9g87sd09g87" //пластмассовый солдатик

marker = "fdg7s98dfg798sd7g098sdf70g98s7df9g87sd09fg87sfd9g87sd09g87" // пластилиновый солдатик
Его можно перелипить при возврате из фукции , под более соотвествующий месту куда его нужно поставить в игровое поле , например добавить ему мечь.
...
Рейтинг: 0 / 0
Критерий уровня абстракции (слоя абстракции)
    #38324707
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LumixЕсли отвечать на ваш вопрос совсем по-честному и прямо, то ответ: ДАА вот с этого места, пожалуйста, поподробнее.
Вы, вроде, не листинг препроцессора собрались анализировать, а то, что пишут реальные программисты?
Один потратил своё время, подумал и определил две константы, хотя сейчас их значения одинаковы.
Второй по рабоче-крестьянски воткнул в код одно и тоже конкретное значения.
Оба варианты прошли отладку, тестирование и развёртывание у заказчика. Оба варианта одинаково работают.
Прошло полгода и одна константа получила новое значение. Требования заказчика изменились или там действующее законодательство - неважно.
Первый изменил одну константу, собрал проект и запустил тестирование, которое, скорее всего, пройдёт без изъянов - если человек подумал об определении констант, то он, вероятно, подумал и о том, что эти константы могут измениться. Очень даже может быть, что он уже и отлаживался и тестировался на разных значениях, включая граничные.
Таким образом, код первого, в условиях жёсткого дефицита времени, можно отдать заказчику сразу после сборки.
Второму придётся сначала разобраться, что и где менять, затем отладить и оттестировать новый код.
Абстракции абстракциями, но не до такой же степени?!
...
Рейтинг: 0 / 0
Критерий уровня абстракции (слоя абстракции)
    #38324726
ДохтаР
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. SidorovLumixЕсли отвечать на ваш вопрос совсем по-честному и прямо, то ответ: ДАА вот с этого места, пожалуйста, поподробнее.
Вы, вроде, не листинг препроцессора собрались анализировать, а то, что пишут реальные программисты?
Один потратил своё время, подумал и определил две константы, хотя сейчас их значения одинаковы.
Второй по рабоче-крестьянски воткнул в код одно и тоже конкретное значения.
Оба варианты прошли отладку, тестирование и развёртывание у заказчика. Оба варианта одинаково работают.
Прошло полгода и одна константа получила новое значение. Требования заказчика изменились или там действующее законодательство - неважно.
Первый изменил одну константу, собрал проект и запустил тестирование, которое, скорее всего, пройдёт без изъянов - если человек подумал об определении констант, то он, вероятно, подумал и о том, что эти константы могут измениться. Очень даже может быть, что он уже и отлаживался и тестировался на разных значениях, включая граничные.
Таким образом, код первого, в условиях жёсткого дефицита времени, можно отдать заказчику сразу после сборки.
Второму придётся сначала разобраться, что и где менять, затем отладить и оттестировать новый код.
Абстракции абстракциями, но не до такой же степени?!

Мне так кажется или логический круг замыкается
14530319

Нужно определяться , что всетаки первичнее код или абстракция .
Что есть причина
И Что есть следствие .

Еще раз моя точка зрения.
Абстракция - причина
Код - следствие.
...
Рейтинг: 0 / 0
Критерий уровня абстракции (слоя абстракции)
    #38324770
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДохтаРЕще раз моя точка зрения.
Абстракция - причина
Код - следствие."Не согласный я" (ц) Шариков.
Между кодом и абстракцией нет причинных связей.
Абстракции используются на этапе проектирования. В этот момент кода ещё нет - он не нужен.
Код пишется тогда, когда начинается реализация проекта. И эта реализация учитывает все детали. Даже те, которые не были уточнены на этапе проектирования.
Даже если кто-то считает, что "этапов нет" - причинной связи между абстракцией (задача) и кодом (реализация решения) всё равно не возникает.
А формальный анализ произвольного языка - интересно, но не продуктивно. Лингвисты по этим граблям, как я понимаю, уже потоптались. Давно и плотно.

P.S. "Структурная лингвистика" - не выдумка Стругацких ("Попытка к бегству"), а вполне реальное направление, популярное в годы написания рассказа. Насколько я понимаю - интересно, но "не сложилось".
Если у кого-то другая информация - с интересом выслушаю.
...
Рейтинг: 0 / 0
Критерий уровня абстракции (слоя абстракции)
    #38324801
ДохтаР
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. SidorovДохтаРЕще раз моя точка зрения.
Абстракция - причина
Код - следствие."Не согласный я" (ц) Шариков.
Между кодом и абстракцией нет причинных связей.


Правильно.

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

А между абстракций и кодом прямая причинно следственная связь.

Basil A. SidorovДаже если кто-то считает, что "этапов нет" - причинной связи между абстракцией (задача) и кодом (реализация решения) всё равно не возникает.


связь есть даже только потому, что абстракция и код делаются в рамках одного проекта.
Абстракция реализуется в коде , как логическое продолжение , реализация проекта.
...
Рейтинг: 0 / 0
Критерий уровня абстракции (слоя абстракции)
    #38324823
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДохтаРсвязь есть даже только потому, что абстракция и код делаются в рамках одного проектаЯ уже приводил пример с приватным наследованием в плюсах: семантика - класс реализуется посредством класса. Связей нет, а повторно используемый код - есть.
...
Рейтинг: 0 / 0
Критерий уровня абстракции (слоя абстракции)
    #38324841
Фотография Lumix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. SidorovВторой по рабоче-крестьянски воткнул в код одно и тоже конкретное значения.


Вы все правильно пишите. Разумеется константы, которые могут быть изменены в будущем под воздействием внешних требований всегда будут проведены через сигнатуру. Эти константы можно даже назвать конфигами. И наверное самое частое, что приходит в голову это какие-нибудь реквизиты доступа.

Просто конкретно для плюсов часто константы определяют через дефайн, но тут подумал и решил, что дефайн это ненадежно, потому что его можно переопределить и он не является подлинным литеральным алиасом, а больше смахивает на переменную. Подлинным литеральным алисом в плюсах все же является const. В яваскрипте есть константы типа PI или NaN, но они заданы сам языком и пользовательские константы невозможны, только если всякие извраты через жопу.

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

Над её определением я пока думаю, но что-то типа ЛС - это сигнатура, которая содержит только единственную операцию - возврат литерала и её значение задается перед началом исполнения программы и гарантировано защищено от изменений или языком или кодстайлом.

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

Код: plaintext
1.
confDbLogin = "root", confDbPass = "123";



Это обычные переменные, но кодстайловый префикс conf превращает их в константы как будто они

Код: plaintext
1.
const string dbLogin = "root";



Так же можно использовать в качестве летеральной сигнатуры даже функцию

Код: plaintext
1.
2.
readFile(root() + "1.txt")
root() { return __scriptpath__; } // это литеральная сигнатура, т.е. литерал, хотя это и функция по синтаксису



В данном случае функция используется чисто ради косметики, потому что эта системная литеральная сигнатура обезобразит код своим говенным видом.
...
Рейтинг: 0 / 0
Критерий уровня абстракции (слоя абстракции)
    #38324862
ДохтаР
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LumixТем самым я допускаю использование в качестве литерала например обычной переменной, если она как-то синтаксически отделена кодстайлом, принятым командой. Например, классический кодстайл для таких случаев - сигнатура состоит только из заглавных букв или нижнего подчеркивания или можно через префикс какой-нибудь типа conf например.

Код: plaintext
1.
confDbLogin = "root", confDbPass = "123";



Это обычные переменные, но кодстайловый префикс conf превращает их в константы как будто они



Абстракция кодстайл определяется до создания кода ее использующего .
Собствено что еше раз доказывает правильность парадигмы абстракция -> код.

Хочу обратить ваше внимание, что для решаемой вами задачи это просто еще один частный случай.
...
Рейтинг: 0 / 0
Критерий уровня абстракции (слоя абстракции)
    #38324898
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну, парни, извиняйте, я вываливаюсь из дискуссии. Релиз мажорной версии - не шутки, у меня время кончилось.
...
Рейтинг: 0 / 0
Критерий уровня абстракции (слоя абстракции)
    #38324977
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LumixВы все правильно пишите. Разумеется константы, которые могут быть изменены в будущем под воздействием внешних требований всегда будут проведены через сигнатуруВы, батюшка или крестик снимите ...Эти константы можно даже назвать конфигами. И наверное самое частое, что приходит в голову это какие-нибудь реквизиты доступа.
Просто конкретно для плюсов часто константы определяют через дефайн, но тут подумал и решил, что дефайн это ненадежно, потому что его можно переопределить и он не является подлинным литеральным алиасом, а больше смахивает на переменную. Подлинным литеральным алисом в плюсах все же является constЭто демагогия.
Я, конечно, в отпуске, но уже утомило.
...
Рейтинг: 0 / 0
Критерий уровня абстракции (слоя абстракции)
    #38325557
ДохтаР
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. SidorovДохтаРсвязь есть даже только потому, что абстракция и код делаются в рамках одного проектаЯ уже приводил пример с приватным наследованием в плюсах: семантика - класс реализуется посредством класса . Связей нет, а повторно используемый код - есть.


Так я сосбтвенно это и говорил.
При создании кода в общем случае не возникает новой абстракции или уровня абстракции.
Все абстракции возникают при проектировании, а потом реализуются в коде.
...
Рейтинг: 0 / 0
Критерий уровня абстракции (слоя абстракции)
    #38333622
Фотография Novis Dixi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LumixЭто обычные переменные, но кодстайловый префикс conf превращает их в константы

Он не превращает их в константы. Даже const не превращает их в константы. Пока для областей памяти, в которых хранятся их значения, не будет включена антиотладочная защита, гарантировать их неприкосновенность нельзя в принципе. Const и прочее - защита от дурака, не более.
LumixТак же можно использовать в качестве летеральной сигнатуры даже функцию

... и получить по щам за оверхед. В сишном случае уж лучше макрос.
...
Рейтинг: 0 / 0
Критерий уровня абстракции (слоя абстракции)
    #38334919
Фотография tchingiz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДохтаРАбстракция реализуется в коде , как логическое продолжение , реализация проекта.
+1

остальное пока не читал. это ж умереть можно от перенапряжения.


авторВопрос по теории:
какие изменения в коде являются минимальным новым слоем абстракции?

пока кажется что никакие. Код можно писать вообще не вводя никакие абстракции.
новый слой должен появляться в результате перепроектирования


предыдущие 38 страниц постараюсь почитать, если не засну.
))
...
Рейтинг: 0 / 0
Критерий уровня абстракции (слоя абстракции)
    #38334921
Фотография tchingiz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Novis DixiLumixЭто обычные переменные, но кодстайловый префикс conf превращает их в константы

Он не превращает их в константы. Даже const не превращает их в константы. Пока для областей памяти, в которых хранятся их значения, не будет включена антиотладочная защита, гарантировать их неприкосновенность нельзя в принципе. Const и прочее - защита от дурака, не более..
и вообще не защита, а просьба к компилятору последить за мной, что бы я по ошибке не поменял что не собирался.
...
Рейтинг: 0 / 0
14 сообщений из 939, страница 38 из 38
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Критерий уровня абстракции (слоя абстракции)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]