Русскоязычное программирование

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Русскоязычное программирование » прослеживание требований, кода и вклада » шаблон проектирования Приспособленец применительно к авторству


шаблон проектирования Приспособленец применительно к авторству

Сообщений 1 страница 10 из 10

1

https://ru.wikipedia.org/wiki/Приспособленец_(шаблон_проектирования)
https://en.wikipedia.org/wiki/Flyweight_pattern

используется для уменьшения затрат при работе с большим количеством мелких объектов.

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

Тогда у сегмента получается три набора свойств:
- свойства сегмента, зависящие от местоположения сегмента
- свойства сегмента, зависящие от автора/списка авторов
- свойства сегмента, относящиеся к содержанию сегмента
    (сегмент текста может повторяться в разных местах, например если это имя переменной)

Поэтому нужны классы ПозицияСегмента, ГруппаАвторовСегмента (сегмент с приписанными авторскими правами), ФрагментСодержимогоСегмента, парные (потому что шаблон приспособленец требует два интерфейса) к ним классы Позиция, ГруппаАвторов, ФрагментСодержимого, а так же фабрики РеестрСегментов, РеестрГруппАвторов, РеестрФрагментовСодержимого

Зачем это нужно? После критики Уткина об отсутствии уровня строк, я хочу добавить в модель ещё три уровня: файлов, авторства, и отступов.

Итого:
Уровень_Файлов
  (цель - выписать имена всех файлов, участвующих в сборке)
Уровень_Байтов
  (цель - приписать каждому байту из какого он файла)
Уровень_Авторства
  (цель - приписать каждому байту (или биту?), кто его автор)
Уровень_Юникода
  (цель - собрать байты в Codepoint-ы)
Уровень_Символов
  (цель - Codepoint-ы в символы, они там составные и альтернативные бывают, например переводы строки)
Уровень_Номеров_Исходных_Строк
  (цель - разбить текст на строки, приписать номера строк каждому символу)
Уровень_Лексем_Препроцессора
Уровень_Грамматики_Препроцессора
  (цель - препроцессором подключить тексты других файлов в общий текст)
Уровень_Номеров_Отпрепроцешшеных_Строк (если такие номера нужны)
  (цель - пересчитать номера строк в общем файле, который отправится на компиляцию)
Уровень_Отступов (питон рекомендует 8 пробелов на табуляцию и предпочитать использовать пробелы)
  (цель - снабдить каждый символ информацией о его отступе)
Уровень_Лексем_Языка (ДКА)
  (цель - собрать символы в части слов)
Уровень_Слов_Языка (КС-грамматики на уровне слов)
  (цель - собрать части слов в словоформы)
Уровень_Грамматики_Языка (Смысл-текст)
  (цель - связать словоформы в что-нибудь связное)

Страшно представить, сколько это всё займёт в памяти, учитывая, что каждый объект это минимум 32 байта

0

2

Главное не перестараться. Бюрократия хороша к месту. А ее избыток приводит к проблемам :).
С другой стороны, уровни не обязательно должны сопровождать текст. Может текст будет сопровождать уровни? Сделайте иерархии. Например уровень файлов вполне можно представлять как папки (имя файла), внутри которой расположена информация о тексте. Короче подумайте о дереве :). Может не везде его натянуть можно, но кое-где будет вполне себе органично.

Отредактировано utkin (2018-05-08 12:52:32)

0

3

Уровень_Авторства
  (цель - приписать каждому байту (или биту?), кто его автор)

Во-первых авторство над байтами, т.е. не целевыми единицами.  Но и над знаками будет проблема. Т.е. если просто переименовать все слова - авторство полностью изменится?
С другой стороны, новые слова могут лучше соответствовать нужному смыслу. Очевидно, что указанный уровень авторства неконструктивен и не способен сколько-нибудь гарантированно и адекватно выражать человеческий вклад. Байтометрия не сильно лучше знакометрии, а знакометрия - строкометрии. Про последнюю очень много плохого в разных материалах по технике разработки ПО давно написано.

Уровень_Номеров_Исходных_Строк

Уровень_Отступов

Уровни номеров исходных строк и отступов вообще имеет большие проблемы (как лишние сущности вроде подсветки). Так мало того, они ещё и разделены разными другими уровнями.

Лис написал(а):

питон рекомендует 8 пробелов на табуляцию и предпочитать использовать пробелы

Откройте уже пакет Офиса и посмотрите что такое отступ как сущность, а не рекомендуемый костыль из пробелов и табов.
Там даже же есть такая штука как многоуровневый список.

Уровень_Номеров_Отпрепроцешшеных_Строк

Вставляем новую строку и теряем все номера строк ниже.

Лис написал(а):

Уровень_Грамматики_Препроцессора

2+2 будет вычислять он?

Уровень_Юникода
<...>
Уровень_Символов

Может уже, наконец, отделить литералы от кода?

Лис написал(а):

Страшно представить, сколько это всё займёт в памяти, учитывая, что каждый объект это минимум 32 байта

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

Итого:

Десяток лишних уровней для поддержания видимости работы методом копипасты при полном забвении достижений математики за последние лет сто.
Кодд в гробу просепарировался.

Джавадова на вас нет!

Отредактировано MihalNik (2018-05-08 13:36:00)

0

4

utkin написал(а):

Главное не перестараться. Бюрократия хороша к месту.

Ты ватник и наслушался речей Путина:
2018-05-07, прорывы..., без «бюрократической мертвечины»
2016-11-25, высоким технологиям в России мешает бюрократия
2013-12-20, бюрократия душит многие сектора нашей жизни

Я тут где-то (найду где - добавлю ссылку) писал про то, что новые компиляторы на блокчейне должны автоматизированно учитывать вклад всех членов команды. Надо же чем-то загружать новые мощные процессоры?

Отредактировано Лис (2018-05-08 14:03:35)

0

5

Ты ватник и наслушался речей Путина:
2018-05-07, прорывы..., без «бюрократической мертвечины»
2016-11-25, высоким технологиям в России мешает бюрократия
2013-12-20, бюрократия душит многие сектора нашей жизни

Я тоже это читал и ржал :).

Надо же чем-то загружать новые мощные процессоры?

Ну это конечно да, чтоб зимой больше тепла выделяли. Умные батареи :).
Но по мне так авторство байтов это глупость. Во-первых, авторство символов, была же тема про 19-й век, изживайте из себя стереотипы. Минимальная атомарная единица текста символ, а не байт! Будьте толлеранты к Юникоду, там вопрос про байты очень интимный и могут в морду дать. Именно содержание должно давлеть над формой (не помню кто сказал, кто-то очень умный). А во-вторых, авторство одного символа это через край. Тут прямо ворох вопросов - цели такого учета? Чтобы отсудить авторские права  :crazyfun: ? Практическая значимость? Как информация о том, кто поставил эту точку или плюсик поможет транслировать программу?

Отредактировано utkin (2018-05-08 14:25:23)

0

6

utkin написал(а):

не байт!

Я уже выше в тексте этого топика отказался от байтов и перешел к битам. Бит - это единственная разумная граница. Если брать любую границу выше в процессе анализа текста, то такую границу можно оспорить - почему слова, а не предложения? А с битами всё чётко.

Отредактировано Лис (2018-05-08 14:32:24)

0

7

Я уже выше отказался от байтов и перешел к битам. Бит - это единственная разумная граница. Если брать любую границу выше, то её можно оспорить - почему слова, а не предложения? А с битами всё чётко.

Патаму чта! Слово не атомарная единица текста. И оспаривать тут нечего. Биты это носители информации, форма ее существования, а не сама информация. А если будет машина с троичной логикой? Как жить тогда будем?

А с битами всё чётко.

Простейший анализ функций работы с текстовым файлом (без форматирования) показывает нам, что изменения битов осуществляются группами по 8 штук одним автором. Нет такого чтобы один бит правил один автор, а другой бит правил другой автор. Вы делаете компилятор или постановку в театре абсурда?
Вам надо посмотреть вот про такого персонажа:
http://trinixy.ru/uploads/posts/comm_images/2016-03/1457004056_faq_char.gif
Он Вас научит научному анализу :)

Отредактировано utkin (2018-05-08 14:38:34)

0

8

utkin написал(а):

если будет машина с троичной логикой? Как жить тогда будем?

Никаких проблем, всё отлично. Новая архитектура - новые компоненты в стеке парсинга (от тритов до символов, кодировка ведь тоже поменяется). Ну и отслеживаться будет авторство каждого трита). А выше уровня символов будет уже всё как было с битами - списки авторов и их роли (кодер, аналитик архитектор).

0

9

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

Отредактировано utkin (2018-05-08 14:43:35)

0

10

utkin написал(а):

анализ функций работы с текстовым файлом (без форматирования) показывает нам

Это всё происки иностранных разработчиков. Они те функции так сделали, но можно ведь сделать и по-другому.

0


Вы здесь » Русскоязычное программирование » прослеживание требований, кода и вклада » шаблон проектирования Приспособленец применительно к авторству