Common vs Core - difference
Assume We have couple of libs. What is the difference between core and common library. How should be recognized and organized the responsibilites of both.
+Common
-Class1
+Core
-Class2
+Lib1 has : Common
+Lib2 has : Core, Common
Should Common be trurerly common(all libs use it)? Or is common only for those who need it?
What is good practice when refactoring / creating project?
I'm not really feel the diferrence between Core and Common.
naming
add a comment |
Assume We have couple of libs. What is the difference between core and common library. How should be recognized and organized the responsibilites of both.
+Common
-Class1
+Core
-Class2
+Lib1 has : Common
+Lib2 has : Core, Common
Should Common be trurerly common(all libs use it)? Or is common only for those who need it?
What is good practice when refactoring / creating project?
I'm not really feel the diferrence between Core and Common.
naming
2
Good practice: do things that make sense, don't violate the principle of least surprise without a really good reason. You are not feeling the difference because it is an arbitrary decision.
– Jon
Apr 19 '15 at 20:30
add a comment |
Assume We have couple of libs. What is the difference between core and common library. How should be recognized and organized the responsibilites of both.
+Common
-Class1
+Core
-Class2
+Lib1 has : Common
+Lib2 has : Core, Common
Should Common be trurerly common(all libs use it)? Or is common only for those who need it?
What is good practice when refactoring / creating project?
I'm not really feel the diferrence between Core and Common.
naming
Assume We have couple of libs. What is the difference between core and common library. How should be recognized and organized the responsibilites of both.
+Common
-Class1
+Core
-Class2
+Lib1 has : Common
+Lib2 has : Core, Common
Should Common be trurerly common(all libs use it)? Or is common only for those who need it?
What is good practice when refactoring / creating project?
I'm not really feel the diferrence between Core and Common.
naming
naming
edited Nov 14 '18 at 21:42
jaco0646
5,24952846
5,24952846
asked Apr 19 '15 at 20:25
PuchaczPuchacz
91021228
91021228
2
Good practice: do things that make sense, don't violate the principle of least surprise without a really good reason. You are not feeling the difference because it is an arbitrary decision.
– Jon
Apr 19 '15 at 20:30
add a comment |
2
Good practice: do things that make sense, don't violate the principle of least surprise without a really good reason. You are not feeling the difference because it is an arbitrary decision.
– Jon
Apr 19 '15 at 20:30
2
2
Good practice: do things that make sense, don't violate the principle of least surprise without a really good reason. You are not feeling the difference because it is an arbitrary decision.
– Jon
Apr 19 '15 at 20:30
Good practice: do things that make sense, don't violate the principle of least surprise without a really good reason. You are not feeling the difference because it is an arbitrary decision.
– Jon
Apr 19 '15 at 20:30
add a comment |
1 Answer
1
active
oldest
votes
I think this depends a lot on your particular application. In a single centralized app, I do think there might be a little overlap between the Core
and Common
folders. But the most important thing is that it makes sense for your app. Don't feel that you need to have those folders just because you've seen it in other apps...
For me, having a Core
and a Common
folders makes a lot of sense in some scenarios - e.g. a web app with an API and a client. You may have your Core
folder in the API side, where the core execution (the business logic) takes place, and then have a Common
folder with some things you need in both the API and the client sides - e.g., Http requests validation or a Json converter.
Anyway, it may make sense to have a Core
and a Common
folder in other kinds of apps.
For example, the Core
folder would contain those classes that are central for your app - the vast majority of business model classes would be there.
In the Common
folder, on the other hand, you can have some other classes that are shared, but not central - e.g., a Logger
or a MessageSender
could be there...
As for your little draft of code structure, I think that your Core
package is the one to be revised - why Lib1
doesn't use Core
? If something is core, generally it's because everything else needs it in order to run. If you do not have code that is conceptually central, maybe you can remove your Core
package and keep only Common
?
As for your other question - I do not think the Common
stuff must be shared by all other packages, but just with 2 or more packages sharing something, that can be considered common.
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f29735406%2fcommon-vs-core-difference%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
I think this depends a lot on your particular application. In a single centralized app, I do think there might be a little overlap between the Core
and Common
folders. But the most important thing is that it makes sense for your app. Don't feel that you need to have those folders just because you've seen it in other apps...
For me, having a Core
and a Common
folders makes a lot of sense in some scenarios - e.g. a web app with an API and a client. You may have your Core
folder in the API side, where the core execution (the business logic) takes place, and then have a Common
folder with some things you need in both the API and the client sides - e.g., Http requests validation or a Json converter.
Anyway, it may make sense to have a Core
and a Common
folder in other kinds of apps.
For example, the Core
folder would contain those classes that are central for your app - the vast majority of business model classes would be there.
In the Common
folder, on the other hand, you can have some other classes that are shared, but not central - e.g., a Logger
or a MessageSender
could be there...
As for your little draft of code structure, I think that your Core
package is the one to be revised - why Lib1
doesn't use Core
? If something is core, generally it's because everything else needs it in order to run. If you do not have code that is conceptually central, maybe you can remove your Core
package and keep only Common
?
As for your other question - I do not think the Common
stuff must be shared by all other packages, but just with 2 or more packages sharing something, that can be considered common.
add a comment |
I think this depends a lot on your particular application. In a single centralized app, I do think there might be a little overlap between the Core
and Common
folders. But the most important thing is that it makes sense for your app. Don't feel that you need to have those folders just because you've seen it in other apps...
For me, having a Core
and a Common
folders makes a lot of sense in some scenarios - e.g. a web app with an API and a client. You may have your Core
folder in the API side, where the core execution (the business logic) takes place, and then have a Common
folder with some things you need in both the API and the client sides - e.g., Http requests validation or a Json converter.
Anyway, it may make sense to have a Core
and a Common
folder in other kinds of apps.
For example, the Core
folder would contain those classes that are central for your app - the vast majority of business model classes would be there.
In the Common
folder, on the other hand, you can have some other classes that are shared, but not central - e.g., a Logger
or a MessageSender
could be there...
As for your little draft of code structure, I think that your Core
package is the one to be revised - why Lib1
doesn't use Core
? If something is core, generally it's because everything else needs it in order to run. If you do not have code that is conceptually central, maybe you can remove your Core
package and keep only Common
?
As for your other question - I do not think the Common
stuff must be shared by all other packages, but just with 2 or more packages sharing something, that can be considered common.
add a comment |
I think this depends a lot on your particular application. In a single centralized app, I do think there might be a little overlap between the Core
and Common
folders. But the most important thing is that it makes sense for your app. Don't feel that you need to have those folders just because you've seen it in other apps...
For me, having a Core
and a Common
folders makes a lot of sense in some scenarios - e.g. a web app with an API and a client. You may have your Core
folder in the API side, where the core execution (the business logic) takes place, and then have a Common
folder with some things you need in both the API and the client sides - e.g., Http requests validation or a Json converter.
Anyway, it may make sense to have a Core
and a Common
folder in other kinds of apps.
For example, the Core
folder would contain those classes that are central for your app - the vast majority of business model classes would be there.
In the Common
folder, on the other hand, you can have some other classes that are shared, but not central - e.g., a Logger
or a MessageSender
could be there...
As for your little draft of code structure, I think that your Core
package is the one to be revised - why Lib1
doesn't use Core
? If something is core, generally it's because everything else needs it in order to run. If you do not have code that is conceptually central, maybe you can remove your Core
package and keep only Common
?
As for your other question - I do not think the Common
stuff must be shared by all other packages, but just with 2 or more packages sharing something, that can be considered common.
I think this depends a lot on your particular application. In a single centralized app, I do think there might be a little overlap between the Core
and Common
folders. But the most important thing is that it makes sense for your app. Don't feel that you need to have those folders just because you've seen it in other apps...
For me, having a Core
and a Common
folders makes a lot of sense in some scenarios - e.g. a web app with an API and a client. You may have your Core
folder in the API side, where the core execution (the business logic) takes place, and then have a Common
folder with some things you need in both the API and the client sides - e.g., Http requests validation or a Json converter.
Anyway, it may make sense to have a Core
and a Common
folder in other kinds of apps.
For example, the Core
folder would contain those classes that are central for your app - the vast majority of business model classes would be there.
In the Common
folder, on the other hand, you can have some other classes that are shared, but not central - e.g., a Logger
or a MessageSender
could be there...
As for your little draft of code structure, I think that your Core
package is the one to be revised - why Lib1
doesn't use Core
? If something is core, generally it's because everything else needs it in order to run. If you do not have code that is conceptually central, maybe you can remove your Core
package and keep only Common
?
As for your other question - I do not think the Common
stuff must be shared by all other packages, but just with 2 or more packages sharing something, that can be considered common.
edited Apr 20 '15 at 13:03
answered Apr 20 '15 at 10:04
MikOMikO
13k105990
13k105990
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f29735406%2fcommon-vs-core-difference%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
2
Good practice: do things that make sense, don't violate the principle of least surprise without a really good reason. You are not feeling the difference because it is an arbitrary decision.
– Jon
Apr 19 '15 at 20:30