Live data from Hacker News

A Simplified Jira Clone Built with React/Babel and Node/TypeScript

github.com

91–100 of 101 posts

Re: A Simplified Jira Clone Built with React/Babel and Node/TypeScript

#91

Creator of "Jira Clone" here. First of all I want to make it clear that this is just a showcase/demo product. It's definitely not something I'm planning to sell. Additionally, it's not even remotely production ready, and it's missing about a zillion features that would make it a full-fledged project management software. The main reason I built this was to have a good showcase for potential future clients. The second…

hey @oldboyFX, thank you very much for doing this. I really appreciate the effort and the fact that I can validate/calibrate my own skills looking at someone else's non-trivial codebase.

Re: A Simplified Jira Clone Built with React/Babel and Node/TypeScript

#92
post #69

One of my pet theories is that if you are building a software engineering product, you should never write your own tools. You can't sell them, and you'll just be learning lessons completely unrelated to your product. However; if you are building a software engineering culture, you should write as many of your own tools as you can get away with. Nothing builds culture like a shared unique experience.

Or, you know, you accidentally create Slack ;)

Re: A Simplified Jira Clone Built with React/Babel and Node/TypeScript

#93
post #66

Just randomly reading into React over this example, I'm surprised by how React itself confused me with the useState function.

useState is a memoization technique and an abstraction to hide global state. You can do: let _count = 0; function Component() { return ( {_count} { _count++; render(); }}>Increase ); } function render() { React.render( , root) } Or you can abstract it: let _count; function useCount(initialValue) { return [_count, (value) => { _count = value; render(); }] } function Component() { const [count, setCount] = useCount(0);…

Does that render() call in the useState function would still render the changed elements only?

Re: A Simplified Jira Clone Built with React/Babel and Node/TypeScript

#94

Earlier quoted context omitted.

What do you prefer to Jira? At a former workplace we used Gitlab, which was a pleasant suite to use. These days we use Atlassian and often find myself incredibly frustrated by their products

We've been using https://subtask.co -- it has 3 pretty awesome features which I'm baffled why Trello doesn't have: - You can break down tasks into subtasks and those subtasks into subtasks themselves, etc - You can dynamically group task columns by who's working on them, what is their status, what is their goal, etc - You can arrange what's to be done on an effort-value grid, which helps immensely when choosing what…

Looks good but I can't find anything on their pricing..?

Re: A Simplified Jira Clone Built with React/Babel and Node/TypeScript

#95

Earlier quoted context omitted.

Thanks for sharing! You've got some nice patterns and utils in that repo. Random question: I noticed you switched from shorthand ` , ` to `React.Fragment` elements. Did you have a need to use keys somewhere and decided to update them all to be consistent? Just curious.

I switched because ` ` breaks syntax highlighting on Github for `.jsx` files. And since most people will be inspecting the code on Github, I thought it was worth switching.

Makes sense, thanks for answering! :)

Re: A Simplified Jira Clone Built with React/Babel and Node/TypeScript

#96
post #66

Earlier quoted context omitted.

useState is a memoization technique and an abstraction to hide global state. You can do: let _count = 0; function Component() { return ( {_count} { _count++; render(); }}>Increase ); } function render() { React.render( , root) } Or you can abstract it: let _count; function useCount(initialValue) { return [_count, (value) => { _count = value; render(); }] } function Component() { const [count, setCount] = useCount(0);…

Does that render() call in the useState function would still render the changed elements only?

No, render is global in this example. If you need to only render the component wrapping the useState, you have to track the caller (See https://github.com/facebook/react/blob/master/packages/react...)

Re: A Simplified Jira Clone Built with React/Babel and Node/TypeScript

#97
post #96

Earlier quoted context omitted.

Does that render() call in the useState function would still render the changed elements only?

No, render is global in this example. If you need to only render the component wrapping the useState, you have to track the caller (See https://github.com/facebook/react/blob/master/packages/react... )

That is interesting, earlier I enabled flash painting in your codepen and it only re-rendered/flashed the specific component that has a value changed. Maybe that was a browser feature (safari) I will look into tracking to understand what you mean.. (or maybe it's a coincidence it works as expected)

Re: A Simplified Jira Clone Built with React/Babel and Node/TypeScript

#98
post #94

Earlier quoted context omitted.

We've been using https://subtask.co -- it has 3 pretty awesome features which I'm baffled why Trello doesn't have: - You can break down tasks into subtasks and those subtasks into subtasks themselves, etc - You can dynamically group task columns by who's working on them, what is their status, what is their goal, etc - You can arrange what's to be done on an effort-value grid, which helps immensely when choosing what…

Looks good but I can't find anything on their pricing..?

Hi - (creator of subtask.co here) - Noticed a few signups coming from hn and thought I'd pop in. We're still in an early beta phase now and so pricing is still TBD - we're happy to have any input on what would work for folks though.

Re: A Simplified Jira Clone Built with React/Babel and Node/TypeScript

#99

I’ve found that keeping separate ‘package.json’ files in a client/ and server/ directory (and thus, having separate node_modules/ directories) leads to some annoying issues down the road. I’ve heard that lerna[0] is maybe one tool that can help avoid this type of setup: does anyone have experience with this or recommend any other ways to organize separate dependency configurations within one mono-repo? [0]: https://g…

IME, using a single package.json is a harmful and naive practice, in abstract it results in a single product version and leads to poor separation between the client(s) and server(s) codebases.

It falls apart especially quickly when adding an iOS, TV (JS) or other client (or server) codebase.

To resolve the multiple node_module directories you can use tooling like Workspaces[0] (with both npm and yarn) which hoists the node_modules to a "workspace level".

I'd be interested in hearing other annoying issues you have with multiple package.json files.

[0] https://yarnpkg.com/en/docs/workspaces/

Re: A Simplified Jira Clone Built with React/Babel and Node/TypeScript

#100
post #96

Earlier quoted context omitted.

Does that render() call in the useState function would still render the changed elements only?

No, render is global in this example. If you need to only render the component wrapping the useState, you have to track the caller (See https://github.com/facebook/react/blob/master/packages/react... )

(shameless plug!)

... or you can use something like Statium's ViewModel, which is basically a hierarchically linked, locally scoped state container component: https://github.com/riptano/statium

RealWorld example: https://github.com/nohuhu/react-statium-realworld-example-ap...

Sorry... Just... Couldn't... :)

Post reply on HN