This repository was archived by the owner on Dec 1, 2020. It is now read-only.
- Notifications
You must be signed in to change notification settings - Fork1
Discovery of Long Parameter List
License
NotificationsYou must be signed in to change notification settings
anapaulagomes/looong
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Keeping eyes on long parameters list 🔍
Long parameter list is a code smell - a clue that there is a problem on your software design. To help you on this this module has been written to identify methods with long parameter list and to suggest parameters groups that could became potential object because they appear together.
$ make install
We recommend the use of virtual environment.
$ python looong/main.py -d<directory>
Analyzed files: 553Analyzed methods: 2224render [django/shortcuts.py] ['request','template_name','context','content_type','status','using'] 6create [django/contrib/admin/filters.py] ['field','request','params','model','model_admin','field_path'] 6kml [django/contrib/gis/sitemaps/views.py] ['request','label','model','field_name','compress','using'] 6run [django/core/servers/basehttp.py] ['addr','port','wsgi_handler','ipv6','threading','server_cls'] 6data [django/contrib/gis/gdal/raster/band.py] ['data','offset','size','shape','as_memoryview'] 5kmz [django/contrib/gis/sitemaps/views.py] ['request','label','model','field_name','using'] 5dumps [django/core/signing.py] ['obj','key','salt','serializer','compress'] 5loads [django/core/signing.py] ['s','key','salt','serializer','max_age'] 5migrate [django/db/migrations/executor.py] ['targets','plan','state','fake','fake_initial'] 5connect [django/db/models/signals.py] ['receiver','sender','weak','dispatch_uid','apps'] 5
Methods with long parameter list pointing to a problem with OO principles. One of the approach to solve is creating objects with the parameters that appear more together. Our goal is cluster this parameters and suggest as objects.
LoooooooooooooooooooooooooooooooooooGAnalyzed files: 553Analyzed methods: 2224render [django/shortcuts.py] ['request', 'template_name', 'context', 'content_type', 'status', 'using'] 6create [django/contrib/admin/filters.py] ['field', 'request', 'params', 'model', 'model_admin', 'field_path'] 6kml [django/contrib/gis/sitemaps/views.py] ['request', 'label', 'model', 'field_name', 'compress', 'using'] 6run [django/core/servers/basehttp.py] ['addr', 'port', 'wsgi_handler', 'ipv6', 'threading', 'server_cls'] 6Correlated parameters and possible objects:(foo, bar)(foo, bar, barbar)
Please seeour contribution guide.