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

Bring all the folder structures of the repositories to a common standard #64

Closed
maltejur opened this issue Apr 29, 2021 · 6 comments
Closed
Labels
Discussion Discussion on some feature or bug enhancement New feature or request help wanted Extra attention is needed stale

Comments

@maltejur
Copy link
Collaborator

It is probably a good idea to bring all the folders in the different repositories to a common standard.

From @ayaankhan98 #60 (comment)

Yes, i think there must be a common standard for all the repositories.
Basically i think there is no need to maintain project type structure in such repositories, because each algorithm is independent of other and also each data structure is independent of other. It would be nice if we sum up one single algorithm in a single file (Implementation + Documentation + Tests). And arrange these files according to their categories. Most of the traffic of these repositories are among those peoples who are completely new to opensource or i would say who are new to computer programming (College undergraduates), our aim is to simplify the learning process by bringing all the generall data structures and algorithims under a single roof of The Algorithms. So, instead of creating a complex project strucutres i think it is better to keep things simple. we are not building any library or framework for algorithms, rather we are just simplifying the learning process.

There are already a lot of repositories with the same or almost the same folder structure (python, C++, C, ...), so we are probably going with a folder structure like in the python repo.

That means, every algorithm is in a single file (including inline documentation and tests) and every repo has the same top level folders (for example divide_and_conquer).

@maltejur maltejur added enhancement New feature or request help wanted Extra attention is needed Discussion Discussion on some feature or bug labels Apr 29, 2021
@maltejur maltejur mentioned this issue Apr 29, 2021
13 tasks
@siriak
Copy link
Member

siriak commented Apr 29, 2021

I strongly disagree with @ayaankhan98 on this matter because every language has its own style and ways. This is the reason why we need algorithms in many languages instead of just implementing them once in a pseudo-language. Algorithm implementations in different languages are the same algorithm, just expressed differently. This allows folks to learn the way things are done in a language. For example, one class per file rule is a de-facto standard in the .Net world and there is no good reason to violate this and put tests and code together. If we do so, people will get bad coding habits and will have to re-learn and break their bad coding habits when the time to do real work comes. As we are a big community and many people using our repositories are students, I think it's irresponsible from our side to set them a bad example with code that violates language and industry standards and best practices.

@ayaankhan98
Copy link
Member

some previous discussions on the same issue TheAlgorithms/Java#474

@ayaankhan98
Copy link
Member

In project type structure files are dependent on each other, learners will not be capable of executing a single file in isolation.

@siriak
Copy link
Member

siriak commented Apr 30, 2021

In project type structure files are dependent on each other, learners will not be capable of executing a single file in isolation.

Yes, you cannot execute a file in C# and other compiled languages. And what does it mean to execute an algorithm in the first place? You can apply an algorithm to solve an instance of a problem, but you cannot execute an algorithm per se.

@stale
Copy link

stale bot commented Jun 2, 2021

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

@stale stale bot added the stale label Jun 2, 2021
@stale
Copy link

stale bot commented Jun 11, 2021

Please ping one of the maintainers once you add more information and updates here. If this is not the case and you need some help, feel free to ask for help in our Gitter channel. Thank you for your contributions!

@stale stale bot closed this as completed Jun 11, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Discussion Discussion on some feature or bug enhancement New feature or request help wanted Extra attention is needed stale
Projects
None yet
Development

No branches or pull requests

3 participants