Skip to content
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

Divide large code files into smaller ones #3614

Open
lock9 opened this issue Oct 14, 2024 · 2 comments
Open

Divide large code files into smaller ones #3614

lock9 opened this issue Oct 14, 2024 · 2 comments
Labels
enhancement Improving existing functionality I4 No visible changes S2 Regular significance U4 Nothing urgent

Comments

@lock9
Copy link

lock9 commented Oct 14, 2024

Is your feature request related to a problem? Please describe.

Some files in the project, like blockchain.go, are too large for most AI models. With over 3,000 lines, it can't be directly 'pasted' into ChatGPT. I had to debug neo-go to get some things working, and locating what I needed was challenging.

Note: I don't intend to change any structure, just to 'split source code files into smaller chunks.'

Describe the solution you'd like

Split blockchain.go into smaller files (and possibly other large files as well).

Describe alternatives you've considered

Additional context

This is primarily a structural improvement to the code. It shouldn't affect the expected behavior. My tool already splits the file into smaller parts before sending it to ChatGPT, but this consumes far more API credits than necessary, and the responses are often inaccurate or incomplete. Having a 'human' divide the code will help the AI avoid mistakes.

  • Enhancement
  • Low priority
@lock9 lock9 added feature Completely new functionality I2 Regular impact labels Oct 14, 2024
@roman-khimov roman-khimov added U4 Nothing urgent enhancement Improving existing functionality S2 Regular significance I4 No visible changes and removed feature Completely new functionality I2 Regular impact labels Oct 14, 2024
@roman-khimov
Copy link
Member

Likely these tools will be upgraded before we do this and it's hard for me to accept the idea of changing something in the code for tools that are supposed to be eating petabytes of data for breakfast. But I admit blockchain.go and RPC's server.go are not easy to navigate through for humans as well, so some refactoring can still be beneficial.

@lock9
Copy link
Author

lock9 commented Oct 14, 2024

These were the files that I 'struggled' the most:

  • dao.go
  • rpcsrv/server.go
  • blockchain.go

Note: Having several files with the same name also made me get lost a few times (now that I know which one to use)
Screenshot 2024-10-14 at 14 08 03

Screenshot 2024-10-14 at 14 08 50

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement Improving existing functionality I4 No visible changes S2 Regular significance U4 Nothing urgent
Projects
None yet
Development

No branches or pull requests

2 participants