{"action":"created","issue":{"url":"https://api.github.com/repos/inexor-game/code/issues/70","labels_url":"https://api.github.com/repos/inexor-game/code/issues/70/labels{/name}","comments_url":"https://api.github.com/repos/inexor-game/code/issues/70/comments","events_url":"https://api.github.com/repos/inexor-game/code/issues/70/events","html_url":"https://github.com/inexor-game/code/issues/70","id":53790032,"number":70,"title":"Code Structure Suggestion: Namespaces and Modules","user":{"login":"koraa","id":1451261,"avatar_url":"https://avatars.githubusercontent.com/u/1451261?v=3","gravatar_id":"","url":"https://api.github.com/users/koraa","html_url":"https://github.com/koraa","followers_url":"https://api.github.com/users/koraa/followers","following_url":"https://api.github.com/users/koraa/following{/other_user}","gists_url":"https://api.github.com/users/koraa/gists{/gist_id}","starred_url":"https://api.github.com/users/koraa/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/koraa/subscriptions","organizations_url":"https://api.github.com/users/koraa/orgs","repos_url":"https://api.github.com/users/koraa/repos","events_url":"https://api.github.com/users/koraa/events{/privacy}","received_events_url":"https://api.github.com/users/koraa/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":2,"created_at":"2015-01-08T19:27:25Z","updated_at":"2015-01-09T22:48:39Z","closed_at":null,"body":"I suggest that we divide any new functionality into modules.\r\n\r\nSuch a module should have it's own namespace and it's own subdirectory, so for instance the module Gui would be in the namespace `inexor::gui` and would reside in `src/gui`.\r\nThese modules should provide a header with the name of the module (`src/gui/gui.h`) that servers as a convenience header to pull the entire functionality of that module.\r\nEach of these modules should also provide a description of what the module does inside a readme file (`src/gui/readme.md`).\r\n\r\nWhat do you think of these suggestions?\r\n"},"comment":{"url":"https://api.github.com/repos/inexor-game/code/issues/comments/69413541","html_url":"https://github.com/inexor-game/code/issues/70#issuecomment-69413541","issue_url":"https://api.github.com/repos/inexor-game/code/issues/70","id":69413541,"user":{"login":"koraa","id":1451261,"avatar_url":"https://avatars.githubusercontent.com/u/1451261?v=3","gravatar_id":"","url":"https://api.github.com/users/koraa","html_url":"https://github.com/koraa","followers_url":"https://api.github.com/users/koraa/followers","following_url":"https://api.github.com/users/koraa/following{/other_user}","gists_url":"https://api.github.com/users/koraa/gists{/gist_id}","starred_url":"https://api.github.com/users/koraa/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/koraa/subscriptions","organizations_url":"https://api.github.com/users/koraa/orgs","repos_url":"https://api.github.com/users/koraa/repos","events_url":"https://api.github.com/users/koraa/events{/privacy}","received_events_url":"https://api.github.com/users/koraa/received_events","type":"User","site_admin":false},"created_at":"2015-01-09T22:48:39Z","updated_at":"2015-01-09T22:48:39Z","body":"Yup, outsourcing to sauer:: would be cool!\r\n\r\nFor very small modules I would suggest, that we either keep them in util/ or in the root source folder src/.\r\nI would like to avoid storing modules inside engine/, fpsgame/ or shared/, because I consider those to contain all the legacy code."}}