You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Feb 15, 2025. It is now read-only.
Copy file name to clipboardExpand all lines: docs/main/Introduction.md
+33-31
Original file line number
Diff line number
Diff line change
@@ -164,42 +164,44 @@ But don't forget to tag [@AgileFramework](https://twitter.com/AgileFramework), o
164
164
165
165
## 🌏 Creation of AgileTs
166
166
167
-
After exploring the many options for Javascript State libraries, including Redux.
168
-
I felt like I need a simpler, more straightforward solution.
169
-
So I started searching for Redux alternatives and accidentally stumbled across a stream from [@jamiepine](https://twitter.com/jamiepine).
170
-
Jamie was using an interesting approach of State Management which was more modular and flexible, called PulseJs.
171
-
I instantly fell in love with the concept of this framework.
172
-
At this point (spring 2020) it wasn't officially released and had no documentation at all.
173
-
But I tried to figure out how to use it anyway, and after some painful hours, I got it to work in my React application.
174
-
To save others this time, I decided to write a small [pre-documentation](https://www.notion.so/bennoworkspace/Pulse-v3-No-official-Docs-4e92e8d02dd3423582fa95072806cab6) for PulseJs.
175
-
Unfortunately, this documentation didn't make PulseJs more stable, and it remained very buggy.
176
-
So I waited and waited until summer where still no stable version of PulseJs was released.
177
-
In July, I came to the conclusion to contribute to PulseJs, in order to speed up the development process.
178
-
But before I could contribute, I had to figure out how PulseJs works internally.
179
-
After hours, I still couldn't figure out how it works. This was due to the fact that I wasn't very experienced in Typescript,
180
-
and the codebase was pretty messy (no comments, variables called x, a, b, ..).
181
-
In order to change that, I rewrote PulseJs from scratch (in a separate project, later AgileTs)
182
-
and after a while, I got the hang and figured out how PulseJs works internally.
183
-
Now that I know how it works, I could finally contribute to PulseJs. My [first contribution](https://github.com/pulse-framework/pulse/commits?author=bennodev19) was on the 16th August 2020,
184
-
where I refactored the `PulseHOC`.
185
-
At the end of August, PulseJs was moving further and further away from my idea of an ideal State Management Framework.
186
-
Mainly because of the introduction of the `Pulse.Core`,
187
-
which more or less forced you to define all States, Actions in a single object called `core`.
188
-
And it didn't even work correctly at all.
189
-
I wouldn't say I liked that change since I switched among others things to PulseJs in order not to define all my States in a single object.
190
-
And I hadn't seen fit to rewrite my entire global State Management Logic of my applications to use the latest version of PulseJs.
191
-
That I didn't even like.
167
+
After exploring the many options for Javascript State libraries, including the popular Redux and MobX.
168
+
I felt like I need a simpler, more straightforward solution.
169
+
One day I accidentally stumbled across a stream from [@jamiepine](https://twitter.com/jamiepine).
170
+
Jamie was using an interesting approach of State Management which I haven't seen yet.
171
+
The framework he used, was PulseJs, the ancestor of AgileTs, so to speak.
172
+
I liked this concept of State Management a lot and started using it in my own projects.
173
+
At this point in time (spring 2020) it wasn't officially released.
174
+
Therefore, it was quite buggy and had no documentation. But I figured out of to use it anyway
175
+
and saved my finding in a small [pre-documentation](https://www.notion.so/bennoworkspace/Pulse-v3-No-official-Docs-4e92e8d02dd3423582fa95072806cab6) for PulseJs fellows.
176
+
The months went by and no stable version came out. Not even a npm package.
177
+
In July, I came to the conclusion to contribute to PulseJs, in order to speed the development process a bit up.
178
+
But before I could do anything, I had to figure out how PulseJs works internally.
179
+
After hours, I still haven't figured out how it works. This was due to the fact that I was a Typescript noob,
180
+
and the codebase was not contributor friendly. (No comments, variables called x, a, b, ..).
181
+
In order to learn how PulseJs works and to get a deeper understanding of Typescript,
182
+
I decided to rewrite PulseJs from scratch in a separate project, later AgileTs.
183
+
After a while, I got the hang and had a good understanding how PulseJs works under the hood.
184
+
Now that I knew how PulseJs works, I could finally start contributing.
185
+
My [first contribution](https://github.com/pulse-framework/pulse/commits?author=bennodev19) was on the 16th August 2020,
186
+
where I refactored the `PulseHOC`. Unfortunately PulseJs was moving further and further away from my idea of an ideal State Management Framework.
187
+
For instance, they introduced the `Pulse.Core`, which more or less forced me to define all States, Actions in a single object called `core`.
188
+
I wouldn't say I liked that change since I switched among other reasons to PulseJs in order to not define all my States in a single object.
189
+
Because of this relatively large design change, I would have to rebuild my entire State Management Logic of my applications.
190
+
Which I didn't want to do, because I liked the old concept more.
192
191
Luckily I had the refactored PulseJs version lying around, which I created to learn how PulseJs works internally and released it as an own framework called
Agile-Architecture was at that point just the old refactored PulseJs without the `Pulse.Core`.
195
-
Another reason I turned away from PulseJs, was that some of my changes never got merged into the `master`. For instance, I fixed an annoying usePulse type issue,
196
-
and 8 months later, it is still not merged into the `master`. Why should I contribute if my changes will never be in a release version?
197
-
Now that I had my own State Management Framework, I adapted it to my needs and optimized it.
198
-
Over time AgileTs has evolved away from PulseJs and can be seen as a standalone state management framework with other visions and goals.
193
+
Agile-Architecture was at that point just an old refactored version of PulseJs without the `Pulse.Core`.
194
+
Another reason I turned away from PulseJs, besides the different visions, was the leak of organisation.
195
+
Some of my changes never got merged into the `master` branch. Why? Idk. But I am sure that it was not intentional.
196
+
For instance, I fixed an annoying `usePulse` type issue, and 8 months later, it is still not merged into the `master`.
197
+
Why should I contribute if my changes, which fixed a problem I had, will never be in the release version.
198
+
Now that I had my own State Management Framework, I had more control and adapted it to my needs.
199
+
Over the time AgileTs evolved away from PulseJs with other visions and goals.
200
+
During this time I rewrote and optimized all internal classes, created tests and created a documentation.
199
201
Today AgileTs has only a similar syntax to PulseJs. Internal, it works entirely different.
200
202
201
203
**Conclusion:** The idea of AgileTs is based on PulseJs, and I would have loved to continue working on PulseJs.
202
-
But certain circumstances, such as the poor organization and different visions,
204
+
But certain circumstances, such as a poor organization and different visions,
203
205
have driven me to write my own State Manager based on the ground concept of PulseJs and MVVM frameworks.
0 commit comments