|
|
|
Критерий уровня абстракции (слоя абстракции)
|
|||
|---|---|---|---|
|
#18+
LumixBasil A. Sidorovпропущено... Т.е. вы предлагаете вместо использования литерной константы всюду подставлять её значение??? Я предлагаю для нашей дискуссии развести понятие сигнатуры языка и литерального алиаса. - - - - - - - - - - - - Если отвечать на ваш вопрос совсем по-честному и прямо, то ответ: ДА. Если немножко заумно отвечать, то с моей точки зрения расстановка везде алисов литерала и расстановка самого литерала - это одно и то же. Например, каждый раз набирать сложный маркер это слишком муторно, поэтому его дефайнят Код: plaintext 1. Но когда мы в коде расставляем marker, то на самом деле это ничем не отличается от ручного прописывания этого литерала. Т.е. я считаю любую конструкцию, которая лишь добавляет удобство тайпинга косметикой (сахаром). Но если мы захотим облегчить себе тайпинг вот так Код: plaintext 1. то хотя это тоже является облегчением тайпинга, в данном случае россыпи marker в коде не являются аналогом ручной расстановки маркера в коде, потому что marker может быть изменен. Первый случай я обозначил как alias a = 5 а второй случай я обозначил как a = 5. Это искусственные обозначения, которые не имеют отношения к какому-то конкретному языку. Это кросс-языковая символика. Я не понимаю , а что вы имели ввиду когда говорили о несостоятельности примера Програмера о солдатиках ( пластмассовых оловяный и пластелиновых) , если сейчас предлагаете то же самое. #define marker "fdg7s98dfg798sd7g098sdf70g98s7df9g87sd09fg87sfd9g87sd09g87" //пластмассовый солдатик marker = "fdg7s98dfg798sd7g098sdf70g98s7df9g87sd09fg87sfd9g87sd09g87" // пластилиновый солдатик Его можно перелипить при возврате из фукции , под более соотвествующий месту куда его нужно поставить в игровое поле , например добавить ему мечь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2013, 19:16 |
|
||
|
Критерий уровня абстракции (слоя абстракции)
|
|||
|---|---|---|---|
|
#18+
LumixЕсли отвечать на ваш вопрос совсем по-честному и прямо, то ответ: ДАА вот с этого места, пожалуйста, поподробнее. Вы, вроде, не листинг препроцессора собрались анализировать, а то, что пишут реальные программисты? Один потратил своё время, подумал и определил две константы, хотя сейчас их значения одинаковы. Второй по рабоче-крестьянски воткнул в код одно и тоже конкретное значения. Оба варианты прошли отладку, тестирование и развёртывание у заказчика. Оба варианта одинаково работают. Прошло полгода и одна константа получила новое значение. Требования заказчика изменились или там действующее законодательство - неважно. Первый изменил одну константу, собрал проект и запустил тестирование, которое, скорее всего, пройдёт без изъянов - если человек подумал об определении констант, то он, вероятно, подумал и о том, что эти константы могут измениться. Очень даже может быть, что он уже и отлаживался и тестировался на разных значениях, включая граничные. Таким образом, код первого, в условиях жёсткого дефицита времени, можно отдать заказчику сразу после сборки. Второму придётся сначала разобраться, что и где менять, затем отладить и оттестировать новый код. Абстракции абстракциями, но не до такой же степени?! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2013, 19:24 |
|
||
|
Критерий уровня абстракции (слоя абстракции)
|
|||
|---|---|---|---|
|
#18+
Basil A. SidorovLumixЕсли отвечать на ваш вопрос совсем по-честному и прямо, то ответ: ДАА вот с этого места, пожалуйста, поподробнее. Вы, вроде, не листинг препроцессора собрались анализировать, а то, что пишут реальные программисты? Один потратил своё время, подумал и определил две константы, хотя сейчас их значения одинаковы. Второй по рабоче-крестьянски воткнул в код одно и тоже конкретное значения. Оба варианты прошли отладку, тестирование и развёртывание у заказчика. Оба варианта одинаково работают. Прошло полгода и одна константа получила новое значение. Требования заказчика изменились или там действующее законодательство - неважно. Первый изменил одну константу, собрал проект и запустил тестирование, которое, скорее всего, пройдёт без изъянов - если человек подумал об определении констант, то он, вероятно, подумал и о том, что эти константы могут измениться. Очень даже может быть, что он уже и отлаживался и тестировался на разных значениях, включая граничные. Таким образом, код первого, в условиях жёсткого дефицита времени, можно отдать заказчику сразу после сборки. Второму придётся сначала разобраться, что и где менять, затем отладить и оттестировать новый код. Абстракции абстракциями, но не до такой же степени?! Мне так кажется или логический круг замыкается 14530319 Нужно определяться , что всетаки первичнее код или абстракция . Что есть причина И Что есть следствие . Еще раз моя точка зрения. Абстракция - причина Код - следствие. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2013, 19:49 |
|
||
|
Критерий уровня абстракции (слоя абстракции)
|
|||
|---|---|---|---|
|
#18+
ДохтаРЕще раз моя точка зрения. Абстракция - причина Код - следствие."Не согласный я" (ц) Шариков. Между кодом и абстракцией нет причинных связей. Абстракции используются на этапе проектирования. В этот момент кода ещё нет - он не нужен. Код пишется тогда, когда начинается реализация проекта. И эта реализация учитывает все детали. Даже те, которые не были уточнены на этапе проектирования. Даже если кто-то считает, что "этапов нет" - причинной связи между абстракцией (задача) и кодом (реализация решения) всё равно не возникает. А формальный анализ произвольного языка - интересно, но не продуктивно. Лингвисты по этим граблям, как я понимаю, уже потоптались. Давно и плотно. P.S. "Структурная лингвистика" - не выдумка Стругацких ("Попытка к бегству"), а вполне реальное направление, популярное в годы написания рассказа. Насколько я понимаю - интересно, но "не сложилось". Если у кого-то другая информация - с интересом выслушаю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2013, 20:35 |
|
||
|
Критерий уровня абстракции (слоя абстракции)
|
|||
|---|---|---|---|
|
#18+
Basil A. SidorovДохтаРЕще раз моя точка зрения. Абстракция - причина Код - следствие."Не согласный я" (ц) Шариков. Между кодом и абстракцией нет причинных связей. Правильно. Между кодом и абстракций связи нет , правильнее сказать мы ее в этом топике пытаемся найти. А между абстракций и кодом прямая причинно следственная связь. Basil A. SidorovДаже если кто-то считает, что "этапов нет" - причинной связи между абстракцией (задача) и кодом (реализация решения) всё равно не возникает. связь есть даже только потому, что абстракция и код делаются в рамках одного проекта. Абстракция реализуется в коде , как логическое продолжение , реализация проекта. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2013, 21:29 |
|
||
|
Критерий уровня абстракции (слоя абстракции)
|
|||
|---|---|---|---|
|
#18+
ДохтаРсвязь есть даже только потому, что абстракция и код делаются в рамках одного проектаЯ уже приводил пример с приватным наследованием в плюсах: семантика - класс реализуется посредством класса. Связей нет, а повторно используемый код - есть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2013, 21:52 |
|
||
|
Критерий уровня абстракции (слоя абстракции)
|
|||
|---|---|---|---|
|
#18+
Basil A. SidorovВторой по рабоче-крестьянски воткнул в код одно и тоже конкретное значения. Вы все правильно пишите. Разумеется константы, которые могут быть изменены в будущем под воздействием внешних требований всегда будут проведены через сигнатуру. Эти константы можно даже назвать конфигами. И наверное самое частое, что приходит в голову это какие-нибудь реквизиты доступа. Просто конкретно для плюсов часто константы определяют через дефайн, но тут подумал и решил, что дефайн это ненадежно, потому что его можно переопределить и он не является подлинным литеральным алиасом, а больше смахивает на переменную. Подлинным литеральным алисом в плюсах все же является const. В яваскрипте есть константы типа PI или NaN, но они заданы сам языком и пользовательские константы невозможны, только если всякие извраты через жопу. Короче, я просто для решения проблемы предлагаю ввести в концепцию доп.термин литеральная сигнатура Над её определением я пока думаю, но что-то типа ЛС - это сигнатура, которая содержит только единственную операцию - возврат литерала и её значение задается перед началом исполнения программы и гарантировано защищено от изменений или языком или кодстайлом. Тем самым я допускаю использование в качестве литерала например обычной переменной, если она как-то синтаксически отделена кодстайлом, принятым командой. Например, классический кодстайл для таких случаев - сигнатура состоит только из заглавных букв или нижнего подчеркивания или можно через префикс какой-нибудь типа conf например. Код: plaintext 1. Это обычные переменные, но кодстайловый префикс conf превращает их в константы как будто они Код: plaintext 1. Так же можно использовать в качестве летеральной сигнатуры даже функцию Код: plaintext 1. 2. В данном случае функция используется чисто ради косметики, потому что эта системная литеральная сигнатура обезобразит код своим говенным видом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2013, 22:21 |
|
||
|
Критерий уровня абстракции (слоя абстракции)
|
|||
|---|---|---|---|
|
#18+
LumixТем самым я допускаю использование в качестве литерала например обычной переменной, если она как-то синтаксически отделена кодстайлом, принятым командой. Например, классический кодстайл для таких случаев - сигнатура состоит только из заглавных букв или нижнего подчеркивания или можно через префикс какой-нибудь типа conf например. Код: plaintext 1. Это обычные переменные, но кодстайловый префикс conf превращает их в константы как будто они Абстракция кодстайл определяется до создания кода ее использующего . Собствено что еше раз доказывает правильность парадигмы абстракция -> код. Хочу обратить ваше внимание, что для решаемой вами задачи это просто еще один частный случай. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2013, 23:02 |
|
||
|
Критерий уровня абстракции (слоя абстракции)
|
|||
|---|---|---|---|
|
#18+
ну, парни, извиняйте, я вываливаюсь из дискуссии. Релиз мажорной версии - не шутки, у меня время кончилось. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2013, 00:16 |
|
||
|
Критерий уровня абстракции (слоя абстракции)
|
|||
|---|---|---|---|
|
#18+
LumixВы все правильно пишите. Разумеется константы, которые могут быть изменены в будущем под воздействием внешних требований всегда будут проведены через сигнатуруВы, батюшка или крестик снимите ...Эти константы можно даже назвать конфигами. И наверное самое частое, что приходит в голову это какие-нибудь реквизиты доступа. Просто конкретно для плюсов часто константы определяют через дефайн, но тут подумал и решил, что дефайн это ненадежно, потому что его можно переопределить и он не является подлинным литеральным алиасом, а больше смахивает на переменную. Подлинным литеральным алисом в плюсах все же является constЭто демагогия. Я, конечно, в отпуске, но уже утомило. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2013, 08:00 |
|
||
|
Критерий уровня абстракции (слоя абстракции)
|
|||
|---|---|---|---|
|
#18+
Basil A. SidorovДохтаРсвязь есть даже только потому, что абстракция и код делаются в рамках одного проектаЯ уже приводил пример с приватным наследованием в плюсах: семантика - класс реализуется посредством класса . Связей нет, а повторно используемый код - есть. Так я сосбтвенно это и говорил. При создании кода в общем случае не возникает новой абстракции или уровня абстракции. Все абстракции возникают при проектировании, а потом реализуются в коде. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2013, 14:45 |
|
||
|
Критерий уровня абстракции (слоя абстракции)
|
|||
|---|---|---|---|
|
#18+
LumixЭто обычные переменные, но кодстайловый префикс conf превращает их в константы Он не превращает их в константы. Даже const не превращает их в константы. Пока для областей памяти, в которых хранятся их значения, не будет включена антиотладочная защита, гарантировать их неприкосновенность нельзя в принципе. Const и прочее - защита от дурака, не более. LumixТак же можно использовать в качестве летеральной сигнатуры даже функцию ... и получить по щам за оверхед. В сишном случае уж лучше макрос. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2013, 08:42 |
|
||
|
Критерий уровня абстракции (слоя абстракции)
|
|||
|---|---|---|---|
|
#18+
ДохтаРАбстракция реализуется в коде , как логическое продолжение , реализация проекта. +1 остальное пока не читал. это ж умереть можно от перенапряжения. авторВопрос по теории: какие изменения в коде являются минимальным новым слоем абстракции? пока кажется что никакие. Код можно писать вообще не вводя никакие абстракции. новый слой должен появляться в результате перепроектирования предыдущие 38 страниц постараюсь почитать, если не засну. )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2013, 00:24 |
|
||
|
Критерий уровня абстракции (слоя абстракции)
|
|||
|---|---|---|---|
|
#18+
Novis DixiLumixЭто обычные переменные, но кодстайловый префикс conf превращает их в константы Он не превращает их в константы. Даже const не превращает их в константы. Пока для областей памяти, в которых хранятся их значения, не будет включена антиотладочная защита, гарантировать их неприкосновенность нельзя в принципе. Const и прочее - защита от дурака, не более.. и вообще не защита, а просьба к компилятору последить за мной, что бы я по ошибке не поменял что не собирался. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2013, 00:26 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=38334921&tid=1341742]: |
0ms |
get settings: |
7ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
151ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
| others: | 218ms |
| total: | 449ms |

| 0 / 0 |
