|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,549
|
||||
Архитектура: парсинг и выгрузка текстовиков11.03.2020, 10:51. Показов 32476. Ответов 421
Метки вопросы наследования (Все метки)
начало было положено в ветке - Считать текстовые файлы из папки - там и возник вопрос об Архитектуре...
собрала... осталось отображение создать (типа I_tbl_Show) и пронаследовать ? в разные классы пункта назначения (или на консоль, или в файл, или в БД, или допустим ещё в форму)... N.B. классы (пункты-назначения) делать не надо - эти View уже реализованы разработчиками того ПО, на котором сейчас идёт работа... а) пока что можно просто прописать функции-члены класса; и по месту использовать, что надо при разработке - в файл или на консоль; б) в перспективе для Release - реализовать и откомпилировать и выгрузку и в файл, и выгрузку в БД, и отражение в DataGrid... === !! Т.Е. если в Release захочется и выгрузку в текст, и в БД, и допустим ещё в форму (например с разных кнопок сделать) - тут уж лучше и писать, как положено, наследование??... -- к слову из прошлой ветки о: === Обоснование выбора уровня Абстракции (I_tbl_Show со всеми виртуальными функциями): чтобы не дублировать код-сбора-для-выгрузки -- сделать class Table - и класс-интерфейс I_tbl_Show, в котором обозначить virtual-функции выгрузки... эти функции определить в др. классах - типа Interface (IwriteCSV, IwriteDB, IwriteDataGrid)... p.s. классы консоль, файл, бд, DataGrid - не создаём, т.к. эти пункты назначения уже присутствуют... p.p.s. вывести конечные интерфейсы с определёнными методами записи на кнопки... === ИЛИ то, что подчёркнуто чуть выше, стоит реализовать в одном классе Table, и здесь же задать все virtual функции ?? === на скрине: синие - классы, зелёные - интерфейсы (в с++ по сути тоже классы) птицами отмечены уже кое-как реализованные классы (2 птицы) курсивные стрелки - отсутствие наследования ![]() Добавлено через 7 минут вобщем вопрос: class Table и класс I_Tbl_Show - объединить или нет? Добавлено через 10 минут p.p.s. чтобы избежать проблем Ромба и такого: Неоднозначность при множественном наследовании
0
|
||||
| 11.03.2020, 10:51 | |
|
Ответы с готовыми решениями:
421
Проверка двух текстовиков
Сделать скрипт для вывода текстов из текстовиков |
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,549
|
|
| 25.07.2020, 23:30 [ТС] | |
|
0
|
|
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,549
|
|||||||||||||
| 28.07.2020, 19:48 [ТС] | |||||||||||||
всё-таки, наверно, разница здесь у #222
0
|
|||||||||||||
|
19501 / 10106 / 2461
Регистрация: 30.01.2014
Сообщений: 17,825
|
|||
| 28.07.2020, 19:57 | |||
MainWindow w.Если время работы потока будет меньше, чем время жизни w, то UB в этом коде не будет.Добавлено через 4 минуты Висячая ссылка - это когда у вас время жизни ссылки каким-либо образом становится больше, чем время жизни объекта, на который она ссылается.
1
|
|||
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,549
|
|||
| 28.07.2020, 20:16 [ТС] | |||
|
а по scope'ам - это ведь могут быть и просто скобки {...int *ptr=null;... /*что-то с ним происходит ptr=smth */...} -- и за пределами скобок уже UB?.. или только в масштабе жизни объектов? Добавлено через 3 минуты
0
|
|||
|
19501 / 10106 / 2461
Регистрация: 30.01.2014
Сообщений: 17,825
|
|||||||
| 28.07.2020, 20:17 | |||||||
1
|
|||||||
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,549
|
|
| 28.07.2020, 20:26 [ТС] | |
спасибосо scope'ом тоже запомню
0
|
|
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,549
|
|
| 03.08.2020, 23:46 [ТС] | |
|
всё, поняла, почему callback'и - плохая идея, по совету от DrOffset - потому что управление View из Model - в принципе идея не-ахти... - с точки зрения SOLID... вариант - правда, на с# и тоже не-ахти - при длительных операциях, видимо, подвисать будет... и никакая Dependency Inversion тут не поможет...
вобщем справились подручными средствами и много нового почерпнуть можно с ветки и задача выполнена всем спасибо за весь ликбез ![]() P.S. в C#v7 - интересно async Main появился, чтобы async/await'ом обеспечивать выполнение кода с кнопки в др. потоке... иначе все async методы ходили сами по себе отдельно от GUI и на UI поток не возвращались... там (в более ранних версиях) тоже особо неподекомпозировать в этом плане было судя по всему... хотя в Console'и можно и с С#5 асинхронно что-то выполнять было... но зачем мне та консоль, если вводные данные и кнопку отмены хочется вводить..... ВЫВОД: С++ понравился! как компилируемый язык... это почитать... алгоритмы помнить... SOLID не забывать
0
|
|
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,549
|
||
| 04.08.2020, 09:24 [ТС] | ||
|
и кстати - главная задача потоков - чтобы не зависал app
- отсюда и дизайн потоков (e.g. c# winform).... а уже возможное ускорение фоновых длительных задач - это бонусом - в зависимости от реализованного разработчиком архитектурного решения...=== смысл ООП становится понятным, как только определяешься с целью :1) брать из библиотеки нужное 2) на основе (1) создавать свои прослойки/обёртки выделяя/закрывая только нужный функционал - всё согласно SOLID 3) использовать свои созданные Классы и Интерфейсы для обслуживания MainGUI потока ... исключая возможности для хакеров в (2) ... в случае крайней необходимости - писать свои библиотеки - хотя вроде всё уже давно написано - просто всё не надо - надо отобрать лучшее и удобное... - выразить в более высокоуровневые контейнеры и алгоритмы для удобства по задаче и воспользоваться этим stuff'ом для реализации задачи... имхо [поняла зачем мне ООП] Добавлено через 11 минут
0
|
||
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,549
|
|
| 05.08.2020, 09:41 [ТС] | |
|
и в завершение: Внутренняя и внешняя линковка в C++ - чтобы со стороны линкера понять, что делает компилятор, с тем, что мы написали в коде, и что делать линкеру с этим (встречаются ведь ошибки линкера, которые не всегда знаешь, как читать, по началу)...
0
|
|
|
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
|
||
| 05.08.2020, 11:30 | ||
|
Не по теме: Си-шарп, это унылое говно, не стоит придавать особое значение его дизайну.
1
|
||
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,549
|
||
| 06.08.2020, 08:02 [ТС] | ||
|
на rsdn хорошее введение в потоки - правда на c# - (он, вероятно, больше распиарен Microsoft'ом, как его детище) - но концептуальные понятия можно, полагаю, и на нём читать... вообще при знакомстве с фундаментом новой темы язык обычно вторичен, первична логика...
Работа с потоками в C# ч1 Работа с потоками в C# ч2 What is a reentrant function in C/C++? Reentrancy === Resumable Functions (по async) и здесь -- отсюда === ещё не совсем разобралась в разнице между Reentrant и Resumable ?? === Добавлено через 11 минут а это всё дело - switching context - всё-таки на ассемблере компилировать лучше (если так правильно сказать), мне так кажется... поэтому и компилятор MSVC (с его ml.exe составляющей) реже имеет проблемы с компиляцией многопоточных проектов... имхо... он и зачточен на этот switching context... может, и в коде #222 от GoshaM всё дело в этом ... или в самой библиотеке U++ (что более вероятно) в этом дело... когда не хочет распознавать IsWorker()... Добавлено через 16 минут Не по теме: P.S. :D а вообще, на днях увидела странную вещь в свойствах своего компа - 32-битная система, 64x процессор... Chipset 760G... может я не ту систему установила на своё железо?.. может и 64х можно пробовать - правда RAM'a для этого нужно будет добавить... много лет думала, что у меня проц 32x...
0
|
||
|
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
|
||
| 06.08.2020, 09:33 | ||
|
1
|
||
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,549
|
||
| 06.08.2020, 13:52 [ТС] | ||
|
там привлёк моё внимание этот кусок (ч.1)
Кликните здесь для просмотра всего текста
т.е. во-первых - не для моего случая (home pk with 1 socket) эти асинхронные методы а во-вторых лучше на делегаты посмотреть (там по C#)... == насколько поняла, делегат (как указатель на функцию) выгодно использовать в системе взаимодействия View-Model... но вроде по логике смахивает на обычный коллбэк, а по смыслу и лямбдой может быть заменён для обработки событий ЭУ (правда, возможность обработать одним махом и статус и прогресс и строки DataGrid - честно говоря привлекает)... особенно если по скорости, действително, можно добиться улучшений?.. имхо?.. What is a C++ delegate Делегаты и потоки p.s. или для любого (не только с UI) IPC (inter0process communication) тоже делегаты полезны?
0
|
||
|
19501 / 10106 / 2461
Регистрация: 30.01.2014
Сообщений: 17,825
|
|
| 06.08.2020, 14:10 | |
|
JeyCi, callback - это частный случай делегата.
1
|
|
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,549
|
|
| 06.08.2020, 22:35 [ТС] | |
|
ВЫВОД:
![]() рассортировала у себя по мозгам Python, C#, C++
0
|
|
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,549
|
||
| 07.08.2020, 14:38 [ТС] | ||
|
если применять C# - то стоит иметь ввиду - Async Performance: Understanding the Costs of Async and Await ... но если писать свой класс асинхронности или template какой - то некоторые моменты на заметку стоит взять - как минимум, sync operations are cheap comparing with async, и как всегда при длительных операциях async дают выигрыш, если ! правильно их приготовить... хоть GNU и не оптимизирует так сильно, как JIT, но свои optimization costs по сбору мусора тоже стоит делать с умом... и др. нюансы... проблемы аллокатора, думаю, можно исключить из причин для беспокойства при использовании C++ - поскольку всё-таки природа async в C++ симметричная (switch-to-fibers), в отличие от C# (несеметричная async - distinct suspend & resume operations)... хотя в C++ свои нюансы с распределением памяти... имхо... вобщем небо и земля
0
|
||
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,549
|
|
| 12.12.2020, 08:09 [ТС] | |
|
0
|
|
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,549
|
|
| 12.02.2021, 11:20 [ТС] | |
|
Using Exceptions | C++ - using RAII for cleanup - в частности, How to stop background work? (p.81)
Добавлено через 3 минуты там, где попадалаа в deadlock, и std::lock_guard не сразу нашла...
0
|
|
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,549
|
||
| 23.02.2021, 17:17 [ТС] | ||
а то как-то разбросано всё по сети... прямо нормальный DI получился по этим паттернам (aka выделение Общей Политики там, где она есть) ![]() Добавлено через 5 минут NB U++ не очень советуют использование pointers для управления кучей и run-time переопределение, на которых многие паттерны и основаны... но, наверно, потому что все эти паттерны - обычная история для MVC (Web-разработки)... для desctop'a можно проще... правильно предупреждают, не надо наворачивать там, где, действительно, ещё не надо...
0
|
||
| 23.02.2021, 17:17 | |
|
В указанном dsn архитектура драйвера и архитектура приложения не соответствуют друг другу архитектура процессоров и компьютерная архитектура,Intel32. для первокурсников Ошибка "в указанном dsn архитектура драйвера и архитектура приложения" Архитектура бд Архитектура БД Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
сукцессия 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-мерного ОДУ-моделирования вековой сукцессии (ветка. . .
|
Текстовый слайдер с нумерацией страниц и кроссбраузерность.
russiannick 18.07.2026
Один мой друг написал текстовый слайдер с нумерацией страниц. Сегодня я расскажу как он умудрился подружить его с кроссбраузерностью.
Очевидно сложно угодить с шириной каждому браузеру. Один крадет. . .
|
Грибы - это мемы, дерево - это человек. Применение микоризной модели к теории меметики Докинза.
anaschu 18.07.2026
Меметический изоморфизм теории «всего»: Грибная сукцессия как модель эволюции идей Докинза
Базовый код системы ОДУ микоризной сукцессии описывает не просто биологию, а универсальную. . .
|
Грибы - это корпорации, деревья - это государства. Механизм массонского захвата власти
anaschu 18.07.2026
Макроэкономический изоморфизм теории «всего»: Грибная сукцессия как модель транснационального капитализма
Базовый код системы ОДУ микоризной сукцессии описывает не просто биологию, а. . .
|