fullstack-development / react-redux-starter-kit

Modular starter kit for React+Redux+React Router projects.
https://demo.fullstack-development.com/
MIT License
91 stars 13 forks source link

Переименовать все namespace.ts в types.ts #148

Open sk1e opened 4 years ago

sk1e commented 4 years ago

Не вижу ничего общего с определением https://en.wikipedia.org/wiki/Namespace Добавляет путаницы

in19farkt commented 4 years ago

давно пора))

kinda-neat commented 4 years ago

ага и импортировать как * as T, as TS

Znack commented 4 years ago

types.ts действительно лучше namespace.ts. Однако я в целом сейчас, особенно после опыта работы с Haskell проектами, стараюсь избегать файлов Types.(ts|hs), я стараюсь модули бить по бизнес-ценности, по функциональности, по семантике и тд, но не по признаку типы ли это или функции. Поэтому возможно все namespace.ts на самом деле надо раскидать по model.ts, redux-state.ts и тд, которые будут в разных папках находиться, так как это разные слои абстракций

sk1e commented 4 years ago

types.ts действительно лучше namespace.ts. Однако я в целом сейчас, особенно после опыта работы с Haskell проектами, стараюсь избегать файлов Types.(ts|hs), я стараюсь модули бить по бизнес-ценности, по функциональности, по семантике и тд, но не по признаку типы ли это или функции. Поэтому возможно все namespace.ts на самом деле надо раскидать по model.ts, redux-state.ts и тд, которые будут в разных папках находиться, так как это разные слои абстракций

идея хорошая, но есть момент с моделями: часто возникает потребность в модулях которые имеют собственные модели и чтобы не путать с моделями приложения я не называю их моделями. Если допускать что в рамках приложения у нас разные множества моделей существуют, тогда каждое множество должен быть подчёркнуто именем модуля в котором оно находится, но доменные модели сейчас лежат в shared/types/models поэтому нужно завести каталог для модуля по работе с доменной областью, src/domainCore например. Тогда всё станет органичным

Znack commented 4 years ago

Ну мне кажется норм, что у тебя есть корневые модели, если модели модуля. Можно, конечно, доменные в корне складывать и называть просто domain, но там же не только модели предметки могут лежать :) Поэтому я предлагаю пока не заморачиваться, сделать модели в src как корневые, и если надо модуль может свои локальные модели тоже объявлять. По пути иерархия и так будет четко прослеживаться

Safr commented 4 years ago

можно поменять для ясности, также вместо import * as React заменить на import React с флагом esModuleInterop: true