当前位置:网站首页>How can beginners correctly understand Google's official suggested architectural principles (questions?)
How can beginners correctly understand Google's official suggested architectural principles (questions?)
2022-07-01 08:09:00 【Lighthouse @kuaidao】
Preface
Recently, I took the time to read google Of Jetpack Architecture components ,kotlin coroutines 、flow. And then google Official recommended application architecture guidelines ,compose etc. . These are The current mainstream application development technology stack . Our project has been set up , But my understanding is very shallow , The architecture recommended on the official website is not used in writing MVP Write straight . But these are the technology stacks that should be mastered in the future , Record the doubts .
1. Standard data-driven code styles , And the responsibilities of all levels , How the layers are related .
UI layer
Activity、Fragment Whether only ui Related codes : ui Related codes refer to those codes ?
Whether the element is displayed or hidden , Add and remove . Font color value , The picture style , font size , Are you refreshing these only with View Elements that are related to their own attributes .
viewModel What code to put ? What's the effect .
For example , In the login interface [ Conditional check logic ],EditerText Of textChange Logic , Check whether the password conforms to such judgment logic, and put it in ?viewModel You need to expose methods to the interface , Whether these methods need suspend modification .
Domain layer (xxxUserCase)
What type of code is put into the domain layer , If you need suspend modification . What style code is exposed . The domain layer can create object class Singleton class
xxxxResp The repository
Repository split , How to understand repository splitting , How to split is correct or relatively correct .
xxDataSource data source
Data sources in applications only , file , database , Memory , The Internet . If you define these earlier , That is, four data sources . Whether it should be defined in this way
NetDataSource ,DbDataSource ,FileDataSource DataStoreDataSource , So a large project only defines these four data elements , It must not be enough , How to subdivide
In general .
Tool library ,widget Custom layout , Elements , General network request logic , Remove it there ?
There is also the use of synergy , It's also a little knowledge . Nested usage of coroutines , How to control the timing between the network request initiated by the cooperation process and the ordinary network request , Then execute first and then execute another . Parallel execution , Nesting
Write the nested code of the cooperation process according to the gourd drawing , It's hard to write by yourself , The more I write, the less I know . Mainly, the nesting of network request code does not look elegant or beautiful .
How to understand business logic
Functional logic : Explain the logic of this function in detail .
Interactive logic : Explain the mutual jump between pages .
Visual Logic : Right color , Requirements for icons .
Business logic : Talk about the business corresponding to this function .
The business logic is split into functions that implement specific functions , Different functions deal with different problems ( Input data format verification , Format checking )
边栏推荐
- LSTM of RNN
- 【力扣10天SQL入门】Day9 控制流
- [introduction] approximate value
- 如何使用layui将数据库中的数据以表格的形式展现出来
- 力扣每日一题-第31天-1502.判断能否形成等差数列
- Tupu software has passed CMMI5 certification| High authority and high-level certification in the international software field
- 量化交易之读书篇 - 《征服市场的人》读书笔记
- Latex formula code
- [force deduction 10 days SQL introduction] Day10 control flow
- getInputStream() has already been called for this request
猜你喜欢

Learn the knowledge you need to know about the communication protocol I2C bus

Access report realizes subtotal function

Serial port oscilloscope software ns-scope

window c盘满了
![[getting started] input n integers and output the smallest K of them](/img/b8/20852484f10bc968d529e9c1ff5480.png)
[getting started] input n integers and output the smallest K of them
![[website architecture] solve 90% of distributed transactions in one move, and introduce the working principles and application scenarios of database transactions and distributed transactions](/img/2c/07d729d49b1d74553decac4588074e.png)
[website architecture] solve 90% of distributed transactions in one move, and introduce the working principles and application scenarios of database transactions and distributed transactions

Why some people earn nearly 10billion a year, while others earn 3000 a month: the details you ignore actually make the most money

Thesis learning -- Analysis and Research on similarity query of hydrological time series

Connect timed out of database connection

Principle and process of embossing
随机推荐
[MySQL learning notes 25] SQL statement optimization
PostgreSQL source code learning (26) -- windows vscode remote debugging PostgreSQL on Linux
[dynamic planning] p1020 missile interception (variant of the longest increasing subsequence)
力扣每日一题-第31天-1790.仅执行一次字符串交换能否使两个字符串相等
Li Kou daily question - day 31 -1502 Judge whether an arithmetic sequence can be formed
Analysis of slice capacity expansion mechanism
Gdip - hatchBrush图案表
凸印的印刷原理及工艺介绍
Lm08 mesh series mesh inversion (fine)
Chinese font Gan: zi2zi
Gru of RNN
Aardio - Shadow Gradient Text
QT -- 1. QT connection database
[staff] high and low octave mark (the notes in the high octave mark | mark range are increased by one octave as a whole | low octave mark | mark range are decreased by one octave as a whole)
[force deduction 10 days SQL introduction] Day9 control flow
Rk3399 platform development series explanation (network debugging) 7.30. What will affect the sending process of TCP packets?
使用beef劫持用户浏览器
How to prevent the other party from saying that he has no money after winning the lawsuit?
[MySQL learning notes27] stored procedure
How to check ad user information?