The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Компрометация шлюзов Barracuda ESG, требующая замены оборудования, opennews (?), 11-Июн-23, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


10. "Компрометация шлюзов Barracuda ESG, требующая замены оборудо..."  +11 +/
Сообщение от YetAnotherOnanym (ok), 11-Июн-23, 10:36 
> ESG представляет собой аппаратно-программный комплекс для защиты электронной почты предприятий от атак, спама и вирусов.

Причиной пожара стало возгорание противопожарной системы.
> при выполнении кода через Perl-оператор "qx"

Классика жанра. Уж сколько раз твердили миру, что дёргать утилиты в дочернем шелле - ещё больший моветон, чем использовать goto.

Ответить | Правка | Наверх | Cообщить модератору

20. "Компрометация шлюзов Barracuda ESG, требующая замены оборудо..."  +/
Сообщение от Аноним (20), 11-Июн-23, 11:40 
Ты не шаришь в goto?
Ответить | Правка | Наверх | Cообщить модератору

32. "Компрометация шлюзов Barracuda ESG, требующая замены оборудо..."  +1 +/
Сообщение от YetAnotherOnanym (ok), 11-Июн-23, 13:48 
Пытаешься троллить или просто проецируешь?
Ответить | Правка | Наверх | Cообщить модератору

40. "Компрометация шлюзов Barracuda ESG, требующая замены оборудо..."  +/
Сообщение от Ivan_83 (ok), 11-Июн-23, 15:52 
goto ничем не плох, проме того что в кривых руках он ломает читабельность.
В правильных он наоборот читабельность повышает и упрощает логику.
Ответить | Правка | К родителю #10 | Наверх | Cообщить модератору

53. "Компрометация шлюзов Barracuda ESG, требующая замены оборудо..."  +6 +/
Сообщение от Аноним (53), 11-Июн-23, 19:27 
Классика жанра:
* Код мой -> упрощение логики и повышенная читабельность
* Код чужой -> кривые руки и поломанная читабельность
Ответить | Правка | Наверх | Cообщить модератору

64. "Компрометация шлюзов Barracuda ESG, требующая замены оборудо..."  +1 +/
Сообщение от Ivan_83 (ok), 11-Июн-23, 22:55 
Вовсе нет.
Я долго избегал goto у себя в коде, пока не увидел его в исходниках ядра FreeBSD, и там оно реально сильно упрощало логику и повышало читабельность.

Сам часто использую для того чтобы вывалится в тот кусок функции который обрабатывает ошибку и освобождает ресурсы перед возвратом кода ошибки.
Очень редко для retry.

Ответить | Правка | Наверх | Cообщить модератору

78. "Компрометация шлюзов Barracuda ESG, требующая замены оборудо..."  –2 +/
Сообщение от Аноним (53), 12-Июн-23, 00:13 
> использую для того чтобы вывалится в тот кусок функции который обрабатывает ошибку и освобождает ресурсы

Ну вот это как раз потому, что у вас в коде типичная сишная императивная лапша, где в одной функции вместе с логикой намешаны и аллокация, и освобождение, и обработка ошибок.

Ответить | Правка | Наверх | Cообщить модератору

131. "Компрометация шлюзов Barracuda ESG, требующая замены оборудо..."  +/
Сообщение от Ivan_83 (ok), 13-Июн-23, 21:59 
И что с того?
Ответить | Правка | Наверх | Cообщить модератору

55. "Компрометация шлюзов Barracuda ESG, требующая замены оборудо..."  +/
Сообщение от Liinemail (ok), 11-Июн-23, 20:03 
> дёргать утилиты в дочернем шелле - ещё больший моветон, чем использовать goto

Ну как бы нет. Это за использование qx для запуска шела на бить по рукам. Это означает, что разраб вообще не понимал, что делает. Если там такой уровень разработки - все эти железки нужно срочно отключать и убирать на полку.

Ответить | Правка | К родителю #10 | Наверх | Cообщить модератору

88. "Компрометация шлюзов Barracuda ESG, требующая замены оборудо..."  +2 +/
Сообщение от Аноним (88), 12-Июн-23, 10:57 
В программировании не бывает жёстких законов - только указания.

GOTO удобен для описания конечных автоматов.

Синглтоны - это норма: большинство классов нужно только в одном экземпляре. Делать синглтоны через грязный хак в конструкторе - обычно боком выходит, через DI - хорошо.

В глобальной переменной удобно хранить логгер.

Протектед методы нужно покрывать юнит-тестами если пишешь фреймворк.

Внешние ключи не используются в больших БД с шардингом.

Если это облегчает восприятние кода, то можно его хоть в два столбика писать, называть переменные a1, a2, a3, и мешать snake_case с CamelCase и lowerCamelCase.

И таких примеров - миллионы. Всегда нужно думать своей головой.

Ответить | Правка | К родителю #10 | Наверх | Cообщить модератору

126. "Компрометация шлюзов Barracuda ESG, требующая замены оборудо..."  +1 +/
Сообщение от Аноним (114), 13-Июн-23, 10:16 
> GOTO удобен для описания конечных автоматов.

Проблема в том что он удобен еще и для прострела пяток не сильно очевидными способами, когда вы просто потеряли flow и сделали что-то не то, даже и не заметив это. Иногда и при вон том самом - отслеживать и тем более автоматически анализировать корректность этих действ и намерений кодера при этом малореально. Данная конструкция крайне опасна в аспекте провоцирования багов и сильно усложняет анализ (и въезд других кодеров в код). Именно поэтому ее и не рекомендуют.

> Синглтоны - это норма: большинство классов нужно только в одном экземпляре.

Я все понимаю, но зачем тогда вообще заводить классы? :)

> В глобальной переменной удобно хранить логгер.

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

> называть переменные a1, a2, a3,

В этом месте вас проклянет следующий майнтайнер этого кода...

> и мешать snake_case с CamelCase и lowerCamelCase.

А в этом месте вас линчуют коллеги/коммитеры/майнтайнеры и все кто будет иметь дело с этим кодом. Потому что вы сломали их ожидания - и обрекли на множество дурных багов на ровном месте. Такой код может быть проще списать в утиль и переписать заново, он может оказаться непригоден к майнтенансу.

> И таких примеров - миллионы. Всегда нужно думать своей головой.

Особенно в упомянутых случаях. Потому что их маркировали как проблемные по вполне конкретным причинам.

Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру