2.0.0 Redesign branch discussion
See original GitHub issue2.0.0 - Redesign
In this branch Recaf is being rewritten from the ground up. The main goals can be found on the 2.0.0 project board.
I’d like to hear any thoughts on what should go into this redesign. What functionality should be factored in to the core design? What use cases would you like to see covered?
Feel free to respond here or create new issues on this topic, I’d like to hear your opinions.
Temporary release binary 01/31/2020: recaf-2.0.0.jar.zip (remove .zip
to run)
Issue Analytics
- State:
- Created 4 years ago
- Comments:7 (6 by maintainers)
Top Results From Across the Web
can you still get achivments in beta branch 2.02?
I've got a couple of music packs installed, but I got all my other achievements with them installed as well under 2.0.0.
Read more >Business Process Model and Notation (BPMN), Version 2.0
Thus, BPMN creates a standardized bridge for the gap between the business process design and process implementation. Another goal, but no less important, ......
Read more >Openfire 4.0 (Draft for discussion) - Community Planning
Most of our bugfixes have also ended up on the 3.10 branch, where @Daryl ... Versioning 2.0.0, so once released we shouldn't change...
Read more >GitLab: is there a way to assign a status/comment to a branch?
branch maintainer; short branch description (e.g. "started from rev 2.0.0, feature branch to implement i2c2 driver on custom hostboard X") ...
Read more >Release notes | U.S. Web Design System (USWDS) - Digital.gov
This release is the second Sass Module release on the 3.0 Beta Branch. - Updating package structure - ⚠️ Starting with this Beta...
Read more >Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start FreeTop Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
Top GitHub Comments
Use proper exception handling
https://github.com/Col-E/Recaf/blob/257783d54713d9cd352c19ad93a11cb79a5670ba/src/main/java/me/coley/recaf/util/Reflect.java#L26-L29
https://github.com/Col-E/Recaf/blob/257783d54713d9cd352c19ad93a11cb79a5670ba/src/main/java/me/coley/recaf/util/Parse.java#L18-L23
https://github.com/Col-E/Recaf/blob/257783d54713d9cd352c19ad93a11cb79a5670ba/src/main/java/me/coley/recaf/ui/FxAssembler.java#L378-L381
throws
, don’t just log it on the spot and do nothing.return null
isn’t the answer to everything either.Exception
s andThrowable
s everywhere.Exception
orThrowable
without anything indicates it happened or later it’ll be extremely confusing to debug anything in it for anyone except you (and even that’s true only if you hadn’t forget that there’s a catch-all-and-ignore here…)Fix confusing and inconsistent utility classes
(
Utility class
as in “a stateless class or enum that’s used to group several utility methods together and cannot be instantiated”, not every class under theutil
package)me.coley.recaf.util
package, but some of them are not. For exampleme.coley.recaf.bytecode.TypeUtil
. And I guessAccessFlag
counts as a utility class too?ScreenUtil
andLang
. This causes difficulty deciding which class is designed to used as an instance (e.g.Pair
andRollingList
), and which class is designed to act as a group for static methods (e.g.Classpath
andClipboard
).Use method references when applicable
https://github.com/Col-E/Recaf/blob/257783d54713d9cd352c19ad93a11cb79a5670ba/src/main/java/me/coley/recaf/ui/FxWindow.java#L52-L56
Pros:
javac
will generate a synthetic bridge method for every lambda expression regardless of whether it can be folded to a method reference (therefor skipping the redundant bridge method). Manually fold it can result in:Cons:
Oh, and
s -> s
can be replaced withFunction.identity()
.Remove empty javadoc tags
https://github.com/Col-E/Recaf/blob/257783d54713d9cd352c19ad93a11cb79a5670ba/src/main/java/me/coley/recaf/Input.java#L534-L536
As the title says.
I used to be auto-format trigger-happy but have been training myself not to use it so often. I really hate how it handles streams and some certain line-wrapping cases.
Typically I only highlight specific blocks and auto-format that small portion.
I didn’t include it (and a few other settings) so far because I found working on a project with it to be very annoying. Small style differences like this aren’t that big of a deal to me so I thought it would just be an annoyance to anyone looking to contribute.
Now things like brace placement, tabs vs spaces, line length, etc. that’s different. The potential differences in style for those are significant enough to warrant checkstyle enforcement in my opinion.