2

I often find myself wanting to ask questions about design patterns or simply what kind of approaches I can take towards to solving a particular problem, and I feel this site is appropriate for it.

But often, I want to know how this is best achieved in a specific language, and to get a feel for how a problem might be solved in a specific language - not to mention getting suggestions for frameworks, libraries and services that could help.

So, I'm kind of uncertain where such questions belong - on the one hand, I'm asking about general design problems that could be applicable agnostically, but on the other hand, I want to benefit from discussing the problem on terms that are relevant to the technology stack I'm using.

An example of this would be asking, "How could I implement a simple blog in PHP?" or "How could I structure a Tic-Tac-Toe game in a Pythonic way?" - both questions are definitely design issues that could be applied to a number of languages, but I also want specific information about how the problem might be solved in the particular language I'm asking about.

So is there an appropriate place for these kinds of questions?

3

I will use both of your examples to talk briefly about the issues I see with them being posted here.

How could I implement a simple blog in PHP?

This would not be a good question for the site, not necessarily because it is about design, but because it is too broad. There are many aspects of design that would go into designing a blog. Web design, database design, application logic, cross cutting concerns, etc... Even if this were language agnostic this doesn't change. A better question for example would be:

"I am trying to design a database schema that can properly capture domain model elements of a blog, here is what I tried. Any improvements or suggestions to do this better?"

Questions should always demonstrate the problem where possible, be clearly worded and focused to something that is clearly and completely answerable. It should also demonstrate what you are thinking might be a solution or what you have tried.

How could I structure a Tic-Tac-Toe game in a Pythonic way?

Ways to structure a Tic-Tac-Toe game might be considered a matter of opinion. This would probably be closed as Primarily opinion-based. Wherever possible a question should be answerable. Questions that have 100 equally acceptable answers do not help anybody derive what the best solution is. Going by the most highly upvoted answer doesn't tell you as this might be the first answer posted, or the person answering might be popular or the solution described is a popular one but might not be the best solution. Even if this was language agnostic it probably doesn't change. A better question might be:

Here is how I was thinking of structuring my Tic-Tac-Toe game in a Pythonic way. Does this particular design choice make sense for Python and what specifically could I improve or do better?

or...

Here is how I was thinking of representing the data structure for my Tic-Tac-Toe game. Is this a good data structure that lends itself to an efficient algorithm for Tic-Tac-Toe? If not how can I improve this?

I want to benefit from discussing the problem on terms that are relevant to the technology stack I'm using.

There is absolutely nothing wrong with wanting to ask questions about the "Pythonic way" or the "Java way", pending that the question follows these guidelines:

  • Properly scoped (not too broad to be effectively answered). If an entire book can be written about or has been written about a topic then it is probably not a good question for this site.
  • Good questions have answers, not opinions. Opinions lead to discussions and debates and this format doesn't lend itself well to this.
  • Have a clearly defined problem that you are trying to work through
  • Demonstrate prior effort or thought into solving it on your own. This can be achieved simply by stating some ideas that are currently in your head.

If you follow these guidelines and the question is on topic for the site then you shouldn't have any problems.

Please read the articles in the Help Center for more details.

  • Thank you for such a thoughtful reply. On reflection my examples were far too simple and broad as you have indicated, and an actual question in practice would be more focused as you suggest. Cheers! – njp Nov 17 '14 at 13:13

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .