Skip to content

Commit 76c1fb2

Browse files
committed
lua-guidelines.md: static variables and object guide added
1 parent e6eff75 commit 76c1fb2

File tree

1 file changed

+37
-0
lines changed

1 file changed

+37
-0
lines changed

lua-guidelines.md

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -787,6 +787,43 @@ function. Закрывающая скобка вызова ставится не
787787
В коде следует избегать использования безымянных "магических констант":
788788
http://en.wikipedia.org/wiki/Magic_number_(programming)#Unnamed_numerical_constants
789789

790+
### Статические переменные и объекты
791+
792+
* Не рекомендуется использовать статические переменные.
793+
794+
Нежелательно:
795+
796+
local state
797+
...
798+
local foo = function(bar)
799+
state = bar
800+
end
801+
...
802+
local baz = function()
803+
print(state)
804+
end
805+
806+
Исключение — для системных объектов-синглтонов, с соответствующим комментарием,
807+
при наличии разрешения техлида.
808+
809+
Мотивация — вредит реюзу кода.
810+
811+
* Настоятельно не рекомендуется использовать статические объекты.
812+
813+
Нежелательно:
814+
815+
local fooer
816+
do
817+
fooer =
818+
{
819+
bar_ = 42;
820+
}
821+
end
822+
823+
У объекта в обязательном порядке должна быть фабрика.
824+
825+
Мотивация — вредит реюзу кода, усложняет рефакторинг.
826+
790827
##Тесты
791828

792829
###Именование тестов

0 commit comments

Comments
 (0)