The high-level design and description of a software system. Architectural design distills away details of implementations, algorithms, and data representation to concentrate on the interaction of "black box" components.

learn more… | top users | synonyms

22
votes
10answers
9k views

Best practice or design patterns for retrieval of data for reporting and dashboards in a domain-rich application

First, I want to say this seems to be a neglected question/area, so if this question needs improvement, help me make this a great question that can benefit others! I'm looking for advice and help from ...
21
votes
6answers
15k views

Which platform to choose, Java or .NET? [duplicate]

I am working in a private bank, a leading mid size bank in local market. We are going to create our core banking solution. Existing solution has been developed on Java using IBM Visual Age 4.0. It is ...
21
votes
8answers
7k views

What is the best way to design a web site to be highly scalable?

For websites that need to be highly scalable, such as social networks like facebook, what's the best way to design the website? Should I have a web service which the site queries to get data that it ...
21
votes
4answers
3k views

Architectural differences between dynamic and static languages

Are there any major architectural differences when designing applications that will be built on static languages (such as C# or Java) and dynamic languages (such as Ruby or Python)? Which are the ...
20
votes
10answers
2k views

Do algorithms depend on computer architectures?

I read somewhere (forgot which book it is) that algorithms are independent of computer architectures. Some even say algorithms are themselves computation (machines?)? On the other hand, books on ...
20
votes
4answers
480 views

What are the ways to avoid duplication of logic between domain classes and SQL queries?

The example below is totally artificial and its only purpose is to get my point across. Suppose I have an SQL table: CREATE TABLE rectangles ( width int, height int ); Domain class: public ...
19
votes
9answers
2k views

In agile development, should I try persistence in flat file before database?

Somebody explained to me that since in agile development, policy and the application logic should be more important than details such as persistence method, persistence decision should be taken at the ...
19
votes
6answers
3k views

Addressing the fact that primary keys are not part of your business domain

In almost all circumstances, primary keys are not a part of your business domain. Sure, you may have some important user-facing objects with unique indices (UserName for users or OrderNumber for ...
19
votes
5answers
1k views

Fighting technical debt as the “lowest developer”?

Let's say you work for a company and what you do is develop software for them. You have no idea of the big picture or maybe slight. What you do have are tasks assigned to you via issue tracking ...
19
votes
3answers
8k views

Are There Any Examples of Uncle Bob's High-Falutin' Architecture? [closed]

I just finished watching this presentation by Uncle Bob (as well as his "Architecture" section of his "Clean Code" videos), but I'm left wondering: Are there any examples out there of applications ...
19
votes
6answers
12k views

What are the pros and cons of HTML5, native and hybrid mobile app approaches?

I want to develop a mobile application. I recently read an article on Telerik Forum, which compares among three types of mobile application and I don't know which one should I select to begin with. ...
19
votes
2answers
6k views

DDD - Does an aggregate root's repository handle saving aggregates?

I am using a DDD-like approach for a greenfield module of an existing application; it's not 100% DDD due to architecture but I'm trying to use some DDD concepts. I have a bounded context (I think ...
19
votes
2answers
8k views

Alternative patterns for web development? (non-MVC) [closed]

Recently I've been reading some blog posts regarding MVC and how it doesn't fit the web. I've learned about alternative patterns like the RMR Architecture. I'm curious what other patterns people are ...
18
votes
8answers
2k views

Dangers of huge monolithic application

The big project I'm working on for a couple years now is a control (and everything) application of an advanced device, heart of its firmware. The device is quite advanced, with more different ...
18
votes
5answers
2k views

Where to describe architectural problems?

I joined the middle of a middle size project, which runs already for several years. One of problems is that the document describing the architecture was never written. Now I was assigned a task to ...
18
votes
2answers
915 views

What does “business logic” actually mean if not “all non-3rd party code”?

I've heard people talk about business logic a lot at work, and online, and I've read several questions on this site about it, but the term still doesn't make a lot of sense to me. For example, here ...
18
votes
3answers
17k views

UML Diagrams of Multi-Threaded Applications

For single-threaded applications I like to use class diagrams to get an overview of the architecture of that application. This type of diagram, however, hasn’t been very helpful when trying to ...
17
votes
7answers
2k views

Rule of thumb for cost vs. savings for code re-use [duplicate]

Is it a good rule of thumb to always write code for the intent of re-using it somewhere down the road? Or, depending on the size of the component you are writing, is it better practice to design it ...
17
votes
5answers
6k views

Alternatives to the repository pattern for encapsulating ORM logic?

I've just had to switch out an ORM and it was a relatively daunting task, because the query logic was leaking everywhere. If i'd ever had to develop a new application, my personal preference would be ...
17
votes
4answers
2k views

How does persistence fit into a purely functional language?

How does the pattern of using command handlers to deal with persistence fit into a purely functional language, where we want to make IO-related code as thin as possible? When implementing ...
17
votes
2answers
904 views

How granular should a command be in a CQ[R]S model?

I'm considering a project to migrate part of our WCF-based SOA over to a service bus model (probably nServiceBus) and using some basic pub-sub to achieve Command-Query Separation. I'm not new to SOA, ...
16
votes
10answers
914 views

How can I get paid for reducing technical debt?

I'm currently working for small company that has few technically complicated products. I'm the one and only developer for one of them. About a year ago, I got the legacy version of the product and ...
16
votes
18answers
1k views

What do you look at first: the code or the design?

If you've just been introduced to a new project, what's the first thing you look for to get an idea of how it works? Do you look for the design first? If there is a design, what do you look for in ...
16
votes
2answers
14k views

How would you implement Google Search? [closed]

Supposed you were asked in an interview "How would you implement Google Search?" How would you answer such a question? There might be resources out there that explain how some pieces in Google are ...
16
votes
2answers
7k views

Relationship between Repository and Unit of Work

I am going to implement a repository, and I would like to use the UOW pattern since the consumer of the repository could do several operations, and I want to commit them at once. After read several ...
15
votes
3answers
2k views

Which version of Java should I use for a desktop application to reach the most users? [closed]

Am I correct to assume that most end users are using an older version than Java 8? Since I do not want to force people to upgrade in order to use my application, should I plan it to use Java 7 or even ...
15
votes
8answers
1k views

Plagued by multithreaded bugs

On my new team that I manage, the majority of our code is platform, TCP socket, and http networking code. All C++. Most of it originated from other developers that have left the team. The current ...
15
votes
11answers
3k views

Why all classes in .NET globally inherits from Object class?

Its very interesting for me which advantages gives "global root class" approach for framework. In simple words what reasons resulted the .NET framework was designed to have one root object class with ...
15
votes
4answers
2k views

Why exactly can't PHP have full unicode support?

Everybody knows, that PHP has problems with Unicode. Version 6 is effectively abandoned, because of Unicode implementation difficulties. But I wonder if anyone knows what are the exact reasons? ...
15
votes
5answers
1k views

Is having functionality in DB a road block to scalability?

I may not be able to give the right title to the question. But here it is, We are developing financial portal for wealth management. We are expecting over 10000 clients to use the application. The ...
15
votes
6answers
658 views

Should I organize my folders by business domain or by technical domain?

For example, if I'm using some MVC-like architecture, which folder structure should I use: domain1/ controller model view domain2/ controller model view Or: controllers/ ...
15
votes
4answers
3k views

Where should you put constants and why?

In our mostly large applications, we usually have a only few locations for constants: One class for GUI and internal contstants (Tab Page titles, Group Box titles, calculation factors, enumerations) ...
15
votes
3answers
755 views

Conceptual mismatch between DDD Application Services and REST API

I'm trying to design an application that has a complex business domain and a requirement to support a REST API (not strictly REST, but resource-oriented). I have some trouble coming up with a way to ...
15
votes
1answer
393 views

Are there any examples of implementing and effectively responding to a “Chaos Monkey”?

Jeff Atwood recently wrote a blog post about Netflix's implementation of a "Chaos Monkey". It is a very high level article. I am curious if anyone has actually implemented this technique for testing a ...
14
votes
22answers
854 views

At What Point Should You Start To Think About Performance?

As I'm building applications I find myself constantly asking if this is best way to perform or implement a certain functionality. Often, I'll post questions on stackoverflow or another forum desiring ...
14
votes
9answers
954 views

How can I tell if software is highly-coupled?

I am familiar with the term "highly coupled" but am curious if there are signs (code smells) that can indicate that code is highly coupled. I'm currently working with Java EE but this can apply to ...
14
votes
4answers
719 views

APIs and functional programming

From my (admittedly limited) exposure to functional programming languages, such as Clojure, it seems that encapsulation of data has a less important role. Usually various native types such as maps or ...
14
votes
6answers
546 views

Tips about how to spread Object Oriented practices [closed]

I work for a medium company that has around 250 developers. Unfortunately, lots of them are stuck in a procedural way of thinking and some teams constantly deliver big Transactional Script ...
14
votes
3answers
1k views

What makes a large and complex software product slow? [closed]

For a reason that is largely irrelevant, I installed Delphi 7 once again in such a long time. I have to say, I was completely blown away - in a way I haven't been for rather a while. This is not how I ...
14
votes
4answers
3k views

How to architect enterprise desktop applications for Windows 8

I think I have a grasp on the expectations of consumer application development for Windows 8. Create a new Metro-based UI on top of WinRT, deploy it to your customer via the Marketplace, and everyone ...
14
votes
3answers
6k views

Namespace and class name guidelines

I'm having problems naming my classes and services correctly when utils and other help classes are involved. How would you structure the following: EventService.cs EventServiceUtils.cs ...
13
votes
7answers
2k views

How to sell DRY architecture [duplicate]

I'm sure most are familiar with the phrase DRY in the software world - Don't Repeat Yourself. This is a fundamental principle of good software development. Here is a question (background first). ...
13
votes
9answers
14k views

Are Java certifications important for an architect role? [closed]

I want to know how much Java Certifications (SCJP, SCWCD and others) are important for an architect position. If a person posses a good experience in Java development and want to pursue his career on ...
13
votes
5answers
20k views

Fastest way to document software architecture and design [closed]

We are a small team of 5 developers and I'm looking for some great advices about how to document the software architecture and design. I'm going for the sweet spot, where the time invested pays off. I ...
13
votes
4answers
16k views

On MVC can several views have the same controller or one view must have one unique controller?

I'm having some questions while designing a architecture for a project around MVC. (It's a C++/Marmalade SDK project, I'm not using any particular MVC framework, I'm making one.) On several articles ...
13
votes
1answer
7k views

Why database as queue so bad? [closed]

I've just read this article, and I'm confused. Let's imagine 1 webapp and 1 distinct application acting as "worker", both sharing the same database. Oh, I said "sharing"..but what does the article ...
13
votes
3answers
1k views

What is the best way to do offline failover of a desktop based client that uses a web service?

I have three incoming projects that share a common problem: they need to have the logic on a web system and they need a local application (e.g. point of sale) that communicates with such system ...
13
votes
2answers
966 views

How do you handle shared concepts in a microservice architecture?

I am researching architectural patterns for an application I'm developing and a microservice approach seems like it would be a good choice but I am not sure how to handle interactions between the ...
13
votes
0answers
622 views

How do you dive into a big ball of mud? [duplicate]

Possible Duplicate: How do you dive into large code bases? So there is a question about understanding code. Mine is a similar problem. It started when I joined my current org. and like I ...
12
votes
5answers
2k views

Why did the team at LMAX use Java and design the architecture to avoid GC at all cost?

Why did the team at LMAX design the LMAX Disruptor in Java but all their design points to minimizing GC use? If one does not want to have GC run then why use a garbage collected language? Their ...