garmoshka-mo / nemobile

nepotom client
1 stars 0 forks source link

refactoring of userService #1

Closed garmoshka-mo closed 8 years ago

garmoshka-mo commented 8 years ago

Привести проект к виду: https://github.com/garmoshka-mo/nemobile/wiki

нужно сделать рефакторинг userService handleIncomeMessage - там жесть. Предложите архитектуру, согласуем - после реализуете. Помните, что должно быть разбито на короткие модули (100, максимум 200 строк) и короткие функции (<20 строк) пример - сервис media/avatars.js Учесть замечания из #2 #12 После рефакторинга пройтись по туду и выполнить такие как // todo: remove this after refactoring

Структурирование новых классов

Старый классы можно держать по старой структуре, но по ходу работы с ними - сортируйте по понятным модулям: Сервисов должно быть много по идее и потому они должны быть по папакам разложены и слово Service ни к чему в конце, пусть если у файла нет суфикса, то подразумевается что это сервис. factories - там сервисы тоже лежат. Соовтетсвенно разсортировать их по модулям. папка services - не нужна, просто по модулям разсортируйте файлы,пример messaging/externalChat.js префикс ang- у controllers ни к чему и вообще их слишком много внутри, надо их тоже по модулям разложить, пожно прямо в папки модулей, без подпапок контроллеров, т.к. суфикс Controller будет указывать на тип файла.

модули именовать так, чтобы открыв папку js было интуитивно понятно, в какую подпапку дальше идти чтобы найти искомый контроллер или сервис

davoam commented 8 years ago

Это папка содержит конструкторы объектов. https://carldanley.com/js-factory-pattern/

garmoshka-mo commented 8 years ago

точно так же можно было бы назвать "папка с классами" или "со скриптами на js" или "папка с файлами в которых код"

davoam commented 8 years ago

так что надо сделать?) папку переименовать или это уже не принципиально?)

garmoshka-mo commented 8 years ago

на модули разбить, вначале тикета описал как

garmoshka-mo commented 8 years ago

Пример очень корявой архитектуры:

            $scope.chatSession.sendMessage(textToSend, getAddress(), $scope.newMessage.ttl)

Вы вызываете метод у сессии чата и передаете, куда отправлять?? (getAddress) Как сессия чата логически может отправит куда либо, кроме как в свой чат?