Eighth month of work: Thinking after tuning from Android to server

Source: Internet
Author: User
Tags what interface

      • Objective
      • The focus of client development
      • The focus of back-end development
      • Impetuous Heart.
      • Architect's Dream
      • Jump out of limits
      • Summarize
      • Other
      • Thanks

Objective

The distance to write a blog has been one months, after years due to post adjustment to write backstage, development framework, development model of the different let me adapt for a while, more difficult is the back-end development and client development thinking habits of change .

The focus of client development

In my opinion, the most important thing for client development is:

    • Understanding and recommendations for business processes
    • understanding and suggestion of interactive mode
    • Presentation of data (fast, efficient)
    • Data acquisition (user active input, UBT acquisition)
    • Guaranteed application performance (memory, weak network, power consumption)

In practice, the product manager will analyze the real needs behind the business requirements, propose a solution, and then communicate with the research and development to achieve:

    • If is the partial interaction way , generally is looking for the client to develop the communication;
    • If the business process is biased, the general is to find back-end development communication.

In contrast, "business process" is certainly more important than "interaction". Whether it's a mobile app or a Web site, you're qualified to talk about the experience after meeting the most basic needs of the user.

Watercolor pens can not learn the word, who cares how beautiful your color.

So, the first two points above, I emphasize understanding and advice .

When you get the prototype, the design, in fact, the business process has been basically determined, the client to do is basically to follow the design diagram to achieve the effect.

The focus of back-end development

In the long-term accustomed to the client development, into the backend development not a few days, was our architect godless a meal.

The reason is that I write interface, in addition to additions and deletions, do not know what to write, to ask the architect C, C elder brother let me "I want to need what interface."

(? ◇?) ? Think of yourself? No prototype, I know what interface I need.

The words of a, C elder brother Wrinkly, Earnest to me said: "Server development, focus on the service two words!" You have the ability to hack and check multiple data, how to combine these capabilities and provide as many services to others as possible to bring value. Most of the time when the server started development, the prototype is not yet designed, don't you write it? From different business scenarios, you should think about what data you need to provide for different business systems, and design interfaces that can handle more requirements! ”

"Thinking about what services you can provide" is very different from client development.

Based on my understanding of the service side, the main process of server development is as follows:

    • From different business scenarios, think about what data you need to provide for different business systems
    • Designing the database table structure
    • Level splitting, module splitting
    • Design interfaces that can handle more requirements
    • Implementing interfaces
Impetuous Heart.

Although I boast a half-day back end, but in fact, before writing this blog, my heart has been tangled, painful for a long time.

The pain is that the company wants me to leave the Android development I'm good at and do the backend.

Do the backend to do it, can be good studious back-end development is also good. However, recently the business is tight, writing business code every day, a little bit of meaning.

While I agree with the importance of business abstraction and modeling capabilities, this must be based on solid technology.

Borrowing what the previous predecessor said:

Architects are now mostly business architectures, built with existing technical puppets. For example, when choosing the technical structure of XX network or know people in the inside to give you the structure of their system, and then use Zookeeper Redis and so on a variety of storage and middleware to build a system.
Platform architecture is designed Netty Dubbo these middleware and can lead the development of the God-man, platform architecture is very very few, need to read a lot of open source code and accumulate many years of open source experience to do, write a few years business code day get set if else foreach is absolutely not to be done.

So I am very tangled, whether to continue to go on, or return to Android, Android proficiency.

The inner debate, the choice of many days later, suddenly one day, I saw my intermediate soft test "software designer" certificate, I think of the original intention to enroll in the exam.

Architect's Dream

As early as I started learning programming, I had a wish: to be an architect.

At that time, the definition of the architect is very vague, only know that the ordinary programmer is to move brick yard, and the architect is to draw the building drawings of the people, all programmers have to listen to him, very impressive Ah! (: 3"∠)

Sophomore school has a friend told me "soft test" This exam, there is a high-level examination "system Analyst", its requirements make me feel very close to the architect:

According to the system analyst Baidu Encyclopedia Introduction:

System Analyst is a senior talent in the computer industry, is the core leader of a large software project, his main responsibility is the overall planning of software projects, requirements analysis, design software core architecture, guide and lead the project development team for software development and software implementation, and the overall project management work.

The job responsibilities of the system analyst determine that he must be proficient in all fields of the computer industry, so a qualified system analyst can master all kinds of computer cutting-edge theories, specific hardware and software development techniques, large database knowledge, project overall planning and framework design, modular design and development technology, Digital construction knowledge and so on.

The system analyst has the ability to hold different core roles at various stages of the process, from project inception to formal launch, and the most important capability is the overall design capability and detailed design capability of the system architecture, which is directly related to the success or failure of a software project.

Due to the personal ability and the system analyst exam requirements, then I chose to apply for intermediate first.

Flash eyes graduation nearly a year, with the IT industry gradually understand, I gradually realized: display data can have apps, web pages, public numbers, small programs and other platform technology, but processing data, must rely on a strong background.

Finally understand why the architect is generally done backstage: the background decided the business!

Jump out of limits

People often say:

Walking in the night, you need to look at the sky to not fall.

Engaged in programming is also very similar, if I did not think of their original goal, just think of the current gains and losses, I am afraid will always live unhappy.

Android or back end, in fact, is not contradictory, is my goal to go to the road.

I will try to make a fine and then expand horizontally.

Summarize

Recently accumulated in the heart for too long, unconsciously pulled so much.

Blogging is still a great benefit, so that I can calmly reflect on the reflection, and not because of changes in the work of cranky, looking at a variety of articles jealous, Tangled.

To this article to alert almost forget the target of me!

Other

"System Analyst Tutorial" book catalogue (usually accumulate relevant knowledge):

    • The 1th Chapter Introduction
    • 2nd Chapter Economic Management and Applied mathematics
    • 3rd Operating System Fundamentals
    • The 4th Chapter data communication and computer network
    • 5th Chapter Database System
    • The 6th Chapter System configuration and performance evaluation
    • The 7th chapter of Enterprise Informatization Strategy and implementation
    • 8th Chapter Software Engineering
    • 9th Chapter System Planning
    • The 10th Chapter System Analysis
    • The 11th Chapter software Requirement Engineering
    • 12th Chapter Software Architecture Design
    • 13th Chapter System Design
    • The 14th Chapter System realization and Test
    • 15th Chapter system operation and Maintenance
    • 16th Chapter New Technology Application
    • 17th Chapter Embedded System Analysis and Design
    • 18th Chapter system security Analysis and design
    • 19th Chapter system Reliability Analysis and design
    • Chapter 20th Project Management

Some of the answers about "how to be an architect":

    • In fact, regardless of the level of the code, see what you occupy at the height of the problem. But without the code, you may not be allowed to stick to the architecture.
    • By reaching out to the developers of these great projects, it's a lifelong benefit to know how to solve their problems.
    • An architect, without the sensitivity and foresight of the technology, has been holding a set of technical architectures unchanged and is expected to be eliminated soon.
    • Now the level of software development packaging is very high, as long as you learn Java can do a programming work, as you do more and more deep, more and more specialized, these basic problems will emerge. More importantly, the basic idea of computer hardware and software in the past few decades in fact, such as caching, increase the abstraction layer, such as the basic idea of armed, to learn new things not only learn fast, understanding will be more thorough.
    • Understanding the nature of technology can be comprehend by analogy and fast, which is especially important in the software industry, where technology updates quickly. Just learn to use is not possible, not only to know how, but also to know why. To stop and think is the essence of progress. The "Discovery of change and package change", which has been emphasized in design patterns, is what this means.
    • The training of abstract ability is not a shortcut, is the accumulation of experience, diligent thinking and learning. For example: A programmer who learns Android can think about how Android is abstracted from unknown, complex applications. Why are there four components of activity, Service, Broadcastreceiver, ContentProvider?
Thanks

Reviewing the 15-year program career, I summarized 7 points of experience

How to become an architect?
Interpreting the client development process

Eighth month of work: Thinking after tuning from Android to server

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.