Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 8 years ago.
Improve this question
After much reading and some attempts to implement DDD, I think I understand what people mean when they say the concept was developed for complex domains.
I usually develop web applications for small and medium businesses, usually the interactions are just CRUD application and tables in HTML, which goes beyond this are some validations before inserting the data into a database.
I was reading about CQRS on Martin Fowler's website and a phrase caught my attention: "CQRS is suited to complex domains, the kind that Also benefit from Domain-Driven Design.".
So my question would be how to analyze the complexity of the software?
When applying DDD worth?
Worth applying DDD in software for small and medium complexity?
Thank you!
Often even the simplest applications on the surface can turn into something complex. Right now I'm always trying to apply some basics of DDD (at least tactical patterns) and if I see that project is going out of hand, then I start to map contexts etc.
Complexity of software can be analyzed by analyzing your understanding of bussiness domain.
Related
Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 2 years ago.
Improve this question
I am new to programming and I try to research as much as possible in this field. And once I came across to this expression: "Extreme and pair programming". Pair programming is an easy term, and I found quite clear documentation about this. But extreme programming... I found some articles about it, but explanation wasn't so well. All I understood that extreme programming is an Agile development framework. But why I must use that, what is difference between this and another types of programming styles?
Can anyone explain me what is extreme programming language very clearly?
Extreme programming (often called XP) is an agile framework that was developed by Kent Beck in the 1990's.
There aren't too many people that use the whole XP framework these days, but a lot of the engineering practices it popularised are very common.
Examples include:
Pair programming
Test driven development
Continuous integration
Frequent releases
Constant refactoring
XP favours an approach of writing the minimum amount of code to solve the problem at hand. Things like optimisation and forward planning are generally a low priority. This is the 'extreme' part of extreme programming.
The idea is that you write code to solve the current requirement. If you then find you need the code to be faster, or scaleable, etc. then you refactor it.
Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 3 months ago.
Improve this question
Describe the system architecture in the last 3 projects you worked on. In this case I don't know what system architecture they mean?
Which components listed above have you been working on?
What frameworks are used during the development of these components?"
From a interviewer perspective, they are trying to assess candidates knowledge of overall system they worked up on.
Describing system architecture will help interviewer to know whether candidate knows the big picture of the systems they were part of. The answer could be by explaining the logical architecture(functional view) of application or a component architecture(tech view) depending on context. For a person who is oriented more on infrastructure side, this could be still a bit different, but rarely the case.
Question "on which component have you worked" primarily is intended to understand what exactly was candidates role in project. Explanation on how the component was designed, what technologies are used etc could be answered.
"Frameworks used" would probably tell the interviewer whether candidate was into decision making roles for design or at least can evaluate what is best fit for the need and what is not. Mentioning the frameworks(or libraries or plugins based on tech landscape) used and how that well suit the needs would be a good answer.
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 7 years ago.
Improve this question
I have come across tools like visualparadigm demo which could automatically generate code from the class diagram which is modelled in UML. Since I have no industry experience, I am curious to know whether this is the way companies start working on their projects after the system is modelled in UML. since the skeleton of the classes needed is automatically generated, I assume it is a good way to save time. If this is not the way, then why is it so?
Also Can you provide me some other tools which can automatically generate code from UML class diagrams (prefer opensource).
Are there OOP software projects which do not get started with the class diagrams, so that this method can be of no use?
Most of UML are able to generate code from UML class diagram you just have to google it and you will find them.
Concerning the way companies start working, I guess it depends of the companies but from my experience companies try to avoid useless work.
If they spend some time on modeling it is because they can use it for something for example code generation, documentation, or just because its a client request. If companies do not find any interest in modelling they simply do not use it I guess that alot of OOP do not start with models.
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 3 years ago.
Improve this question
I'm learning about UML diagram and sequence diagram at the moment in one of my courses for my CS degree, and I wonder that if this is something that is common to use for developers or if this is just one of many approaches to analyse the design of the system.
I'm so used to the Waterfall model and wondering if there would be any benefits for switching my mindset.
Maybe the answer is obvious, but still think it would be interesting to hear from people that are more experienced in the area.
My first advice is not to mix concepts:
UML = modeling language.
Useful to describe/visualize the design of a system.
Waterfall model = design process.
Useful to describe in a linear-sequential manner the life cycle of a system.
This is a very short and non-deep description but ilustrates your question about the specific case of sequence diagrams, so in a real case scenario you probably will end using both like this:
-Requirement/Analysis: during this phase you will start creating some of the first UML Use case diagrams for your system.
-System Design: during this phase (or even earlier) you will start creating UML Sequence diagrams, UML Component diagrams and so on.
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 6 years ago.
Improve this question
I am taking a software development class right now and we are discussing agile methodologies. What are the most common agile methods? I need to look into several and discuss their strengths and weaknesses. Seems more useful to look into the most prominent methods.
Observations:
Scrum seems pretty popular (that is what my team used on two of my coops).
Extreme also seems to get quite a bit of buzz but I am not sure if that many people actually use it.
What does your company use and how do you like it? Does anyone use:
Agile Modeling
Agile unified process
DSDM
Essential Unified Process
Feature Driven Development
Open unified processes
Rational Unified Process
Are there other methodologies that I should investigate?
I've used SCRUM in personal projects with friends and schoolmates and my current employer uses a custom agile process that's very similar to SCRUM but with fewer meetings.
We have used Test Driven Development and Scrum.
I've been on some very successful teams which used Scrum very effectively. It really does help to keep everybody focused and constantly moving forward, and it discourages regressions.