Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
maytonШаблон - это фаза компилляции. Его (шаблона) нет в рантайме. А я хочу в рантайме получать сведения об объектах, даже тех которые были получены из других библиотек, и не были написаны мной и не входят в основной цикл компилляцииСУБД до некоторой степени как раз и поддерживают некоторый вид динамических объектов. Можно добавить некоторые поля в объект, но при этом от программиста не нужно будет перекомпилировать исходные коды скриптов. И все работает! Проще говоря все СУБД поддерживают некоторую архитектуру объектов и некоторый вид языков программирования для доступа к ним. NOSQL базы аналогично также поддерживают некоторую архитектуру объектов ... ... ... PS: Кто хочет обеспечить в своих программах возможность динамически /без перекомпиляции/ работать с объектами должны: - разработать и реализовать требуемую архитектуру объектов; - обеспечить средства /libreries, языки программирования, .../ для работы с объектами. Другой вид программ - "традиционный", при котором на всякий "чих" требуется перекомпиляция и пересборка программы. Скорее всего имеются и другие пути понимания что такое объект и как с ним работать .. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2016, 09:17 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
Dima TИМХУ бардак в терминологии в других ЯП. Добавили методы чтения/записи свойств, добавили синтаксический сахар чтобы методы выглядели как свойства, назвали это свойствами, а свойства переобозвали полями.Угу, угу ... К примеру в СУБД таблица по существу является контейнером для некоторого вида объекта, свойства которых раскрываются в ряде подчиненных таблиц ... PS: Не знаю можно ли вообще дать некоторое "универсальное" определение что такое объект и что означает свойство объекта. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2016, 09:24 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
Dima TИМХУ бардак в терминологии в других ЯП. Добавили методы чтения/записи свойств, добавили синтаксический сахар чтобы методы выглядели как свойства, назвали это свойствами, а свойства переобозвали полями. Например в C# В С++ это вроде не наблюдается.По другому говоря ... "Мы говорим поле - подразумеваем свойство. Мы говорим свойство - подразумеваем поле". PS: Ведь часто свойство в свою очередь может иметь подсвойства ... /иерархия, эволюция, .../ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2016, 09:55 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
maytonА я хочу в рантайме получать сведения об объектах, даже тех которые были получены из других библиотек, и не были написаны мной и не входят в основной цикл компилляции. Если ты хочешь в рантайме - интерфейсы. Если ты хочешь из других библиотек - интерфейсы для работы с другими библиотеками. Не надо на меня так смотреть, в общем случае непонятно, что такое "из других библиотек", или уточняй, что конкретно ты хочешь, или используй интерфейс к сферическому вакуумному классу. опять же, с утра нашёл, но ещё не смотрел std::type_info Dima TВ С++ это вроде не наблюдается. Очень даже наблюдается: __declspec(property(...)) и мешает жить при отладке. Set/Get нормальная сама по себе штука, если без фанатизма. Я понимаю, когда у нас "сложный" параметр, который за собой тянет зависимости или который имеет границы по значениям или порождает события. Короче, интерактивный. Тогда да, мы делаем его private и наружу выставляем методы работы с ним (телевизор + ПДУ). Но когда в классе куча безобидных переменных, а тут же ещё это всё умножается в 10+ раз строчками кода гетеров-путеров получается путаница-гетаница неудобно ни читать, ни отлаживать, прыгая в отладке туда-сюда. А потом приходит MS и добавляет property, и все почему забивают на принятые в проекте нотации, потому что это же не члены класса! - и жизнь отладчика ухудшается в 2 раза. Я бы ещё им это простил, если бы их инструменты (VS) были удобными (как Idea), но когда это под дебагом абсолютно невозмодно прочитать... грр. Поэтому, если я всё правильно понял, свойства от полей никак информационно не отличаются :) Поэтому, всё решение у всех нас сводится к тому, что класс имеет список компонентов (давайте так назовём, чтоб не путаться) в виде контейнера шаблонов или контейнера указателей, неважно, и мы можем на ходу добавлять в объект класса эти компоненты. И существует некий универсальный инструмент для работы с этими компонентами: получить тип, значение и всё, что мы добавили в описание класса-компонента. И это решение будет довольно простое, гибкое и удобное. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2016, 10:17 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
CEMbПоэтому, если я всё правильно понял, свойства от полей никак информационно не отличаются :) получи адрес свойства или передай его по ссылке ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2016, 10:55 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
ИзопропилCEMbПоэтому, если я всё правильно понял, свойства от полей никак информационно не отличаются :) получи адрес свойства или передай его по ссылкепочему никто не читает, что я пишу? CEMbсвойства от полей никак информационно не отличаются ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2016, 11:22 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
Раз уж мы затронули тему динамических классов, ну или как это назвать, хочу немного подумать в слух. Модератор: Редактировано Когда я начал работать с динамикой, я обнаружил несколько прикольных вещей, которые снаружи не особенно заметны, пока не начинаешь это делать сам. В обычных классах архитектура продумывается заранее, возможно в процессе как-то меняется, но в любом случае мы ограничены этой архитектурой в процессе исполнения. С динамикой всё по-другому. Ну, т.е. понятно, что классы можно наполнять по ходу дела, да, но это общий случай. В частности же возможность динамически менять объекты класса часто приводит к интересным решениям, которые при простой разработке архитектуры в голову не приходят. Это как расширение сознания за счёт того, что динамическая структура класса на порядок "разнообразнее", чем статическая. А потом я понял, что ООП в обычном смысле мне теперь и не нужен. Не нужна иерархия классов. Достаточно создавать абстрактные базовые объекты и потом наполнять их нужными свойствами, что делает их более конкретными и близкими к неким логическим классам объектов. Далее мы можем в зависимости от наличия или отсутствия определённых свойств применять на объектах различные действия. Т.е. мы можем сваливать в кучу все наши объекты(привет, mayton), потом перебирая все объекты, смотрим, если у объекта есть, например, свойство "форма", то мы можем, например, "измерить размер" объекта. Если формы у объекта нет, то и измерять нечего. Логично? Наглядно? Жизненно? :) Дальше ещё лучше: свойства можно добавлять в свойства, что усложняет систему, но даёт больше гибкости и ещё сильнее расширяет сознание. Можно, конечно, без фанатизма, сделать отдельный класс для иерархии объектов, отдельных для свойств, так, наверно, даже лучше и нагляднее, но одно другого не отменяет. А ещё... Модератор: Редактировано ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2016, 11:55 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
CEMbДальше ещё лучше: свойства можно добавлять в свойства, что усложняет систему, но даёт больше гибкости и ещё сильнее расширяет сознание.и где то в середине всего этого у нас иногда выскакивает логическая ошибка в программе и мы тратим жизнь в отладке, а могли бы заранее продумать необходимый дизайн классов приложения ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2016, 12:05 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
egorychи где то в середине всего этого у нас иногда выскакивает логическая ошибка в программе и мы тратим жизнь в отладке, а могли бы заранее продумать необходимый дизайн классов приложения логические ошибки не зависят в данном случае от динамической модели, а целиком от архитектуры приложения. Более того, работая с такой моделью, я стал разумнее организовывать архитектуру приложения. Не уверен, что это связано с объектом обсуждения, но мне так кажется пока что. Все логические ошибки, даже довольно сложные, находятся очень быстро. Потому что сама структура приложения вообще и объекты в частности - упрощаются. Приложение легко делится на слои, не надо тащить за собой иерархии классов и копаться в них. Объекты, мало того, что достаточны по свойствам, так в них ещё очень просто эти свойства искать (с ужасом вспоминаю отладку какого-нибудь проекта на работе, где приходится, чтобы посмотреть значение свойства, рыться в списке в стопият переменных...). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2016, 12:15 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
CEMbСемён, спасибо... о_о о_о о_о ...Ну и прав Семен на 100%. Зачем кому-то, что-то доказывать. Те кто любит настоять на своем, те по большей части просто - троли. Кто работает - у тех полно насущных задач ... /им тролить нет нужды, да и некогда/. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2016, 12:19 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
egorychCEMbДальше ещё лучше: свойства можно добавлять в свойства, что усложняет систему, но даёт больше гибкости и ещё сильнее расширяет сознание.и где то в середине всего этого у нас иногда выскакивает логическая ошибка в программе и мы тратим жизнь в отладке, а могли бы заранее продумать необходимый дизайн классов приложения или хотябы получить ошибку компиляции :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2016, 12:35 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
alex_kили хотябы получить ошибку компиляции :) это уже имеет, как бы, отношение к языку и компилятору, а не своей реализации иерархии данных. Другими словами: никто ведь не заставляет, это ж не стандарт пока ещё ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2016, 13:02 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
CEMb, А разве речь не про рантайм? Иначе непонятен вообще разговор про авторДостаточно создавать абстрактные базовые объекты и потом наполнять их нужными свойствами, что делает их более конкретными и близкими к неким логическим классам объектов. Делай наследование, добавляй нужные поля - все в парадигме ООП. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2016, 14:08 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
maytonCEMbпропущено... мне немного непонятно, куда пошло русло дискуссии... а сейчас объект это что? С++ даёт возможность делать динамически наполняемые свойствами объекты. Под свойствами можно опять же понимать всё что угодно, сделанное на шаблоне. Удобно. Шаблон - это фаза компилляции. Его (шаблона) нет в рантайме. А я хочу в рантайме получать сведения об объектах, даже тех которые были получены из других библиотек, и не были написаны мной и не входят в основной цикл компилляции. Ну и в чем проблема? http://coliru.stacked-crooked.com/a/ccbe8ba832669918 Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2016, 15:46 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
alex_kCEMb, А разве речь не про рантайм? Иначе непонятен вообще разговор про авторДостаточно создавать абстрактные базовые объекты и потом наполнять их нужными свойствами, что делает их более конкретными и близкими к неким логическим классам объектов. Делай наследование, добавляй нужные поля - все в парадигме ООП.Речь про рантайм, да. Немного ещё поясню разницу: чтобы добавить одно поле - нужен ещё один класс с этим полем. А если мне нужен на весь проект один объект этого класса? В динамике я просто добавлю объекту свойство. А если это поле многое меняет? К примеру, класс "человек". Человек человеку друг. Но тут мне понадобился негр. Нужен флаг bool m_bNegr(да это неправильная реализация, на надо прикапываться к тому, как надо было это сделать, я знаю). Я завожу ещё один дочерний класс CNegr : public CHuman, и у него завожу флаг m_bNegr. ОК. Но человек человеку друг, а негра никто не любит. Мне приходится делать все методы родительского класса от человек_устраивается_на_работу() до человек_заходит_в_бар(). Ладно, я перепишу их, так и быть. Всё, негра никто не любит, ура, классическое ООП победило. Но тут вдруг выясняется, что среди собак тоже бывают негры. И собаки не в одной иерархии с людьми. Я иду и пишу отдельный класс с функционалом для негра, ОК. Из зала с одной стороны подсказывают "интерфейссс...", с другой "шаблон...". Да, это всё по науке. Но если это будет негритянский интерфейс: мне надо будет описать интерфейс, возможно абстрактный (если наука слишком строгая), в итоге на негра-человека будет 2 класса, и на собаку-негра - 2 класса. Итого 3. Интерфейс и две имплементации, даже если код про работу с неграми одинаковый, всё равно надо тянуть свойства родительских классов, через наследование. Если это будет шаблон: это будет как раз что-то типа template <class T> class N : public T, тоже самое в чуть более изящной форме и один раз. Опять же, если код одинаковый. Если код разный - мне придётся делать частичную спецификацию, и чем больше, тем сомнительнее будет выгода использовать шаблоны. Нормальные люди просто напишут ещё один класс для негра с виртуальными методами, от которого отнаследуются. Это тот же интерфейс, но без выекрутасов. А я просто добавлю свойство в объект. Конечно, мне надо будет где-то написать код для этого свойства, и у меня он весь будет в куче, особенно, если он разный для разных предков. Зато я прям в одном месте могу описать дефолтное поведение (чёрный чайник поставили на полку в магазине, а в системе нет чайников) и частные случаи. Код, относящийся к одному свойству будет в одном месте. В классах - код относящийся к одному классу будет в одном месте. Да? А нет, он будет размазан по иерархии. Даже нормальные люди, которые написали один класс для негра, будут вынуждены как-то добывать информацию, от кого они родили негра, в случае когда код разный для разных сущностей. Я же эту информацию получу из объекта в рантайме напрямую (все ещё привет, mayton). Я не говорю, что классическое ООП это плохо. Это хорошо, как минимум вся эта волшебная динамика построена на классическом ООП. Просто мне динамика нравится. Особенно, знаете, когда это торкает... Вот вспомните какой-нибудь свой проект, и там какой-нибудь классический пример класса. Вот этот класс у вас в проекте, у него какие-то поля ("какие тополя!", да, не отвлекайтесь), всё это используется как-то красиво в коде, стройно, чётко и работает. Так вот. Прелесть динамики не только в том, что вы в объект на ходу можете добавлять поля. А ещё большая, как мне показалось, прелесть в том, что вы можете эти поля убирать Ещё раз вспомните свой класс и примените на нём это знание. Чувствуете, как расширяются горизонты? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2016, 17:17 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
Читаю, читаю и вспоминается попугай Кеша с его бессмертным: "А если дождь во время усушки?". Может, просто взять за правило работать в тех рамках, которые есть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2016, 17:32 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
Basil A. SidorovМожет, просто взять за правило работать в тех рамках, которые есть?Всё-таки, почему никто не читает, что я пишу? :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2016, 17:37 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
... но, если хотите, могу пояснить более развернуто. Есть, например, Object REXX - там и свойства и "ранний выход" (reply) и никаких иерархий (сеть объектов, основанная на обмене сообщениями). Функциональщины, вроде нет, но, наверное, можно "прикрутить" что-нибудь "этакое". В принципе, если сам язык вас устраивает - всё хорошо. "Но есть ньюанс". Это интерпретируемый (точнее - токенизируемый) язык. Всё, что нужно - вычисляется в динамике. С соответствующими накладными расходами. И лично я - плохо понимаю как (хоть сколько-нибудь эффективно) упихнуть любую такую динамичность в машинный код. Как навернуть "мощный рантайм" - понимаю, как сохранить эффективность - нет. Проблема, с моей кочки зрения, лежит вне языков программирования. Проблема в том, что современный бизнес - одна большая "группа А". И информационные технологии - на лидирующих позициях в этой группе, и вместо "производства средств потребления" делаются попытки создать всё более изощрённые "производства средств производства". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2016, 17:54 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
ок, оставим динамику в стороне.Basil A. SidorovПроблема, с моей кочки зрения, лежит вне языков программирования. Проблема в том, что современный бизнес - одна большая "группа А". И информационные технологии - на лидирующих позициях в этой группе, и вместо "производства средств потребления" делаются попытки создать всё более изощрённые "производства средств производства".На чём основано мнение? И что подразумевается под "производством средств потребления"/"производством средств производства"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2016, 18:09 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskyЗапахло марксизмом )))Все это детские шалости ... Маркс "смущенно стоит в сторонке" перед глубиной ниже приведенного суждения: "Нельзя игнорировать критерии утопического субъективизма в связи с ультрарадикальными взглядами на реально существующее :) Ну, это и понятно, поскольку ведь каждый индивидуум метафизически самосоставляет абстракцию" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2016, 20:06 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
Вася Уткин, вы написали много кода. Спасибо вам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2016, 20:30 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
CEMbЕсли ты хочешь в рантайме - интерфейсы. Если ты хочешь из других библиотек - интерфейсы для работы с другими библиотеками. Не надо на меня так смотреть, в общем случае непонятно, что такое "из других библиотек", или уточняй, что конкретно ты хочешь, или используй интерфейс к сферическому вакуумному классу. опять же, с утра нашёл, но ещё не смотрел std::type_info Вы... как и в всякий сишник живете в мире классического (стационарного ООП). В мире который был фундаментально обоснован лет 30 назад теоретиками системного анализа. Этот мир рос и развивался в условиях главенствующей на тот момент программно-аппаратной архитектуры. А именно - ограниченного объема ОП. Двух-фазного цикла разработки. Компилляция-линковка. И жестокой экономии всего-всего. Разрядной сетки указателей. RTTI, и мета-информации о среде исполнения. Фактически рантайм для С++ как таковой не существует. Он есть в ОС, файловой системе и состоянии сетевого окружения. В такой парадигме жизненный цикл ПО очень прост. Баг или дефект НЕВОЗМОЖНО исправить без шатдауна процессе и подмены его на обновленный образ процесса который вы предварительно собрали. Всякие технологии плагинов или динамических библиотек - не тривиальны. Не дружат с ООП. И вообще никоим образом не соотносятся с С++ разработкой. Грубо говоря С++ ничего вам не дает для контроля за состоянием рантайма. А крупные бизнес приложения сегодня требуют развитого и модульного рантайма. В частности - способности на ходу подменять логику различных модулей. Я не сильно разбирался как дело с этим обстоит в С++ и Unix OS но по моим скромным знаниям только несколько ОС обеспечивают такие возможности. Но это.. уровень API OS. Поблагодарим за это архитекторов. Но не господина Бьярне. Он здесь - непричем. Он - ничего не сделал для развития именно этого направления. Видимо для него рантайм не важен. Мне это почему-то напоминает фундаментальную средневековую геометрию+арифметику которая никогда не изучала движение (дифференцирование) а рассматривала мир в состоянии покоя. Архитектура. И ее формы. Любое движение - было ересью. Мдя... Но вернемся к нашим дебатам. Я прошу вас убрать сарказм. И понять тренд о котором я говорю. Я ни в коем случае не являюсь хейтером С++. Я просто инженер-практик. И я указываю (и буду указывать) на некоторые недостатки. Мои же коллеги к сожалению видят в этом выпад и бросаются защищать свои идеомы. Но я при этом нахожусь в их же лагере. Я-же и защищаю. Вот такой вот дуализм. Давайте как-то в этом ключе. И я вас прошу убрать из нашего треда акценты на мою персону. Мне право не очень приятно когда мне подмигивают, передают приветы и пишут "смищные щютки". Я с вами лично не знаком и такая фамильярность на меня производит неприятное впечатление. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2016, 20:53 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
maytonВася Уткин, вы написали много кода. Спасибо вам. Считаю рабочий пример лучше тысячи слов болтовни Или вот: http://coliru.stacked-crooked.com/a/02b9da4741b9d88a Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2016, 20:59 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
Далее. По поводу следующего сорца. Код: plaintext 1. 2. 3. 4. Насколько я понял здесь карта (мапа/хешмапа/табличка/хештабличка/отображение выберете синоним) предлагается в качестве репозитария для хранения свойств объекта. В качестве бонуса автор также предлагает полиморфизм типов. Тоесть можно запихнуть в качестве value любое значение их трех известных этой системе типов. Хотя для меня, избалованного платформерами такой небольшой бонус не особо интересен. Тем более что он ограничен перечислением. В целом данный пример хорош. Он очень напоминает реализацию JavaScript-объекта. Правда здесь я-бы проверил на сохранения порядка полей. Это важно для ORM и для общих сведений об объекте. Никто не может просто так по приколу поменять ранг (или порядок следования) полей. В целом в данном примере С++ как конструктор мета-языка не особо хорош. Мне непонятно зачем так много букв и зачем автор переопределял операторы вывода. Я это вообще не заказывал. Здесь также нет сведений о типе. Я-бы все таки хотел иметь возможность проверять instanceOf(..) Возможно автор предлагает реализовать DuckTyping но это надо как-то отметить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2016, 21:21 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
maytonА крупные бизнес приложения сегодня требуют развитого и модульного рантайма. В частности - способности на ходу подменять логику различных модулей. 1. Какие приложения это требуют? 2. Нафига? 3. Какие бизнес приложения это позволяют? 4. Что случится с бизнес-процессом, когда половина выполнялась на одной логике и не окончив БП ее "подменили"? Вроде документум такое позволяет, хранится столько версий приложения, сколько открытых БП... но.... вместо сложностей диплоя, появляются сложности администрирования, что бы тот бардак, который в пром. базе накапливается корректно удалить. Ну и сложность саппорта, когда пользователь говорит "не работает", а в системе каждый БП выполняется на свой версии и пойди пойми, что у него происходит. Вся требуемая модульность замечательно решается за счет модульности ))) Переключили систему/пользователей на резервный сервер. Обновили, перезапустили модуль. Переключили систему обратно. Обновили, перезапустили резервный сервер. При чем тут C++ мне совершенно не понятно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2016, 21:23 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=39305389&tid=2018431]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
69ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
64ms |
get tp. blocked users: |
2ms |
| others: | 284ms |
| total: | 465ms |

| 0 / 0 |
