Android growth path as senior architects (technical details)

Disclaimer: This article is a blogger original article, follow the CC 4.0 BY-SA copyright agreement, reproduced, please attach the original source link and this statement.
This link: https://blog.csdn.net/weixin_44339238/article/details/102610273

Foreword

As we all know, the current popular programming languages Java, PHP, C, C ++ , Python, Go and so on. Among them, sit tight in the first place is still the Java programming language, and in object-oriented application development accounted for the dominant ideology in, Java often become synonymous with it. Strong background in Java, many developers have been developed are good. From general business perspective, there is a problem: the background is considered to be the core technology, the client was considered not high tech, even small businesses will staff the way back to develop simple client, or make the background architecture client management division a few people. In fact, client focus and technical back-end technology is completely different, even different programming languages ( Android use Kotlin increasing popularity of programming languages ). In addition, the background of people with relatively user too far away, and the client is directly facing the user, and product staff to communicate more directly. So, I think it really is to give enterprise products with the user, then the selected client architecture background people do a little better.

A mobile architect Job Description

What are (1) to move architects recognized job description?

In fact not very accurate job description. But I can give a try:

1. Design the current architecture. Including the development or review of new technical solutions.
2. Improve the past architecture. Depending on the cause of development, or technical debt service, current technical reconstruction program and to promote the implementation.
3. look into the future architecture. Technical research and analysis program, ready to use new technologies.
4. Propulsion Technology Program embodiment. Solving process of implementing specific technical problems.
5. technology sharing and training. Technical exchanges and promote the use of new technologies.
6. recruitment of personnel. Technical interview.

If (2) Mobile architect but also everyday coding, if necessary, the ratio is how much?

Although management with color, but still technology-based. It is necessary to write the code, architects do not write code to become managed. Write code proportion should be at least 40% of the time.

(3) Mobile architect's growth path is what?

We can first try to solve technical problems in the current business and then develop their own technical prospective, the future for the business technical reserves. Architect fundamental or technical destiny, so in mobile development technology research things must try to do. In addition, technicians often inarticulate, while the architects of a lot of work (such as technology sharing, training, interviewing, and promote technical implementation of the program) is the need to communicate the work. Also outstanding architects to move the impact on the industry has. So, as a mobile architect, exercise their skills and necessary a growth path.

If (4) move architects need to learn front-end, back-end development technologies?

This is equivalent to asking whether or not to extend technology "wide" degree, and one of architects label is "broad." Just look at how much personal effort to achieve the breadth and depth.

Whether (5) Mobile architect to design the entire C / S structure?

This is actually an exaggeration, with the back office staff should be able to design, the total charge of the case, some slightly larger challenge.

How (6) mobile communication architect team-work?

1, in cooperation with the CTO director.

First, from the ideological to recognize that the two are exactly the same interests. Director for architects to expand the upside, the planning director and architect of effective landing. Ensure adequate communication, may agree to a fixed communication mechanism, such as once every two weeks, for both sides to keep pace and consistency in terms of ideology. Architects should communicate with programs and CTO, clear advantages and disadvantages of A, B program. According to CTO can make from the upper to consider making a decision, even if the architects of their own decisions, it's best to first obtain approval of the CTO. If disagreements arise, the best way is to set aside, such conditions are ripe, probably views will converge. If you can not wait, as long as the CTO's advice is not too far off the mark, or the advice CTO of execution better. If you have a full grasp, that their program is very good, then you have to get permission and understanding CTO Do not even allowed to do it, because the final pot is not a person you can back.

2, in cooperation with other departments.

General non-technical products division, the architect role is to help him solve this problem, this is well understood. After understanding product requirements, technical feasibility analysis. Without changing the overall program objectives premise, from a technical point of view, we put forward improvement opinions, modify the design, intended to facilitate implementation. Architect improve cooperation with the background, from background to foreground, the whole link is too long, but to control a person, you need two good cooperation and work together to better technology off. Draw good test departments should develop as a friend to look, it is one of us. If the relationship is good enough, consider testers "self-test" phase of early intervention to help developers test cases. Operations of the relationship a little bit remote, the key point is early intervention. Pro on the line to prevent the addition of a pile of operational requirements, it may affect products on time. In conclusion to cooperate mainly with other departments, earn communicate as soon as possible, eliminate risks before against students.

3, in collaboration with team members.

Mobile development team few in number, but the department and multi-language development. There IOS, android, as well as Java and JS gateway. If a department of more than three people, should set up a Team-Leader, authorization achieve indirect management. For their own good technology to achieve personally, and brothers fight together, in-depth to the team. Thinking and enhance the reserve team should be allowed to fight in the front line of middle managers, senior staff as a guide, the first layer soy sauce staff learning. For they are not good technology, you can use "pair programming" approach, so that the two developers on the development of a computer, a write another observation, the basic procedure is the same, or be able to understand and participate in discussions. With several Leader, to focus on communication to ensure consistency in the general direction of thought, giving them the right amount of space authorize and assist them to make achievements. Important to note that the team's positive energy and a vibrant atmosphere, people are not machines, harmonious atmosphere than a cold and punishment system is much better. Record of achievements and results of the team, improve team member collective sense of honor, the goal will be directed to the "self-worth" up.

Note the new demands of treatment (7) to move the project architect

1, the development process. The new product solutions proposed to start from the needs of the market operators, to product managers to develop new functional requirements, and finally the development of the hands of research and development.

2, global vision. In the product development and the first meeting, first of all from the overall situation of the entire project, grasp the relationship between the purpose and significance and other demand needs.

3, perfect trap. Deficiencies presented to the demand for products, to perfect trap from the perspective of users and developers, thus ensuring the normal operation of the project.

4, interface data. Customization and background data in the data interface developers to more reasonable in that interface.

Two, Android architect technical presentations

Architecture and Design

  • Design Patterns
  • Reconstruction
  • Network programming framework
    • TCP three-way handshake with the four waving format
    • HttpClient
    • HttpURLConnection
    • Volley
    • OkHttp
    • Retrofit
  • UI architecture pattern
    • MVC
    • MVP
    • MVVM

Development tools

  • Integrated Development Environment
    • Android Studio
    • Sublime Text
  • Version Control System
    • svn
    • git
      • gitlab
      • github
    • mercurial
  • Debugging Tools
    • ADB
    • DDMS
    • Stetho
    • LeakCanary
    • ClassyShark
    • Postman
    • markman
  • CodeReview Tools
    • Gerrit
    • Phabricator
  • Building tools
    • Gradle
    • Buck
  • Productivity tools
    • Pomodoro
    • Markdown
    • WakaTime
    • Focus Matrix
    • evernote
    • Pocket

Mobile Security

  • Code and resources confused
  • Decompile
  • Key Management
  • Secure Coding
  • Reinforcement

Special technology

  • App slimming
  • MultiDex
  • Plug-oriented
  • Push technology
  • Crash statistics
  • Functional Programming
  • Start protection
  • Online Hot Fix
  • AOP
  • React Native
  • Hybrid
  • SDK化
  • Dependency Injection

soft skill

  • Knowledge Management
    • Team Wiki
    • Team Forum
  • Time Management
    • Four-quadrant law
    • Pareto Principle
    • Pomodoro
  • Management by Objectives
    • Smart rules
    • mind Mapping
    • Gantt chart
  • Project management
    • Border thinking
    • The process of thinking (WBS)
    • The risk of thinking
    • Stakeholders thinking
    • Integrated communication
  • Team Management
    • Job Interview
    • Echelon training
    • Technology Planning
    • Team norms
  • Personal Management
    • Technology blog
    • technology sharing
    • Conference presentations
    • leadership
    • Continuous Learning

Peripheral technologies

  • Product Interaction Design
  • Back-end technology
  • HTML5
  • iOS

Mobile testing

  • unit test
    • JUnit
    • Robolectric
    • Mockito
  • UI test automation
    • Monkey
    • MonkeyRunner
    • UIAutomator
    • Robotium
    • Espresso
    • appium
  • Continuous Integration
    • Jenkins
    • Travis CI
    • fastlane
  • Static code scanning
    • CheckStyle
    • FindBugs
    • PMD
    • Android Lint
    • Infer

Performance Optimization

  • Start optimization
  • Code optimization
  • Memory Optimization
  • Power optimization
  • Layout Optimization
  • Network Optimization

Programming language

  • Java
  • C
  • C++
  • Javascript
  • Groovy
  • Kotlin

 

For many middle-class Android engineer, they want to upgrade their skills, often find their own way to grow, to learn the effect of fragmentation of lengthy and inefficient helpless . These sort of knowledge map for Android developers hope friends have reference and detours, the focus of this article is that you have no gain and growth, and the rest is not important, I hope readers can keep this in mind.

No matter what difficulties, should not be a reason for us to give up!

Finally, here is about my own of Android learn, interview documents, organize large video collection, interested partners can see ~ 

Guess you like

Origin blog.csdn.net/weixin_44339238/article/details/102610273