Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Update curried-produce.mdx#1070

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to ourterms of service andprivacy statement. We’ll occasionally send you account related emails.

Already on GitHub?Sign in to your account

Open
Arthur-Milchior wants to merge1 commit intoimmerjs:main
base:main
Choose a base branch
Loading
fromArthur-Milchior:patch-1

Conversation

@Arthur-Milchior
Copy link
Contributor

First, thanks for this library.

I hope you'll find this slight rewriting accepatble.

On first reading, I foundhttps://immerjs.github.io/immer/curried-produce extremely confusing. The main reason being that, when I read "Passing a function as the first argument", I thought you meant that we were seeing a variation of theproduce from the previous page, where both arguments were functions. I believe it's important to note that we'll see a very different way to callproduce. It's even more confusing, because you introduce a new way to callproduce with an argument, and your example does not use this new way. I spend quite some time trying to understand how this example works. I believe it is better to explain to the user that they are going to see the "bad" version of the example first. Then explain what's wrong with this code (too much boilerplate), and how it can be improved. Finally, once they saw the nice code, explain how it work.

I also suspect that, in order to emphasize thattoggleTodo consists simply ofproduce applied to the function that implements the actual business logic, it's nice to add this business logic as a separate function. This way, we get the very simpleconst toggleTodo = produce(toggleTodo_). I don't state this would be good production code; I admit that in real life, an anonymous lambda would be better. However, for educational purpose, I find this clearer. This really emphasize thattoggleTodo is semantically the exact same function astoggleTodo_ except that it does not uses side effect but output a new value.

First, thanks for this library.I hope you'll find this slight rewriting accepatble.On first reading, I foundhttps://immerjs.github.io/immer/curried-produce extremely confusing.The main reason being that, when I read "Passing a function as the first argument", I thought you meant that we were seeing a variation of the `produce` from the previous page, where both arguments were functions. I believe it's important to note that we'll see a very different way to call `produce`.It's even more confusing, because you introduce a new way to call `produce` with an argument, and your example does not use this new way. I spend quite some time trying to understand how this example works. I believe it is better to explain to the user that they are going to see the "bad" version of the example first. Then explain what's wrong with this code (too much boilerplate), and how it can be improved. Finally, once they saw the nice code, explain how it work.I also suspect that, in order to emphasize that `toggleTodo` consists simply of `produce` applied to the function that implements the actual business logic, it's nice to add this business logic as a separate function. This way, we get the very simple `const toggleTodo = produce(toggleTodo_)`. I don't state this would be good production code; I admit that in real life, an anonymous lambda would be better. However, for educational purpose, I find this clearer. This really emphasize that `toggleTodo` is semantically the exact same function as `toggleTodo_` except that it does not uses side effect but output a new value.
Sign up for freeto join this conversation on GitHub. Already have an account?Sign in to comment

Reviewers

No reviews

Assignees

No one assigned

Labels

None yet

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

1 participant

@Arthur-Milchior

[8]ページ先頭

©2009-2025 Movatter.jp