-
-
Notifications
You must be signed in to change notification settings - Fork 63
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 our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: blog: Code review nit to ecosystem improvements #629
Conversation
✅ Deploy Preview for new-eslint ready!Built without sensitive environment variables
To edit notification comments on pull requests, go to your Netlify site configuration. |
✅ Deploy Preview for hi-eslint ready!
To edit notification comments on pull requests, go to your Netlify site configuration. |
✅ Deploy Preview for ja-eslint ready!
To edit notification comments on pull requests, go to your Netlify site configuration. |
✅ Deploy Preview for zh-hans-eslint ready!
To edit notification comments on pull requests, go to your Netlify site configuration. |
✅ Deploy Preview for fr-eslint ready!
To edit notification comments on pull requests, go to your Netlify site configuration. |
✅ Deploy Preview for es-eslint ready!
To edit notification comments on pull requests, go to your Netlify site configuration. |
✅ Deploy Preview for pt-br-eslint ready!
To edit notification comments on pull requests, go to your Netlify site configuration. |
✅ Deploy Preview for de-eslint ready!
To edit notification comments on pull requests, go to your Netlify site configuration. |
✅ Deploy Preview for es-eslint ready!
To edit notification comments on pull requests, go to your Netlify site configuration. |
src/content/drafts/code-review-nit-to-ecosystem-improvements.md
Outdated
Show resolved
Hide resolved
src/content/drafts/code-review-nit-to-ecosystem-improvements.md
Outdated
Show resolved
Hide resolved
src/content/drafts/code-review-nit-to-ecosystem-improvements.md
Outdated
Show resolved
Hide resolved
src/content/drafts/code-review-nit-to-ecosystem-improvements.md
Outdated
Show resolved
Hide resolved
src/content/drafts/code-review-nit-to-ecosystem-improvements.md
Outdated
Show resolved
Hide resolved
src/content/drafts/code-review-nit-to-ecosystem-improvements.md
Outdated
Show resolved
Hide resolved
Co-authored-by: Amaresh S M <[email protected]>
Co-authored-by: Amaresh S M <[email protected]>
Co-authored-by: Amaresh S M <[email protected]>
Co-authored-by: Amaresh S M <[email protected]>
Co-authored-by: Amaresh S M <[email protected]>
Co-authored-by: Amaresh S M <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for putting this together. I feel like this is a great story that a lot of folks will enjoy. I left some suggestions for cleaning up grammar and formatting.
I also noted that I think it would be helpful to briefly explain what the rule does and the type of errors it picks up so folks don't have to click a link to get that context.
And I also left a note on the conclusion, which I think can be expanded a bit to review more of the specifics of this story.
src/content/drafts/code-review-nit-to-ecosystem-improvements.md
Outdated
Show resolved
Hide resolved
--- | ||
layout: post | ||
title: "Code review nit to ecosystem improvements" | ||
teaser: "Reflecting on the power of lint rules" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
A little more oomph:
teaser: "Reflecting on the power of lint rules" | |
teaser: "How implementing my first ESLint rule led to changes in how people write JavaScript" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not my first ESLint rule, but my first core ESLint rule. What do you think about:
How implementing my first core ESLint rule led to changes in how people write JavaScript
Or
How implementing an ESLint rule led to changes in how people write JavaScript
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I like the second one. 👍
src/content/drafts/code-review-nit-to-ecosystem-improvements.md
Outdated
Show resolved
Hide resolved
|
||
The two events are connected, because that moment in code review four years ago led me to write [a lint rule](https://eslint.org/blog/2022/07/interesting-bugs-caught-by-no-constant-binary-expression/) which was part of the inspiration for the TypeScript features. | ||
|
||
Given the protracted timeline and the many intermediate steps I thought it would be interesting to reflect on what led to this observation in code review snowballing into what I feel is a significant impact to a large number of developers, and why I think the snowball could continue to grow. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is a run-on sentence. I've taken a stab at breaking it up while trying to keep the original meaning.
Given the protracted timeline and the many intermediate steps I thought it would be interesting to reflect on what led to this observation in code review snowballing into what I feel is a significant impact to a large number of developers, and why I think the snowball could continue to grow. | |
Given the protracted timeline and the many intermediate steps, I thought it would be interesting to reflect on how we got here. How did this observation in one code review snowball into a significant positive impact to developers? And why does this snowball continue to grow? |
src/content/drafts/code-review-nit-to-ecosystem-improvements.md
Outdated
Show resolved
Hide resolved
src/content/drafts/code-review-nit-to-ecosystem-improvements.md
Outdated
Show resolved
Hide resolved
Four years ago, while doing a code review at work, I was surprised that [Flow](https://flow.org/) had not warned about a null check that had become unnecessary. This month [TypeScript 5.6](https://devblogs.microsoft.com/typescript/announcing-typescript-5-6/#disallowed-nullish-and-truthy-checks1) released with validation rules that disallows nullish and truthy checks which uncovered nearly 100 existing bugs in the top 800 TypeScript repos on GitHub. | ||
|
||
The two events are connected, because that moment in code review four years ago led me to write [a lint rule](https://eslint.org/blog/2022/07/interesting-bugs-caught-by-no-constant-binary-expression/) which was part of the inspiration for the TypeScript features. | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Before going into the timeline, I think it would be helpful to introduce the rule and show an example of an error it detects. So maybe a "What does the no-constant-binary-expression rule do?" section.
src/content/drafts/code-review-nit-to-ecosystem-improvements.md
Outdated
Show resolved
Hide resolved
src/content/drafts/code-review-nit-to-ecosystem-improvements.md
Outdated
Show resolved
Hide resolved
|
||
## Conclusion | ||
|
||
Solving problems fundamentally requires the combined insights of many people, the persistence of stubborn individuals, active communication, a community that learns from each other, and often a lot of patience. But if you can make it happen, fundamental solutions scale really well. They apply broadly, can be adapted into other tools and domains, and improve the state of the world not just for developers but to the users those developers serve. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'd like to see this conclusion expanded to talk a bit about the specifics of this story: how a group of developers discovered something that would be generally useful inside a company (for-profit), then used an open source (not-for-profit) project to spread that knowledge independently, ultimately reaching another company (for-profit), that then spread into another open source project (not-for-profit?), to reach an even larger audience.
Co-authored-by: Nicholas C. Zakas <[email protected]>
Co-authored-by: Nicholas C. Zakas <[email protected]>
Co-authored-by: Nicholas C. Zakas <[email protected]>
Co-authored-by: Nicholas C. Zakas <[email protected]>
Co-authored-by: Nicholas C. Zakas <[email protected]>
Co-authored-by: Nicholas C. Zakas <[email protected]>
Co-authored-by: Nicholas C. Zakas <[email protected]>
Co-authored-by: Nicholas C. Zakas <[email protected]>
Co-authored-by: Nicholas C. Zakas <[email protected]>
Co-authored-by: Nicholas C. Zakas <[email protected]>
Co-authored-by: Nicholas C. Zakas <[email protected]>
Co-authored-by: Nicholas C. Zakas <[email protected]>
Co-authored-by: Nicholas C. Zakas <[email protected]>
Co-authored-by: Nicholas C. Zakas <[email protected]>
Co-authored-by: Nicholas C. Zakas <[email protected]>
Co-authored-by: Nicholas C. Zakas <[email protected]>
Co-authored-by: Nicholas C. Zakas <[email protected]>
Co-authored-by: Nicholas C. Zakas <[email protected]>
Co-authored-by: Nicholas C. Zakas <[email protected]>
Co-authored-by: Nicholas C. Zakas <[email protected]>
@captbaritone just checking in on this. It looks like there's some feedback that hasn't been addressed. Do you have a timetable for revisiting? |
@nzakas Thanks for the ping, I had a bit of writers block on the new conclusion, but I've reworked it and am now quite happy with it. Curious to hear any further feedback you have on this most recent draft. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is looking really good. I just left a few suggestions for grammar improvements.
I really like the new conclusion, as well.
I'll probably schedule this for some time next week.
src/content/drafts/code-review-nit-to-ecosystem-improvements.md
Outdated
Show resolved
Hide resolved
src/content/drafts/code-review-nit-to-ecosystem-improvements.md
Outdated
Show resolved
Hide resolved
src/content/drafts/code-review-nit-to-ecosystem-improvements.md
Outdated
Show resolved
Hide resolved
Co-authored-by: Nicholas C. Zakas <[email protected]>
Co-authored-by: Nicholas C. Zakas <[email protected]>
Co-authored-by: Nicholas C. Zakas <[email protected]>
Sounds good, and thanks for all your feedback, it has greatly improved the post. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM. I'll work on getting this scheduled.
Prerequisites checklist
What is the purpose of this pull request?
Add a blog post reflecting on how ESLint helped a small nit I noticed in code review grow into a fundamental ecosystem improvement shipping in the newest version of TypeScript.
What changes did you make? (Give an overview)
Added a blog post
Related Issues
I previously submitted a blog post about this rule: https://github.com/eslint/eslint.org/pull/240/files
Is there anything you'd like reviewers to focus on?