Implement PoC (proof of concept) of the State Management that increase performance
@korel-san đang làm issue này rồi.
Từ ngày 14/2/2023.
Đánh giá
- Độ khó
- 5/5
- Thời gian dự kiến
- Hơn một tuần
- Mức phù hợp với người mới
- 20/100
- Loại issue
- Tính năng
- Độ rõ ràng
- Cần làm rõ
- Mức độ hoạt động
- Đình trệ
- Công nghệ
- typescript
- Lĩnh vực
- frontend
Hướng nghiên cứu
Bắt đầu bằng việc điều tra elf, effector và ng-state theo các tiêu chí đã nêu về tính nhẹ, tính đơn giản, routing-subscription và session storage. Sau đó xem lại phần phân tích routing-state hiện có và cách sử dụng StringHelpers.encodeObjToUrlString trước khi tạo src/state/actual-route-state.repository.ts. Công việc được xem là hoàn tất khi một actual route state thống nhất có thể được truy cập thông qua một repository chỉ dùng cục bộ và không có instance nào tồn tại trong production.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
The main goal of the task: create State Service that contains the parsed actual route state.
More details:
The routing state depends on the page and functionality of the page. Now many components trying to parse it, which increased code duplication and worked not properly in some cases. So, for the unification of the actual routing state, we consider separating functionality in service, which would handle the actual route state, and every component would be asked from its real data for their purposes.
We don't want to use current state management ngrx due to the high level of tied dependency of the current implementation, so not to add extra naming and have a more lightweight solution, we want to use another tool for this PoC will allow us to not affect the current performance.
Actual implementation plan:
- investigate 2-3 state management packages: elf, effector, ng-state
Points on which we need to focus
- it should be lightweight
- it should be pretty simple
- package should allow to manipulate of routing (subscription, session storage)
- create a state folder in the src and add there
actual-route-state.repository.ts. In this file, we need to create a repository that would manage the routing state. Please, take into account, that this state management should work only for the local environment. On prod env, this instance should not exist. - In some cases probably you will need to create Adapters that would convert the current routing state to a meaningful one. For example for pages where we have
protectedquery parameters via the encoding ofStringHelpers.encodeObjToUrlString. So after this implementation, every developer should be allowed to see the state of this service on every page of the project.
- Ngôn ngữ chính
- TypeScript
- Star
- 12
- Fork
- 7
- Chỉ số merge pull request
- Không có pull request nào được merge trong 30 ngày
Chuẩn bị môi trường
Dự án này không cung cấp dev container, Dockerfile hay hướng dẫn đóng góp, nên bạn cần tự thiết lập môi trường: hãy bắt đầu từ README và xem hướng dẫn đóng góp lần đầu của chúng tôi để biết các bước chung.
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của AbsaOSS/spline-ui
-
enhancement
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 20/100
-
bug
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 20/100
-
Update Angular & other dependenciesCó thể đã có người làm @korel-san đã nhận 675 ngày trước. Đang mởdependencies
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 10/100
-
bug
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 35/100
-
bug
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 45/100
Tất cả issue của AbsaOSS/spline-ui
Issue tương tự
-
[analytics-core] getQueryParams does not decode `+` as space and truncates values containing `=`Đang mởbug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
amplitude/Amplitude-TypeScript#2179 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 2 ngày
-
ci good first issue severity: low
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
TMHSDigital/GH-Arcade#111 ·
-
AsnIntegerConverter.toASN coerces strings with +value, rounding integers outside safe-integer rangeĐang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
PeculiarVentures/asn1-schema#189 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
Maintainer thường phản hồi trong vòng 4 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100