Стоит ли использовать объект, в котором много других объектов, в котором еще куча дочерних объектов? или просто организовать данные по разным объектам и через ID как в базе данных их выбирать?
Пример: у меня есть - бренд авто, марка, владелец.
Организовать будет лучше через вложенные объекты?
brand = {
marks:{
r7:{
name:'anton'
}
}
}
или создать несколько массивов, в которых будут idшники через которые приложение будет перебирать массивы и понимать кто к чему относится?
brands =[{id:1, brand:'bmw'}];
marks =[{id:1, marka:'R7'}];
owner =[{id:1, name:'Антон''}];
Как вы делаете? и как лучше?
JavaScript
Какую структуру данных вы используете в разработке js приложений? Дерево? или Множество объектов? пояснение внутри
Все зависит от приложения - точнее, и от общего алгоритма, и от манипуляций с данными в частности.
Например, в одностраничнике с единственной общей "функцией" и без обмена данными с внешним кодом (например, оффлайновый поиск в статичном справочнике), может быть оправдан подход одного большого дерева, так как не нужно решать задачи изменения-связывания данных, и ригидность структуры не мешает. А в комплексном приложении, построенном в соответствии с принципами SOLID, и работающим с несколькими апи, где данные "живые и подвижные" - целесообразнее разделить их по логически независимым компонентам.
В твоем случае, прежде всего необходимо определиться, что именно является "основной" сущностью. Скорее всего, это будет "владелец авто" - а значит, разумно сделать отдельно коллекцию экземпляров этого объекта + и отдельно справочник автомобилей (коллекцию экземпляров "автомобиль").
Нужно ли дробить сущность автомобиля на массивы "брэнд" и "модель", вынося из свойств экземпляра - зависит от того, какая работа планируется со справочником. Скажем, если он будет редактироваться юзером, и храниться в mongoDB или Firebase RD, то смысл определенно есть: так можно значительно упростить код, а также сократить объемы передаваемых по сети данных, снизить нагрузку, и немного повысить скорость работы приложения. Но и в этом случае, совсем не нужно объявлять переменные для этих массивов - храни их в объекте справочника. Будет этот объект массивом, или же основан на классе с инкапсуляцией - зависит только от тебя, от того какой будет архитектура приложения.
Короче, если бы на этот вопрос был единственный универсальный ответ, то не было бы разработчиков ПО))
Например, в одностраничнике с единственной общей "функцией" и без обмена данными с внешним кодом (например, оффлайновый поиск в статичном справочнике), может быть оправдан подход одного большого дерева, так как не нужно решать задачи изменения-связывания данных, и ригидность структуры не мешает. А в комплексном приложении, построенном в соответствии с принципами SOLID, и работающим с несколькими апи, где данные "живые и подвижные" - целесообразнее разделить их по логически независимым компонентам.
В твоем случае, прежде всего необходимо определиться, что именно является "основной" сущностью. Скорее всего, это будет "владелец авто" - а значит, разумно сделать отдельно коллекцию экземпляров этого объекта + и отдельно справочник автомобилей (коллекцию экземпляров "автомобиль").
Нужно ли дробить сущность автомобиля на массивы "брэнд" и "модель", вынося из свойств экземпляра - зависит от того, какая работа планируется со справочником. Скажем, если он будет редактироваться юзером, и храниться в mongoDB или Firebase RD, то смысл определенно есть: так можно значительно упростить код, а также сократить объемы передаваемых по сети данных, снизить нагрузку, и немного повысить скорость работы приложения. Но и в этом случае, совсем не нужно объявлять переменные для этих массивов - храни их в объекте справочника. Будет этот объект массивом, или же основан на классе с инкапсуляцией - зависит только от тебя, от того какой будет архитектура приложения.
Короче, если бы на этот вопрос был единственный универсальный ответ, то не было бы разработчиков ПО))
Похожие вопросы
- [HTML/CSS/JS] Как сохранять изменённые в .js данные оффлайн-сервера локально?
- Почему большинство прогеров не ставят точку с запятой в конце строчек кода при разработке приложений на js?
- Зачем разработчики js сделали так что там где могли быть функции они добавили методы встроенных объектов.
- Как сделать радномный выбор объекта? HTML, JS
- В JS существует 8 типов данных:
- Обучение разработки приложений
- Помогите определиться с выбором нового языка (JS(TS) vs Java)
- Подходит ли Node.js для бэкенда? Или смысл в его изучении? Как много в компаниях используют в бэкенде node.js?
- Js фреймворки, что полезного можно для себя найти?
- В чем цель фреймворков js web?