Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   [Паттерны] Ваше мнение о глобальных функциях (http://www.flasher.ru/forum/showthread.php?t=211409)

Crash512 26.08.2015 10:16

Ваше мнение о глобальных функциях
 
Интересует ваше мнение о использовании глобальных функций. Вот у нас в команде один программист создал десяток глобальных методов для доступа к ресурсам (типа getTexture(), getXML(), getJSON()). Я же склоняюсь к тому, что это полная жесть, и надо делать так: Assets.getTexture()...

P.S. Кстати говоря, внутри этой глобальной getTexture() как раз находится Assets.getTexture(). Такие дела.

callme 26.08.2015 10:43

Если разработчики старлинга изменят название функции Assets.getTexture(), или вы вовсе захотите использовать вместо старлинга другую библиотеку, твоему коллеге потребуется исправить лишь свою функцию getTexture(). Хотя оба случая маловероятны.

Минус в том, что при чтении кода ему приходится держать в голове, что же это за функция такая getTextures().

Crash512 26.08.2015 10:48

Ладно бы ему держать в голове. В команде 10 человек. А в старлинге не Assets, а AssetsManager.

caseyryan 26.08.2015 11:05

Я нормально отношусь. В команде надо договариваться, но это уже другой вопрос. В целом ничего плохого в этих функциях не вижу. Тоже часто использую.
Плюс к тому, если они глобальные, значит лежат в корне, то их не надо нигде импортировать. Поэтому, как уже сказали выше, при любых изменениях, достаточно будет поправить код в этих функция, не парясь о куче импортов там и сям. Да и просто запись getTextures() короче, чем Assets.getTextures(), а любая нормальная IDE сразу покажет, что это глобалка, а не внутренняя функция

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

п.п.с. Я обычно использую глобалки типа random(); или distance();

udaaff 26.08.2015 13:11

Я бы не стал плодить кучу мусорных функций ради того, чтобы сократить запись на одно слово.
Если предположить вариант, что производится несколько больше действий (например, какая-то предварительная обработка данных после получения их из менеджера, или хотя бы даже приведение типа), то в данном случае я бы сделал класс с набором статических методов, а не разрозненных функций из соображений порядка в коде, так как все эти функции объединены общим смыслом - получение определенного ресурса.

AlexCooper 27.08.2015 00:05

Я стараюсь избегать глобальных/статических переменных. Возможно у меня мания преследования, но я стараюсь максимально закрыть или же скрыть прямой доступ к данным. В некоторых случаях использую "псевдо-регистр". В корне создаю класс R, геттеры которого отдают нужные мне экземпляры классов или методов, что позволяет получать псевдо-статический доступ без импорта либ и генераций статических методов/свойств

caseyryan 27.08.2015 07:11

Цитата:

В корне создаю класс R
Запахло андроидом :D
Не красиво такие записи как-то выглядят


Часовой пояс GMT +4, время: 02:47.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.