|
Топик "как я лажанулся"
|
|||
---|---|---|---|
#18+
Maxim Rusov У меня довольно много мест где enum читается из потока, с контролем диапазона. Сейчас это делается функцией, типа: Код: pascal 1.
Приходится писать имя типа 3 раза. Хотелось типа: Код: pascal 1.
Толково. Но мне кажется, поймать гарантированную ошибку при запуске не намного уж хуже ошибки сборки. Увы, это сработает только если есть классовые к-торы. Но если не решишь сделать на дженериках, как минимум можешь немного сократить параметры, передавая вместо границ непосредственно TypeInfo V := TSomeEnum( Reader.ReadEnum( TypeInfo(TSomeEnum) ) Если хочешь, могу поделиться своим TEnum<T> (также есть и TSet<TE, TS>) ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2022, 11:07 |
|
Топик "как я лажанулся"
|
|||
---|---|---|---|
#18+
Fr0sT-Brutal Если хочешь, могу поделиться своим TEnum<T> (также есть и TSet<TE, TS>) А можно для всех поделиться, пожалуйста? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2022, 11:52 |
|
Топик "как я лажанулся"
|
|||
---|---|---|---|
#18+
Fr0sT-Brutal, Как выяснилось, это работает не для всех Enum'ов, т.ч. мне не подходит. А так я "вдохновился" этим: https://gist.github.com/ortuagustin/6342894207caa0f71a5d23475670281d ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2022, 12:51 |
|
Топик "как я лажанулся"
|
|||
---|---|---|---|
#18+
LiYing А можно для всех поделиться, пожалуйста? Вот тут выкусил из общего модуля: https://gist.github.com/Fr0sT-Brutal/bdf9eb2a177fd5216ad3e085c786c993 Maxim Rusov Как выяснилось, это работает не для всех Enum'ов, т.ч. мне не подходит. А так я "вдохновился" этим: https://gist.github.com/ortuagustin/6342894207caa0f71a5d23475670281d Ну, можно просто избавиться от подобных энумов. Я у себя так и сделал. Забить ненужные элементы заглушками, если не с полусотни старт, конечно. А ссылка хорошая, изучу ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2022, 14:11 |
|
Топик "как я лажанулся"
|
|||
---|---|---|---|
#18+
В новом проекте коллега сервис для рассылки писем назвал mail_sander ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2022, 20:58 |
|
Топик "как я лажанулся"
|
|||
---|---|---|---|
#18+
delphinotes, И шо? У меня сервис SQLBOT зовется.... ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2022, 22:32 |
|
Топик "как я лажанулся"
|
|||
---|---|---|---|
#18+
delphinotes В новом проекте коллега сервис для рассылки писем назвал mail_sander В одном из первых проектов, в которых я участвовал, была следующая структура данных: договор, дополнительные соглашения к нему, каждое из которых вводило какие-то изменения. Соответственно, в трёх или четырёх десятках таблиц были поля input_id (соглашение, которым этот элемент введён) и cancel_id (соглашение, которым этот элемент отменён). А теперь решающий писк: в трёх или четырёх таблицах (из этих четырёх десятков) поле называлось camcel_id. И к моменту моего прихода в таком виде уже было пробито в сотни запросов. Очень хотелось убивать каждый раз, когда на это натыкался. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2022, 07:30 |
|
Топик "как я лажанулся"
|
|||
---|---|---|---|
#18+
Вел как-то один легаси-проект. Так каких полей там только не было - kredit, zena, komment ... Но больше всего выбешивало то, как в разных таблицах названо поле с адресом - adres, addres, address. Везде по разному, млять. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2022, 08:06 |
|
Топик "как я лажанулся"
|
|||
---|---|---|---|
#18+
У нас все SQL идентификаторы (названия полей, таблиц, названия и параметры процедур) вынесены в отдельный файл констант. Поэтому при рефракторинге достаточно изменить этот файл и посмотреть, где отвалится компиляция ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2022, 12:48 |
|
Топик "как я лажанулся"
|
|||
---|---|---|---|
#18+
_Vasilisk_ У нас все SQL идентификаторы (названия полей, таблиц, названия и параметры процедур) вынесены в отдельный файл констант. Поэтому при рефракторинге достаточно изменить этот файл и посмотреть, где отвалится компиляция Особенно помогает в запросах типа ExecQuery("bla-bla",?,?,?,?) ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2022, 23:11 |
|
Топик "как я лажанулся"
|
|||
---|---|---|---|
#18+
DarkMaster Особенно помогает в запросах типа ExecQuery("bla-bla",?,?,?,?) Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
И все используемые TSQLStoredProc и TSQLTable перечислены в константах ... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2022, 14:10 |
|
Топик "как я лажанулся"
|
|||
---|---|---|---|
#18+
_Vasilisk_ Если речь о динамическом формировании SQL, то у меня сделано так А запросы всегда идут из единственной таблицы? P.S. Я не хочу критиковать решение, которого не видел, но по описанию у меня не получается представить себе, как я смог бы применять нечто подобное так, чтобы выгоды перевешивали геморрой. Если бы я задался целью добиться такого эффекта (легко "рефакторить" названия таблиц и хранимок), то я воспользовался бы макросами, типа Код: plaintext
Впрочем, мне кажется, что практический выхлоп и в этом случае не окупается ежедневным усложнением. Лучше сразу нормально называть объекты, а если раз в пару лет таки потребуется переименовать - потратить пятнадцать минут на вдумчивый поиск. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2022, 14:24 |
|
Топик "как я лажанулся"
|
|||
---|---|---|---|
#18+
softwarer А запросы всегда идут из единственной таблицы? Код: pascal 1.
2. Если одной таблицы не хватает, используется VIEW 3. Никто не мешает написать Код: pascal 1. 2. 3. 4.
но такого у меня точно нигде нет. softwarer Лучше сразу нормально называть объекты ... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2022, 14:39 |
|
Топик "как я лажанулся"
|
|||
---|---|---|---|
#18+
_Vasilisk_ Угу. Из моего опыта мне только раз пришлось столкнуться с переименованием таблицы. И то это были скорее эстетические закидоны другого программиста в табличке маршрутных листов было обнаружено поле PriceP целочисленного типа. никто из тех, кто сидит на сопровождении этой системы не мог сказать, что это и зачем. стали искать тех, кто когда-то это чудо творил. нашли. вопросили. и о#уели... это не цена, не-а. это ПРИЦЕП! (форин кей отстутствует) ... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2022, 14:49 |
|
Топик "как я лажанулся"
|
|||
---|---|---|---|
#18+
_Vasilisk_ 1. У меня динамических запросов, которые бы мне пришлось вставлять из кода очень мало. Основная масса запросов у меня формируется так Код: pascal 1.
Как же быть с таблицей, которая упомянута в этом самом Query1.SQL.Text? CopyBeforeWhere отрефакторит её имя или как? Отдельно отмечу, что я вообще не очень доверял бы такому коду. Просто потому, что рано или поздно на каком-нибудь Код: plaintext
или на каком-нибудь Код: plaintext 1. 2. 3. 4. 5.
он сработает как-нибудь "не так". ... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2022, 15:01 |
|
Топик "как я лажанулся"
|
|||
---|---|---|---|
#18+
softwarer CopyBeforeWhere отрефакторит её имя softwarer он сработает как-нибудь "не так". ... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2022, 01:52 |
|
Топик "как я лажанулся"
|
|||
---|---|---|---|
#18+
_Vasilisk_ 2. Если одной таблицы не хватает, используется VIEW Серьезно? На каждый запрос вьюха? Или у вас такая бешеная денормализация данных, что почти всегда одной таблицы хватает. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2022, 07:38 |
|
Топик "как я лажанулся"
|
|||
---|---|---|---|
#18+
_Vasilisk_ Зачем? Просто выкусит все до WHERE Ну то есть если там упомянута TABLE1, а потом её отрефакторили в TABLE2, то список констант не очень поможет. Или как? _Vasilisk_ Да. Но когда сработает, тогда и будем думать. Благо ошибка проявится сразу же. Ах, если бы. Я могу нарисовать несколько прикольных сценариев. Не знаю, насколько они возможны конкретно у вас, но в любом случае - предпочитаю не закладывать возможности для их осуществления. Тем более, что, собственно, не понимаю преимуществ, которые достигались бы таким подходом по сравнению с другими. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2022, 16:14 |
|
Топик "как я лажанулся"
|
|||
---|---|---|---|
#18+
захожу в хром тащу файл с шарепойнта нету Не удается получить доступ к сайту Веб-страница по адресу https://***.sharepoint.com/sites/****/10010000000100021157.tif, возможно, временно недоступна или постоянно перемещена по новому адресу. ERR_INVALID_RESPONSE глянул строку, поменял dev на prd, выполняю... смотрю, в урле строка осталась та же и сообщение то же - нету такого файла 5 раз пробовал потом досмотрел на нижней панельке - файл есть, и он 6 раз уже скачался, но урл в хроме всё равно остался прежним ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2022, 08:25 |
|
|
start [/forum/topic.php?fid=58&gotolast=1&tid=2036613]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
34ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
56ms |
get tp. blocked users: |
1ms |
others: | 257ms |
total: | 399ms |
0 / 0 |