18 Comments
User's avatar
Gopi's avatar

I have gone through Code of StackOverFlow. I just wanted to add a suggestion for your StackOverflow class.

Instead of writing all methods below inside StackOverflow class, Create a Multiple Class such as UserService, QuestionService, VotingService , etc.

By moving these methods to respective class , it will be more modular, extensible.

UserService

createUser(username, email): Creates and registers a new user in the system.

getQuestionsByUser(user): Searches questions added by a user.

QuestionService

askQuestion(user, title, content, tags): Allows a user to ask a new question.

answerQuestion(user, question, content): Allows a user to answer an existing question.

addComment(user, commentable, content): Allows a user to add a comment on an existing question/answer.

acceptAnswer(answer): Mark an answer as accepted

Voting Service

voteQuestion(user, question, value): Registers a vote on a question.

voteAnswer(user, answer, value): Registers a vote on an answer.

SearchService

searchQuestions(query): Searches for questions based on a query string.

@Ashish , Let me know if i am thinking in right directions ??

Expand full comment
Ashish Pratap Singh's avatar

Makes a lot of sense. Thanks for sharing your insights.

Expand full comment
Marudhupandiyan's avatar

Thanks for sharing the valuable content bro 🙌🏻🙌🏻

Expand full comment
Ashish Pratap Singh's avatar

you are welcome!

Expand full comment
Narasimha Murthy's avatar

It was really awesome to go through.

Expand full comment
Ashish Pratap Singh's avatar

Glad to hear this, thank you!

Expand full comment
Sumanth Kovuru's avatar

This is great ! thanks for your efforts in deliverying this kind of quality content ashish!

Expand full comment
Deekshith Reddy's avatar

Thanks for explaining in a detailed way.

It's very easy to understand.

Expand full comment
Ashish Pratap Singh's avatar

Great to hear this, thank you!

Expand full comment
Raul Junco's avatar

A good object-oriented design exercise can tell a lot about candidates.

This is a great example, Ashish!

Expand full comment
Mohammed Nooh's avatar

Really Great👍

Expand full comment
Ashish Pratap Singh's avatar

thank you!

Expand full comment
Mohanasundaram's avatar

Way of explanation is awesome. Keep continue👍

Expand full comment
Ashish Pratap Singh's avatar

thank you so much!

Expand full comment
kalyan srujan's avatar

Excellent share...

Expand full comment
Ashish Pratap Singh's avatar

thank you!

Expand full comment
Satyam Jaiswal's avatar

for now in above code we are not using Votable interface, so instead of writing voteQuestion and voteAnswer method we can use single method- addVote(user, Votable, value).

Expand full comment
Ashish Pratap Singh's avatar

agree.. we can utilize the Votable interface here

Expand full comment