cool hit counter My Software Architecture Methodology_Intefrankly

My Software Architecture Methodology


One of the things we look for in our internal rank promotions, once the target rank is more senior or expert, is having your own methodology.

What is the methodology

Many people have heard of methodology, but many are also asking what it is.

Methodology is the guiding idea that has a summative nature after we have thought and settled on many things.

For example, many quotations and sayings can be methodologies.

Nurture determines a person's character.

diligence makes up for awkwardness

etc.

Software Architecture Methodology

Less is more.

Someone asked me once if you ever summarized your methodology. I say my methodology is that less is more.

Having previously optimized the system interface for performance and stability, the first phase of the optimization was okay, and they asked me what technical tools I had used and what new things I had used. I said I deleted 5k lines of code, he didn't say your methodology was "delete code".

When I first received the system, It's hard to try to understand what he's doing inside.。 etc. After a part of the code logic is understood, Found a lot of useless work in there, Maybe the previous system was designed too badly, There is absolutely no consideration of the direction of subsequent expansion, It could also be that the product's requirements have changed and changed, Most of the code can only be tinkered with to fit the business iteration, The result is a large pile of ineffective and redundant code that exists。

So the first thing was to sort out the main purpose of the system response interface, sort out the contextual logic, sort out the data flow logic, remove redundant code, and make the code easier to read, neater, and more elegant to write. Abstraction, and encapsulation, and reuse of code logic.

Many people look at code separation and are simply interested in layering and splitting modules. The main separation I write code for, in addition to the two points above, is the separation of computation and storage, a point that will be covered later.

In short, this usability and performance optimization was achieved simply by "deleting code", leaving plenty of room for further optimization in the future.

We have an internal code tally system that does a tally every time we post a tag, and everyone else has a green plus sign, +500, 500 lines of code added each time. Mine was a red minus sign every time, -1500, and I deleted another 1500 lines of code.

Big data oriented system design

As stated above, another thing I split the code logic into is the separation of computation and storage.

Many people write code, in addition to writing spaghetti code, although it can be divided into many sub-methods, sub-modules, and the number of lines of code is controlled to 80 lines, but it is still difficult to read. Because this is just simple text pagination, not a software development idea.

I write code will generally consider whether this function is a read function or, write function, for abstraction, so that the read function in the data volume up after we can do a lot of our scalable capabilities, such as split library split table, such as the introduction of cache, such as multi-storage media storage, etc., completely do not have to relate to business logic issues.

Separation of computation and storage is the way the database is implemented, the underlying B-tree on disk is responsible for storage and the upper SQL Parser is responsible for computation, our system can also have such logic so that we can switch storage at zero cost and should not have upper code logic to achieve better unit testing.

So here's the methodology: big data oriented system design.

In the Internet system, the growth of data, business development, and the increase of users is much faster than the system iteration, only when we design our standalone system code with a high concurrency scenario for big data, the system will have the ability to scale, easy to expand, to carry more data pressure, and become more stable.


Recommended>>
1、Machine learning in action top 8 classifiers to identify tree leaves with source code
2、Android project practice twentysix Bluetooth connection hardware device development specification process
3、Kaggle artifact xgboost
4、ICO Scam DecodedNo Fraud No Gain No Loss
5、How to import the SSLServercertificate chain of a site into the ABAPNetweaver system

    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号