The OpenNET Project / Index page

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



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

Оглавление

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

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


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
Добавить, Поддержать, Вебмастеру