Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Объедени снова все в 1 модуль! #338

Closed
zdev-online opened this issue Sep 17, 2020 · 13 comments
Closed

Объедени снова все в 1 модуль! #338

zdev-online opened this issue Sep 17, 2020 · 13 comments
Labels
package: vk-io Issues related to vk-io

Comments

@zdev-online
Copy link

Я просто не понимаю, зачем 1 модуль раскидывать на 100 частей?
Обновил я зависимости и тут бот не работает.

@zdev-online zdev-online added the package: vk-io Issues related to vk-io label Sep 17, 2020
@ObicaFF
Copy link

ObicaFF commented Sep 17, 2020

Где именно не работает? Какую ошибку выдает?

@zdev-online
Copy link
Author

zdev-online commented Sep 17, 2020

Где именно не работает? Какую ошибку выдает?

Теперь чтобы работала нужно ещё и HearManager
Автор данного модуля так и будет делить модуль, пока каждая переменная не окажется в отдельном файле?

@ObicaFF
Copy link

ObicaFF commented Sep 17, 2020

Так, вы же можете создать свою команду без модуля.

@zdev-online
Copy link
Author

Так, вы же можете создать свою реализацию HearManager без модуля.

Это да, но узнать "Зачем и Почему?" разбили все на модули хочется!)

@ObicaFF
Copy link

ObicaFF commented Sep 17, 2020

Так, вы же можете создать свою реализацию HearManager без модуля.

Это да, но узнать "Зачем и Почему?" разбили все на модули хочется!)

Возможно для удобства и чтоб быстро работало 👍 . Хотя все же есть минусы у модели.

@zdev-online
Copy link
Author

Так, вы же можете создать свою реализацию HearManager без модуля.

Это да, но узнать "Зачем и Почему?" разбили все на модули хочется!)

Возможно для удобства и чтоб быстро работало 👍 . Хотя все же есть минусы у модели.

Быстрее от этого не станет, как мне кажется

@ObicaFF
Copy link

ObicaFF commented Sep 17, 2020

Так, вы же можете создать свою реализацию HearManager без модуля.

Это да, но узнать "Зачем и Почему?" разбили все на модули хочется!)

Возможно для удобства и чтоб быстро работало 👍 . Хотя все же есть минусы у модели.

Быстрее от этого не станет, как мне кажется

Но все же, лучше использовать свою реализацию )) Там меньше проблем

@nitreojs
Copy link
Contributor

Так, вы же можете создать свою реализацию HearManager без модуля.

Это да, но узнать "Зачем и Почему?" разбили все на модули хочется!)

Возможно для удобства и чтоб быстро работало 👍 . Хотя все же есть минусы у модели.

Быстрее от этого не станет, как мне кажется

естественно станет, модуль не будет подгружать те вещи, которые начальному юзеру будут ненужны и не будет обрабатывать мидлвари, которые в итоге будут проигнорированы = буст в скорости, думайте о чем пишете

@zdev-online
Copy link
Author

Так, вы же можете создать свою реализацию HearManager без модуля.

Это да, но узнать "Зачем и Почему?" разбили все на модули хочется!)

Возможно для удобства и чтоб быстро работало 👍 . Хотя все же есть минусы у модели.

Быстрее от этого не станет, как мне кажется

естественно станет, модуль не будет подгружать те вещи, которые начальному юзеру будут ненужны и не будет обрабатывать мидлвари, которые в итоге будут проигнорированы = буст в скорости, думайте о чем пишете

Да, но основной хендлер - сообщения, зачем его то выпиливать?

@Nekonyx
Copy link

Nekonyx commented Sep 17, 2020

Да, но основной хендлер - сообщения, зачем его то выпиливать?

Давай я постараюсь объяснить всё на понятном тебе языке - языке мемов.

image

@Saiv46
Copy link
Contributor

Saiv46 commented Sep 17, 2020

В защиту @Zharckov могу сказать что нарушение обратной совместимости - не есть хорошо.
Разъединение модулей повысило порог вхождения, да и сложность кода лишь увеличилась со временем.

Phoenix Wright

@Nekonyx
Copy link

Nekonyx commented Sep 17, 2020

В защиту @Zharckov могу сказать что нарушение обратной совместимости - не есть хорошо.

Поэтому это Breaking Change.

image

@negezor
Copy link
Owner

negezor commented Sep 18, 2020

Основная библиотека это vk-io, которая предоставляет базовое взаимодействие с ВКонтакте, она тянет за собой минимальное количество зависимостей. Модуль @vk-io/hear это такой же middleware как @vk-io/session и @vk-io/scenes. Так как это только альтернативная реализация возможного взаимодействия с сообщениями. Когда модуль находился в Updates это не позволяло переиспользовать его и добавляла лишнюю сложность и бесконтрольность, к тому же это нарушало принцип SOLID.

В самом деле я бы всё разделил на отдельные модули @vk-io/api, @vk-io/upload, @vk-io/updates, @vk-io/collect и @vk-io/structures а в vk-io всё бы это экспортировалось по умолчанию, ввиду того что каждый модуль лишь реализация своей ответственности. Но прямо сейчас внутри vk-io каждый модуль уже готов пересадки в своё пространство имён.

У этого подхода есть большее преимущество, вы устанавливаете только то — что вам нужно. А так же вы не путаетесь в огромном количестве экспорта из всего модуля. За примером далеко ходить не нужно, стоит посмотреть инструменты по типу: apollo-server, apollo-tooling и apollo-client.

image

@negezor negezor closed this as completed Sep 24, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
package: vk-io Issues related to vk-io
Projects
None yet
Development

No branches or pull requests

6 participants