cbrgpl / ffbc-development

1 stars 0 forks source link

General project rules:

- Принцип именования actions:
    - actionName
        Значит, что значение полученное из сервиса будет прокидываться в store

    - outActionName
        Значит, что значение полученное из сервиса будет возвращаться вызывающей функции

- Принцип именования файлов в .../router/helpers/:
    - Если файл экспортирует guard, то название генерируются следующим паттерном:
        guardName.guard

    - Если файл экспортирует сервисы для guard, то название генерируется следующим паттерном:
        guardName + ExportFunctionalName = guardNameExportFunctionalName

    - Пример:
        auth.guard.js
        authUpdateTokens.js

- Использование браузерных storage(sessionStorage, localStorage):
    В случае необходимости использования какого-то ключа для storage используйте один из ключей объект
    STORAGE_NAMES, который является полем consts; В случае если необходимого ключа там нет, создайте новую пару
    storageNameMeaning: storageNameValue;

    Пример:
    REFRESH_TOKEN: 'var_refreshToken'

    ИСПОЛЬЗОВАНИЕ УСТАНОВКИ КЛЮЧА ПРИ ПОМОЩИ СТРОКИ СТРОГО ЗАПРЕЩАЕТСЯ!





Project run:


Для запуска в режиме разработчика npm run serve


Чтобы сбилдить проект npm run build





Linters:


Фикс vue-cli-service npm run lint


Проверка stylelint npm run stylelint


Фикс stylelint npm run stylelint-fix





Project directory map:





Git Rules:


Issues:


  1. Если Issue успешно закрывается:
    Перед закрытием указывайте коммит, в котором она была решена, можно использовать следующий паттерн:
    Поправил в коммите 986ee1a

  2. Если Issue закрывается не успешно:
    Повесьте лэйбл wontfix и объясните причину закрытия issue

  3. Если Issue была исправлена кем-то другим и вы не знаете где искать этот коммит:
    Напишите, что Issue уже была исправлена, ссылка на коммит потеряна



Возможные task-type:


- fix
- feat
- rework



Branches:

  1. При создании новой ветки используйте следующий паттер "task-type/name"



Commits:


  1. При коммите используйте следующий паттерн "task-type(область работы): сообщение"



Pull Requests:


  1. В случае, если вы начали работу над одним функционалом и плавно незаметно выполнили еще несколько задач, то разделите всю работу на несколько веток вручную, после чего создайте несколько Pull Request'ов. Не нужно перегружать один пулл огромными массивами кода.

Инструкция будет позже...





Project service classes API:

Console


object( object, title )


Arg Type Default Description
object Object undefined Object that should be displayed in console
title String empty string String before object



log( message )


Arg Type Default Description
message string undefined Message that should be displayed in console



error ( message ); warn ( message )


Arg Type Default Description
message string undefined Message with separators that should be highlighted and displayed in console

separator by default is "^"

Use Console.separator property to change separator symbol;



Dialog

Insterted[^inserted_in_app] service;


register ( dialogName )


Arg Type Default Description
dialogName string undefined The name of dialog; Binds to component and helps to manipulate with dialog component throw the interface



show( dialogName, modal )


Arg Type Default Description
dialogName string undefined The name of dialog which will be shown
modal boolean true The flag that controls whether or not display dialog window wrapper with background or not



hide( dialogName )


Arg Type Default Description
dialogName string undefined The name of dialog which will be hidden



addWatcher( dialogName, watcher, watcherOptions )

Arg Type Default Description
dialogName string undefined The name of dialog which will be watched
watcherCallback function null The function which will be called at dialog visibility changes
watcherOptions object {} Vue watcher options


watcherCallback( { newValue, oldValue, unwatch } )

Arg Type Description
newValue any New value of watched value
oldValue any Old value of watched value
unwatch function The function which stops watcher





MediaViewOverlay

Insterted[^inserted_in_app] service;


show( mediaSrc, mediaType )


Arg Type Default Description
mediaSrc string undefined The src url of media resource
mediaType string undefined The type of media

Available types of media:





Toast

Insterted[^inserted_in_app] service;


warn( { sumary, detail, life } )

success( { sumary, detail, life } )

error( { sumary, detail, life } )

info( { sumary, detail, life } )


Arg Type Default Description
summary string undefined toast title
detail string undefined toast detail message
life number undefined Time of live of toast in ms



remove( id )


Arg Type Default Description
id number undefined ID of toast that must be deleted





[^complex_operation]: Цепочка действий или запросов, смысл которой можно объяснить одни действием.
Пример:
getUser разделяется на 3 действия: getUserInfo; getUserOrders; getUserCart

[^pseudo_abstract_class]: Так как в JS нет механизма для создания абстрактного класса, то используется такое семантическое обозначение для классов, которые не должны использоваться в клиентском коде. Использование таких классов заключается в наследовании от них и создании разных вариаций потомков.

[^inserted_in_app]: Подразумевается, что сервис является частью app и может быть доступен внутри компонентов через this с помощью соответствующего интерфейса.