|
-508 / 32 / 0
Регистрация: 22.09.2015
Сообщений: 1,232
|
|
Реалити Разработка03.01.2025, 10:51. Показов 27794. Ответов 302
Метки нет (Все метки)
Приветствую!
Решил запустить стрим своей разработки. Можете наблюдать в реальном времени то чем я занимаюсь, писать в чат, буду попутно рассказывать и объяснять всё, если будут вопросы пишите в чат. Так же можете тут обсуждать и задавать вопросы, тоже буду отвечать по мере возможности. Мой RUTUBE канал
0
|
|
| 03.01.2025, 10:51 | |
|
Ответы с готовыми решениями:
302
Набор команды. Разработка/продвижение сайта, разработка приложения на андройд и ios Своя реализация регулярных выражений. Реалити разработка, как говорится учитесь пока я жив :) Блин.... реалити шоу... |
|
-508 / 32 / 0
Регистрация: 22.09.2015
Сообщений: 1,232
|
||
| 22.01.2025, 14:43 [ТС] | ||
|
Но я лично так бы никогда не делал, универсальности никакой(к примеру в Vue, React основные функции в библиотеке, а пользователь создаёт лишь объекты с свойствами, ну некоторые свои обработчики), а тут под каждый чих(если ещё другое событие и тд.) нужно добавлять в класс(компонента кнопки...) новые свойства и обработчики.. короче это очень примитивный код ИМХО. Если прикинуть код класса это ~1000 байт на 100000 это ~100Mb + объекты навешивания событий и тд. + если страница с картинками, видео, это наверно будут жуткие тормоза для пользователя.. даже если и нет я всё равно такой код бы не стал писать, он ужасен.. годный только для командной разработки так как интуитивно понятен, в остальном шлак(опять же ИМХО)
0
|
||
| 22.01.2025, 15:26 | |||||
|
В чем ограничение для больших проектов у моего наброска? Тебя не должно смущать наличие конфига, если тебе он кажется сложным - можно сделать это на уровне дом элементов. (хотя это будет уже бред). Можно добавлять через методы. В моем подходе это вообще не важно.
0
|
|||||
| 22.01.2025, 23:58 | |
|
Итак. Обещал - сделал.
Первая часть: изменения тестового прототипа редактора Код сюда уже копипастить не буду - гораздо легче его смотреть на том же github Пощупать прототип редактора можно здесь По "заявкам трудящихся": - убрал "лишние переменные" - у всех кнопок теперь явно свои обработчики - добавил динамическое добавление кнопки на тул бар - добавил, для демонстрации, как кнопка через событие может "попросить удалить себя" (Add italic) - добавил индикатор изменений редактируемого текста ("С MutationRecord {type: 'characterData'}" - не совсем понял что это кардинально меняет, но у меня нет нормального ТЗ отвечающего на вопрос "что должен делать", а только "что должен использовать") От себя добавил стиля. ![]() Вторая часть. Тесты. Итак смотреть тесты можно здесь Там три варианта: 1 Pair - генерируется и DOM элемент и элемент обертка. 2 DOM only - генерируется только DOM элемент 3. Empty - ни чего не генрится - можно посмотреть что требует пустая страница Генерируется 100000 кнопок. Генерацию списка кнопок вынесена за пределы первого теста. По сути не важно как мы их получили - возможно от АПИ прилетел список. По уверениям ТС первый вариант должен сжирать на 100Мб больше памяти. Ну и по времени должны быть жуткие тормоза. Рекомендуемые условия тестирования. Браузер в режиме инкогнито, каждую страницу погонять раз 5 и посмотреть на среднее значение. Тесты (от простых): 1. Смотрим в консоль. и там время в милисекундах. Время которое выполняется функция генерации всех кнопок 2. На вкладке Сеть есть простая статистика 3. Вкладка Memory тут рекомендую Allocation sampling. Запускаем запись, обновляем страницу, останавливаем запись. И так по 5 раз для каждой. На построенном графике особое внимание уделяем блокам отмеченным как createPair и createDOMonly (в одном тесте одна, в другом - другая)... Т.е. там не то что нет разницы в 100mb там вообще нет 100Mb. И разницы нет значительной не по производительности ни по памяти. (кнопки, кстати, все действуют - и пишут в консоль каждая свое сообщение) Добавлено через 46 секунд pgb, итак. что по данному этапу. какие замечания и комментарии?
9
|
|
|
14368 / 9469 / 1360
Регистрация: 21.01.2016
Сообщений: 35,733
|
|
| 23.01.2025, 06:50 | |
|
Welemir1, только отдачи от этой замороки не будет. pgb превратился в цифрового попугая, который по кругу одну и ту же тему гоняет: "Да вы ничего не понимаете, да вы все дураки и подстилки корпоративные". С таким индивидом бесполезно пытаться конструктивный диалог выстроить и какие-то аргументы и код приводить. Он всё равно будет недоволен.
4
|
|
| 23.01.2025, 07:00 | ||
Для примера сейчас мой редактор умеет выделять италиком и болдом. Но топорно - без учета нюансов. Это уже делать не интересно: просто алгоритм и время. В "не реальном" же проекте в подобной ситуации (если представить, что возникли объективные причины, не использовать готовое хорошо отлаженное решение) взял бы vue и не парился. А так, лично для себя, некоторые моменты прояснил.
0
|
||
|
Автоматизируй это!
|
|
| 23.01.2025, 07:16 | |
|
Usaga, все верно, не в коня корм, Воралу самому просто интересно все это навертеть) А наш маэстро опять скажет, что это другое, не так поняли, код примитивен и в реалите разработке (это такая где один неуч пишет то, что никому не нужно) так не делают.
2
|
|
|
14368 / 9469 / 1360
Регистрация: 21.01.2016
Сообщений: 35,733
|
|||
| 23.01.2025, 07:23 | |||
![]()
1
|
|||
|
-508 / 32 / 0
Регистрация: 22.09.2015
Сообщений: 1,232
|
|||
| 23.01.2025, 12:03 [ТС] | |||
|
Это говорит об утечке памяти. Если пользователь несколько страниц посмотрит куда ни шло, а если будет находится на сайте некоторое время, то через это время ему придётся перезагружать комп.. Добавлено через 55 секунд
0
|
|||
|
14368 / 9469 / 1360
Регистрация: 21.01.2016
Сообщений: 35,733
|
||
| 23.01.2025, 12:03 | ||
|
2
|
||
|
-508 / 32 / 0
Регистрация: 22.09.2015
Сообщений: 1,232
|
||
| 23.01.2025, 12:11 [ТС] | ||
|
0
|
||
| 23.01.2025, 12:23 | |||
|
Ну а далее.
1 Про GC расскажешь как он работает в общих чертах? 2 Твою теорию легко можно проверить 3 Это как то связано с необходимостью добавлять какое то специализированное хранилище калбеков? Добавлено через 4 минуты кроме того. если я правильно понимаю (ты ведь пока так и не смог пояснить внятно зачем тебе единое хранилище обработчиков) - ты хочешь по какому то событию снимать их с прослушки одним махом. И вот тут тебе можно легко на основе моего теста. Сделать еще один. Сними обработчики скриптом с этих кнопок. И оцени "производительность" решения к которому ты стремишься. Это очень наглядно покажет тебе, что ты наоборот убиваешь производительность. Добавлено через 5 минут Ну и вопрос остается открытым. Что в моем прототипе редактора еще не сделано, чтобы была необходимость специального хранилища обработчиков. Снимать, кстати, которые "чохом" совершенно не корректная идея для продукта класса "фреймворк". Вот есть программист Вася согласившийся создавать сайты на твоем решении. У него есть некий обработчик события который согласно бизнес логике его приложения не постоянно висит, а в соответствии с неким состоянием приложения (как пример фоновый опрос АПИ и по результатам ответа)... А вот твой фреймворк решил что пора все обработчики событий снять... снимает и его.... а как потом вернуть? Вернешь так же чохом? А если по логике работы его приложения он уже должен быть уже снят? Именно по этому за постановку и снятие обработчиков должны отвечать именно те сущности которым это положено по логике приложения. Т.е. одна и та же сущность и ставит и снимает.....
0
|
|||
|
-508 / 32 / 0
Регистрация: 22.09.2015
Сообщений: 1,232
|
||
| 23.01.2025, 12:23 [ТС] | ||
|
0
|
||
|
Software Engineer
338 / 342 / 55
Регистрация: 23.09.2014
Сообщений: 1,050
|
||
| 23.01.2025, 12:23 | ||
|
0
|
||
| 23.01.2025, 12:32 | ||
|
И тут надо понимать, что с бертками, если конечно грамотно спроектировать приложение, все приложение будет сильно лучше управляться, и за счет отсутствия необходимости костылять на костыле ваять - лучше будет и производительность. не говоря уже об удобстве разработки (и не только самого фреймворка, но и удобства тех кто им пользоваться надумает) И тут речь не о готовых решениях. А об опыте накопленном годами. Код не обязательно копировать или делать похожим, просто достаточно учитывать опыт. Т.е. вот я понимаю при разработки времени уходила бы куча времени на реализацию подсветки, но вот бороться несколько стримов с кнопкой..... ужс
0
|
||
|
Супер-модератор
3962 / 2126 / 833
Регистрация: 13.03.2010
Сообщений: 6,984
|
|
| 23.01.2025, 12:42 | |
|
0
|
|
| 23.01.2025, 13:35 | ||
|
Комп живой, все кнопки на тестовой странице мгновенно реагирую на клик память порядка 60мб....... Опять я что то не так сделал?
0
|
||
|
-508 / 32 / 0
Регистрация: 22.09.2015
Сообщений: 1,232
|
||||
| 23.01.2025, 15:08 [ТС] | ||||
Я же тебя не заставляю делать как я, почему вы меня заставляете делать как вы.В цикле генерации кнопки создаётся объект кнопки и отправляется в DOM .append, память объекта в JS должна быть освобождена и тд. затрат практически 0, но в JS есть сборщик мусора и он действует с опозданием поэтому и происходит утечка памяти. Хотя можно в цикле освобождать память от объекта переданного в DOM, но такой пустячок "гуру" игнорируют Добавлено через 6 минут
0
|
||||
| 23.01.2025, 15:17 | |||
|
Ты сначала предположил, что с моим подходом (каждая кнопка DOM имеет по сути обертку) - потребление памяти значительно вырастит. Если быть точным "100000 кнопок дадут 100Мб" - я опровег эту гипотизу тестом. (и по производительности тоже) Следующая твоя гипотеза. Если пользователь будет долго находится на этой странице - то компьютеру поплохеет вплоть до необходимости перезагрузки компьютера. Я сделал тест, причем постоянно перегружая страницу. Тест, кстати, до сих пор работает, и я совершенно без проблем работаю на этом компе. (Уверяю PHPStorm быстро бы возмущаться стал если бы ощутил нехватку ресурсов, да и компу у меня уже более 10 лет). Вот я и уточнил: все ли я выполнил так, чтобы сбылся твой прогноз. Или я что то сделал, что обходит "должное поведение"? Добавлено через 2 минуты Добавлено через 3 минуты И все же ты опять проигнорировал главный вопрос про специальное "хранилище" обработчиков событий. Чего в моем редакторе не хватает, чтобы он потребовался? Можешь ли рассказать о ситуации, когда он требуется? (не то что "когда надо отключить все обработчики", а что за ситуация когда надо это сделать)
6
|
|||
| 23.01.2025, 15:17 | |
|
Саундтрек из реалити-шоу "Сибирская рулетка" Что перспективнее - разработка игр под мобильные платформы или разработка embedded-систем Разработка сервиса по отзывам связка с WhatsApp. Разработка на Python сектор окружности.разработка интерфейса классов, создание статических и динамических экземпляров, разработка конструкторов и деструкторов Разработка игр или разработка софта Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Установка нескольких штампов электронной подписи в строго определенных местах файла docx
ВладимирСамохин 19.07.2026
(В!) Работа с Электронной подписью - это неотъемлемая часть современного документооборота. Но что делать, если нужно поставить несколько штампов электронной подписи в строго определенных местах. . .
|
сукцессия 35. Научная статья о проделанной работе
anaschu 19.07.2026
Написал в формате латекс и пдф
|
Вангую, что это не пройдёт модерацию, и на неделе я запущу свой сервер.
Hrethgir 19.07.2026
Эта публикация сейчас в песочнице и ждёт приглашения.
https:/ / habr. com/ ru/ sandbox/ 295048/
начало и оглавление
-
Как «пернатого» заставить осваивать новые горизонты опыта через масштабирование. . .
|
сукцессия 33. открытые вопросы от клауде
anaschu 19.07.2026
"Что накопилось за эту часть А — тринадцать правок, из которых шесть пришли из ваших вопросов и каждая оказалась реальной ошибкой, а не калибровкой: односторонний симбиоз, отсутствующий листопад,. . .
|
|
32 сукцессия
anaschu 19.07.2026
сукцессия 28‑мерное ядро стабилизировано
Коллеги, фиксирую разбор инженерных правок и их изоморфную проекцию на экономику, меметику и половой отбор. Модель теперь не «подкручивает» сходимость —. . .
|
сукцессия 31: модель микоризы - это модель ещё нескольких явлений, социальных и экономических
anaschu 18.07.2026
Теория «Всего»: апдейт v1. 1. 2 — 28‑мерное ядро стабилизировано
Коллеги, фиксирую разбор инженерных правок и их изоморфную проекцию на экономику, меметику и половой отбор. Модель теперь не. . .
|
сукцессия 30. Массив проверяющих друг друга моделей
anaschu 18.07.2026
Архитектура сети взаимопроверяющих моделей микоризной сукцессии (v2. 0)
Развитие тензорного ОДУ-ядра и создание кросс-платформенного калибровочного полигона
Уважаемые коллеги!
В продолжение. . .
|
Грибы - это женщины, деревья - это мужчины. Анти инь янь для союза мужчины и женщины.
anaschu 18.07.2026
ГЛАВНЫЙ НАУЧНО-ФИЛОСОФСКИЙ ВЫВОД: Сексуально-Репродуктивный Капитализм против Государства Моногамии
Коллеги, мы вышли на финишную прямую 20-мерного ОДУ-моделирования вековой сукцессии (ветка. . .
|