×
Community Blog Creating Effective Architectural Diagrams and Coding Complex Applications

Creating Effective Architectural Diagrams and Coding Complex Applications

This article shows how you can create effective architectural diagrams, also introduces a set of methodologies to code complex applications.

To describe our system in one or more diagrams, we often encounter the following issues:

  1. We do not know where to start.
  2. We do not know how to describe the system in one diagram that is clear enough for the relevant product, operations, and development teams to understand clearly.
  3. Halfway through, we realize we do not know who the audience is.
  4. We do not know if we are depicting a product functional chart, a technical diagram, or simply a mixture.
  5. When there are too few boxes in the diagram, we do not know what else to add.
  6. We are never satisfied with the layout of the diagram.

Alibaba_Cloud_Logo

How to Create an Effective Technical Architectural Diagram?

What Makes for an Effective Architectural Diagram?

How can we know if a diagram is a good diagram? And what methods should we use to create a diagrams?

We believe that, to depict a good architectural diagram, we must know who our audience is and consider what information we want to convey. Therefore, we should not depict a physical view or logical view for its own sake. Diagrams should be used to accurately convey the information required by a certain audience to be effective. Only then, should we worry about what type of diagram it is. Therefore, the most direct standard by which we can judge the quality of a drawing is whether the audience can accurately understand the information we tried to convey.

This means that a good and effective architectural diagram does not need to be explained to the audience. It should express everything you want to say all by itself. Moreover, a good diagram should also have a consistent structure, accurate to the data it's representing, and correspond to the code directly.

In this article, here's what you could learn about:

Concepts

  1. What Is an Architecture?
  2. What Is an Architectural Diagram?
  3. What are Functions of an Architectural Diagram?
  4. Types of architectural diagrams, including scenario view, logical view, physical view, process view and development view.

Common Challenges When Depicting Architectural Diagrams

  1. What does a square represent?
  2. What do dotted lines and solid lines mean? What does an arrow mean? What do the colors mean?
  3. Are there any conflicts between runtime and compile time? Are there any level conflicts?

Recommended Drawing Method

  1. System Context Diagram
  2. Container Diagram
  3. Component Diagram
  4. Code or Class Diagram

In this article, an Alibaba technical expert Ding Yi will share his ideas and experience in creating effective architectural diagrams.

How to Code Complex Applications: Core Java Technology and Architecture

How Should We Practice Application Development

Here, I would like to answer the questions that have confused many peers who are engaged in application development.

1. Should application development focus on business implementation or technology?
2. What is the technical significance of application development?

We can comprehend that the complexity of application development is no less than framework development. It is not easy to code applications. The only difference between application and framework development personnel is that they are dealing with different problem domains.

While application development involves more domain changes and more people, framework development involves more stable problem domains but more sophisticated technologies. For example, if you want to develop Pandora, you must have a deep understanding of the Classloader.

However, all the application and framework development personnel share certain thinking patterns and abilities. For example, the ability to break down problems, abstract thinking, and structured thinking.

Alibaba_Cloud_Logo

In my opinion, if a developer cannot do well in application development, he or she cannot do well in framework development either, and vice versa. Application development is not simple at all. However, many of us have treated it in a simple manner.

In addition, from the perspective of changes, the difficulty of application development is not inferior to that of framework development, and application development faces even greater challenges. Therefore, I would like to suggest to all peers engaged in application development, to:

  1. Consolidate their capabilities, including basic technical capabilities, object-orientation (OO) capabilities, and modeling capabilities.
  2. Constantly improve abstract, structured, and critical thinking.
  3. Continue to learn and improve code quality. We can do a lot of technical work as an application developer.

In this blog, we will introduce a set of methodologies to code complex applications, focusing on the retail industry.

Related Products

MaxCompute

MaxCompute (previously known as ODPS) is a general purpose, fully managed, multi-tenancy data processing platform for large-scale data warehousing. MaxCompute supports various data importing solutions and distributed computing models, enabling users to effectively query massive datasets, reduce production costs, and ensure data security.

Object Storage Service

Alibaba Cloud Object Storage Service (OSS) is an encrypted, secure, cost-effective, and easy-to-use object storage service that enables you to store, back up, and archive large amounts of data in the cloud, with a guaranteed durability of 99.9999999999%(12 9’s). RESTful APIs allow storage and access to OSS anywhere on the Internet. You can elastically scale the capacity and processing capability and choose from a variety of storage types to optimize the storage cost.

Are you eager to know the latest tech trends in Alibaba Cloud? Hear it from our top experts in our newly launched series, Tech Show!

0 0 0
Share on

Alibaba Clouder

2,445 posts | 550 followers

You may also like

Comments