You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This project is growing larger as days gone, and we have people from different cultures contributing on it, leading me to a situation where naming conventions / complex project structure / giant project dependencies are not efficient for understanding.
Such classess will fetch some data from the internet in some cases, it's not consist with its name Offline****.
It should only execute functions from xxxDao to perform local data ( which might be outdated in user's device ) operation accroding to its name, ideally.
otherwise just don't name it as Offline***, because it uses network indeed.
Names end with Repository are pretty straight forward, might be holding datasource from both local device and network requests
Names like Network****Resource**** ( NetworkNewsResourceExpanded ) indicate used to receive data from network requests, why don't we name it like NewsVo, Vo means View Object, and ViewModel classes (NewsViewModel) can have multiple Vos:
Names end with DataSource indicate a class that has some method sused to fetch data from the internet
Names end with Dao indicate a class that has some SQL annotated methods used to operate data in sqlite (might be outdated) on local device.
And more.....
The complex project structure is really refusing me to understand a data flow
It's seperated into different modules inside different files, with interfaces hiding thier actual multiple implementations behind. I often lost in ctrl + right click in android studio's reference prompt, hard to say that this is a better parttern to be maintained.
Giant project dependencies
There are to many dependencies that need you to review
The text was updated successfully, but these errors were encountered:
why don't we name it like NewsVo, Vo means View Object, and ViewModel classes (NewsViewModel) can have multiple Vos
You can use your preferred naming conventions in your project. People have varying preferences for conventions. I believe most people may not understand what VO stands for and might ask the same question you did.
The complex project structure is really refusing me to understand a data flow
Now in Android is a fully functional Android app built entirely with Kotlin and Jetpack Compose. It follows Android design and development best practices and is intended to be a useful reference for developers. As a running app, it's intended to help developers keep up-to-date with the world of Android development by providing regular news updates.
IMO it should be moved to discussion. It is not an issue though.
More discussions about architecture: #1225 #574 #619
For those beginners to this project:
This project is growing larger as days gone, and we have people from different cultures contributing on it, leading me to a situation where
naming conventions
/complex project structure
/giant project dependencies
are not efficient for understanding.Let's first talk about the naming conventions
The
NiaApplication
, theNia
, is that a cat meow?Names begin with
Offline
(OfflineFirstTopicsRepository
) indicateLocalDevice
:Such classess will fetch some data from the internet in some cases, it's not consist with its name
Offline****
.It should only execute functions from
xxxDao
to perform local data ( which might be outdated in user's device ) operation accroding to its name, ideally.otherwise just don't name it as
Offline***
, because it uses network indeed.Names end with
Repository
are pretty straight forward, might be holding datasource from both local device and network requestsNames like
Network****Resource****
(NetworkNewsResourceExpanded
) indicateused to receive data from network requests
, why don't we name it likeNewsVo
,Vo
meansView Object
, andViewModel
classes (NewsViewModel
) can have multipleVo
s:Names end with
DataSource
indicatea class that has some method sused to fetch data from the internet
Names end with
Dao
indicatea class that has some SQL annotated methods used to operate data in sqlite (might be outdated) on local device
.And more.....
The complex project structure is really refusing me to understand a data flow
It's seperated into different modules inside different files, with interfaces hiding thier actual multiple implementations behind. I often lost in
ctrl + right click
in android studio's reference prompt, hard to say that this is a better parttern to be maintained.Giant project dependencies
There are to many dependencies that need you to review
The text was updated successfully, but these errors were encountered: