powered by simpleCommunicator - 2.0.38     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / MS VS2019-16.8.1
22 сообщений из 22, страница 1 из 1
MS VS2019-16.8.1
    #40019003
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что то не так с отображением значений статических переменных уровня класса в Debug
...
Рейтинг: 0 / 0
MS VS2019-16.8.1
    #40019013
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это IDE клинит от твоих русских наименований А что именно "не так"?
...
Рейтинг: 0 / 0
MS VS2019-16.8.1
    #40019041
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>fkthat, сегодня, 17:53 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1330939&msg=22233181][22233181]
>А что именно "не так"?
<
Отладчиком по шагам дошел до ip=0;
Посмотри значения переменных
...
Рейтинг: 0 / 0
MS VS2019-16.8.1
    #40019078
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеев
Посмотри значения переменных
а есть поменьше картинка? и сжатие в jpeg-е можно еще посильнее поставить ))
...
Рейтинг: 0 / 0
MS VS2019-16.8.1
    #40019085
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеев
>fkthat, сегодня, 17:53 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1330939&msg=22233181][22233181]
>А что именно "не так"?
<
Отладчиком по шагам дошел до ip=0;
Посмотри значения переменных

Пиши все по разным строчкам, как нормальные люди. От твоего стиля даже отладчик колом встает. У меня воспроизвести не удалось. Попробуй переставить винду на чистый диск.
...
Рейтинг: 0 / 0
MS VS2019-16.8.1
    #40019173
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>fkthat, сегодня, 19:16 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1330939&msg=22233269][22233269]
>...Попробуй переставить винду на чистый диск.
<
Создал новое решение так.
Взял работающее решение, заменил его компоненты на компоненты из не работающего решения. ок!
...
Рейтинг: 0 / 0
MS VS2019-16.8.1
    #40019237
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеев
статических переменных


Ох.. годы всё идут, а человек всё не учится ничему..
...
Рейтинг: 0 / 0
MS VS2019-16.8.1
    #40019324
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>hVostt, сегодня, 06:06 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1330939&msg=22233469][22233469]
>Ох.. годы всё идут, а человек всё не учится ничему..
<
Может быть не всё так фатально. см. здесь .
...
Рейтинг: 0 / 0
MS VS2019-16.8.1
    #40019546
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеев
>hVostt, сегодня, 06:06 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1330939&msg=22233469][22233469]
>Ох.. годы всё идут, а человек всё не учится ничему..
<
Может быть не всё так фатально. см. здесь .


Использование публичных статических переменных -- признак явного говнокода.

Вот явные проблемы, из-за которых принято считать их злом:

  • Bugs from mutable global state - a lot of tricky bugs are caused by mutability. Bugs that can be caused by mutation from anywhere in the program are even tricker, as it's often hard to track down the exact cause
  • Poor testability - if you have mutable global state, you will need to configure it for any tests that you write. This makes testing harder (and people being people are therefore less likely to do it!). e.g. in the case of application-wide database credentials, what if one test needs to access a specific test database different from everything else?
  • Inflexibility - what if one part of the code requires one value in the global state, but another part requires another value (e.g. a temporary value during a transaction)? You suddenly have a nasty bit of refactoring on your hands
  • Function impurity - "pure" functions (i.e. ones where the result depends only on the input parameters and have no side effects) are much easier to reason about and compose to build larger programs. Functions that read or manipulate mutable global state are inherently impure.
  • Code comprehension - code behaviour that depends on a lot of mutable global variables is much trickier to understand - you need to understand the range of possible interactions with the global variable before you can reason about the behaviour of the code. In some situations, this problem can become intractable.
  • Concurrency issues - mutable global state typically requires some form of locking when used in a concurrent situation. This is very hard to get right (is a cause of bugs) and adds considerably more complexity to your code (hard/expensive to maintain).
  • Performance - multiple threads continually bashing on the same global state causes cache contention and will slow down your system overall.
...
Рейтинг: 0 / 0
MS VS2019-16.8.1
    #40019563
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мб оптимизация включена? компилятор увидел говнокод и решил его оптимизировать, решительно выпилив нафиг всё, что не нужно )
вариант Б: в момент когда вы перешли на последнюю строчку, какой то злобный поток обнулил ваши значения. Думаю без экстрасенсорики тут не разобраться, я бы начал с проверки того, что сборка не релиз и не включен параметр оптимизации.
...
Рейтинг: 0 / 0
MS VS2019-16.8.1
    #40019567
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я просто не понимаю, что мешает сделать этот тип не статическим.
Что именно привело к тому, что этот класс стал статическим?
Обычно типы с названием "Параметры" редко бывают статическими, на то они и параметры, что передаются куда то в качестве аргументов для выполнения.

А если будет 2 места в программе, в которой нужны такие параметры? как их согласовывать? удобнее создать параметр как экземпляр объекта, передать его куда нужно и забыть о его существовании раз и навсегда.

Имена типа и его членов абсолютно не о чём не говорят. То, что это параметр было бы понятно из контекста, горазда важнее, чтоб тип этого параметра и его имя имели очевидное название.

Представьте себе метод по рисованию прямоугольников. Если он принимает в качестве параметров "Rect" мне сразу понятно, что это такое, а если это тип "sp_Параметры", то одному богу известно, что это такое. А если в нём еще и поля IP,MSP и NP то без документации тут точно хрен разберешься. Пусть лучше название будет длинным, но понятным, чем коротким и не о чём не говорящим. Это всё равно, что типы называть Тип1, Тип2, Тип2 и члены в них будут Член1, Член2, Член3. Сами себе создаете боль и страдание, код может быть говном и состоять из одних статических классов, но если в неё соблюдать элементарную культуру, то в ней будет легко разобраться, но вот переделать её уже будет не так просто.
...
Рейтинг: 0 / 0
MS VS2019-16.8.1
    #40019582
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roman Mejtes
члены в них будут Член1, Член2, Член3

Так у автора весь код всегда такой - как один Член.
...
Рейтинг: 0 / 0
MS VS2019-16.8.1
    #40019651
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>hVostt, сегодня, 16:26 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1330939&msg=22233933][22233933]
>Вот явные проблемы, из-за которых принято считать их злом:
Ошибки из мутируемого глобального состояния - много хитрых ошибок вызвано мутабельностью. Ошибки, которые могут быть вызваны мутацией из любой точки программы, еще сложнее, так как часто трудно отследить точную причину
Плохая тестируемость - если у вас есть изменчивое глобальное состояние, вам нужно будет настроить его для любых тестов, которые вы пишете. Это делает тестирование сложнее (и люди, люди, следовательно, менее вероятно, чтобы сделать это!). например, в случае учетных данных баз данных в широком приложении, что делать, если один тест должен получить доступ к конкретной базе данных испытаний отличается от всего остального?
Негибкость - что делать, если одна часть кода требует одного значения в глобальном состоянии, а другая требует другого значения (например, временное значение во время транзакции)? Вы вдруг неприятный немного рефакторинга на ваших руках
Функция примеси - "чистые" функции (т.е. те, где результат зависит только от входных параметров и не имеют побочных эффектов) гораздо легче рассуждать и составить для создания больших программ. Функции, которые читают или манипулируют мутируемым глобальным государством, по своей сути нечисты.
Понимание кода - поведение кода, которое зависит от большого количества изменчивых глобальных переменных, гораздо сложнее понять - вам нужно понять диапазон возможных взаимодействий с глобальной переменной, прежде чем вы сможете рассуждать о поведении кода. В некоторых ситуациях эта проблема может стать неразрешимой.
Проблемы с эквивалентностью - мутируемое глобальное состояние обычно требует той или иной формы блокировки при использовании в параллельной ситуации. Это очень трудно получить право (является причиной ошибок) и добавляет значительно больше сложности в код (жесткий / дорогой в обслуживании).
Производительность - несколько потоков, постоянно трепку на том же глобальном состоянии вызывает утверждение кэша и будет замедлять вашу систему в целом.
<
М-дя. Бла-бла-бла.
...
Рейтинг: 0 / 0
MS VS2019-16.8.1
    #40019667
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Roman Mejtes, сегодня, 17:01 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1330939&msg=22233966][22233966]
>...Представьте себе метод по рисованию прямоугольников.
<
1. Право не стоит чужое решение оглуплять своими представлениями.
2. Есть решение (C#) для работы с таблицами базы данных. За работу с конкретной таблицей отвечает конкретная панель (UserControl), что загружается и активизируется динамически, по требованию пользователя. Программный код панелей абсолютно (в рамках решения и баз данных MS SQL PostgreSQL) не зависит от типа базы данных. Реальное взаимодействие панели и базы данных реализуется единым для всех панелей статическим классом wsp. Работа с базой данных строится на вызове хранимых процедур. Последним в свою очередь необходимо передать параметры (PgSqlParameter или SQLParameter).
Пример:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
. . .
//-- выполнение хранимой процедуры
wsp.sp_Параметры(3);            //-- Построение параметров хранимой процедуры
wsp.sp_Параметр("str_Псевдоним", (string.IsNullOrEmpty(xstr)) ? DBNull.Value : (object)(xstr + "%"));
wsp.sp_Параметр("str_ФИО", (string.IsNullOrEmpty(ystr)) ? DBNull.Value : (object)(ystr + "%"));
wsp.sp_Параметр("int_Limit", гп.max_Выборка);
xrow = null; lst_Entity = null; lst_Entity = new List<row_Entity>();
wsp.Entity_SP("au_Пользователи_sel", wsp.sp_Sel, RowToEntity); if ((wspErr = wsp.wspErr) != null) return;
. . .
...
Рейтинг: 0 / 0
MS VS2019-16.8.1
    #40019670
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеев
Право не стоит чужое решение оглуплять своими представлениями.

Твои решения "оглупить" еще больше невероятно тяжело
...
Рейтинг: 0 / 0
MS VS2019-16.8.1
    #40019674
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеев
взаимодействие панели и базы данных реализуется единым для всех панелей статическим классом wsp
Как ты поступаешь, когда приходит время подменить класс wsp на заглушку для юнит-тестов?
...
Рейтинг: 0 / 0
MS VS2019-16.8.1
    #40019962
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеев
Код: c#
1.
sp_Параметр

...
Рейтинг: 0 / 0
MS VS2019-16.8.1
    #40019981
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt
Использование публичных статических переменных -- признак явного говнокода.

Но в случае DbContext это же нормально?
...
Рейтинг: 0 / 0
MS VS2019-16.8.1
    #40020110
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеев
М-дя. Бла-бла-бла.


Так эта информация не для вас. Вы её не понимаете и не способны вообще усваивать информацию и хоть чему-то учиться. Годы идут, а вы всё тот же колхозник.

Не удивлюсь, если лет через 5 вы всё также будете тулить на форуме свои куски говнокода, на потеху сообществу.
...
Рейтинг: 0 / 0
MS VS2019-16.8.1
    #40020111
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fkthat
hVostt
Использование публичных статических переменных -- признак явного говнокода.

Но в случае DbContext это же нормально?


а чё там нет статиков: https://github.com/dotnet/efcore/blob/main/src/EFCore/DbContext.cs
...
Рейтинг: 0 / 0
MS VS2019-16.8.1
    #40020113
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt

В scoped регистрации он сам весь как один большой статик :))
...
Рейтинг: 0 / 0
MS VS2019-16.8.1
    #40020116
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fkthat
hVostt

В scoped регистрации он сам весь как один большой статик :))


Не могу согласиться, ничего общего.
...
Рейтинг: 0 / 0
22 сообщений из 22, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / MS VS2019-16.8.1
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]