2015-06-15 2 views
-4

Я предпочитаю очень маленькие пакеты (публичное и личное значение в области упаковки).Как гранулированные упаковки в golang

encapsulated Его больше, более manageable и cleaner (и использовать их как очень маленькие javascript пакетов).

Но компилятор go делает класс .a на каждый пакет.

Производительность так важна для меня, и я боюсь накладных расходов на загрузку .a файлов.

И как я вижу golang's исходные пакеты в github они различаются по размеру и в моей перспективе. взгляните на net/http package его так много.

Так

  • Как я должен гранулированным и дизайн мое движение пакетов?

  • Как я должен инкапсулировать свои структуры?

  • Есть ли проблемы с производительностью, если мое приложение получает сотни очень маленьких пакетов?
+2

Не используйте их в качестве классов. Go статически компилируется. Даже если бы вы не оптимизировали преждевременно. – thwd

ответ

2

Возможно, пакет http слишком велик, это правда, но большинство классов Java слишком малы. Посмотрите на другие пакеты в stdlib для руководства.

Пакет должен обеспечивать согласованный набор функциональных возможностей (типы и их методы, функции, переменные, константы). Использование вашего кода будет выглядеть как packagename.type или packagename.function, и это должно быть разумным.

Инкапсуляция полностью перепроданна. не

Нет нет проблем с производительностью (за исключением, может быть, больше время компиляции),

Имея сотни крошечных, непригодной в себе пакеты, просто бесполезно, не-идиоматических излишним (и готовиться к борьбе циклы импорта).

Смежные вопросы