专栏首页独行猫a的沉淀积累总结若一开始代码架构不清晰,就是前人挖坑,后面所有人掉坑里

若一开始代码架构不清晰,就是前人挖坑,后面所有人掉坑里

以下我摘录自Android架构指南的一段话,翻译的不太好,见谅

Common problems faced by app developers

原文链接: https://developer.android.google.cn/jetpack/docs/guide

APP应用开发这面临的常见问题

Unlike their traditional desktop counterparts which, in the majority of cases, have a single entry point from the launcher shortcut and run as a single monolithic process, Android apps have a much more complex structure. A typical Android app is constructed out of multiple app components, including activities, fragments, services, content providers and broadcast receivers.

不像传统电脑桌面应用开发的那样在大多数情况下从应用启动开始有一个单一的入口作为单一的整体的进程。Android app有更加复杂的架构。一个传统的Android应用构建在很多的app组件,如activities, fragments, services, content providers and broadcast receivers上面。

Most of these app components are declared in the app manifest which is used by the Android OS to decide how to integrate your app into the overall user experience with their devices. While, as mentioned earlier, a desktop app is traditionally running as a monolithic process, a properly written Android app needs to be much more flexible as the user weaves their way through the different apps on their device, constantly switching flows and tasks.

大多数的APP组件都声明在app的mainfest中用来被android系统使用以决定如何的把APP集成到用户的设备中。然而,在这之前,一个桌面app是按传统的模式运行在一完整的进程中。一种最合适的android app的做法需要更加灵活的穿梭在不通的应用之间以方便用户在他们的设备上使用来不断切换流程和操作。

翻译结束。

最新在看一Android代码,深感项目结构的重要性。若代码架构不清晰,是在一个人挖坑其他人掉坑里。本来精力应该花在业务和功能上,结果呢,不少时间浪费在理清混乱的代码结构和处理bug上。就好比在混沌的一锅粥里不知如何加料。

随着代码和业务的增长,想重构已经没了精力,想继续维护吧,前人留下的坑让后人也花不少精力。最终会导致进退两难的境地。

看到的是 全局变量常量一大堆,到处都是,

从工程代码结构上,也看不出结构。各种工具类这放点儿那放点儿,想到哪就把代码加到哪,随心所欲。

我觉得,针对Android项目,首先大体上确定是MVVM还是MVP,然后,

有一种按功能模块划分的意识

拿一POS机来说,分 存储模块,显示模块,通信模块,读卡模块和框架逻辑。

如果这几块都有的话,实现一功能是多么的简单清晰。

针对一个项目,

1.全局用到的变量,常量,应该放到一个地方去维护。

2.对需要保存的参数,应分类存储。而不是混沌的一锅粥,到处的SharedPreferencesHelper去存储,想到哪用到哪。

3.对需要保存的参数,留出来接口,用到时直接 赋完值调用save()。

4.存储是一大项,存储不是调用原生的增删改查就完了,也要设计为接口。保存记录时,只需save().读取时只需read()

5.通信模块,要考虑到通信通道可能会变,比如http,tcp,串口。也要留出清晰的接口。

6.各个功能模块,尽量做到高内聚,低耦合。最大限度的复用。

7.用到的各种工具类,放在一个文件夹下统一管理。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 记一个AddressSanitizer(ASAN)linux下的内存分析神器的问题

    感谢万能的互联网,我向google提出的issue很快就得到了工程师回复,解决了我的问题。

    特立独行的猫a
  • 用GCC开发STM32,正点原子开发板的一个库函数版本例程示例

    首先下载交叉编译环境GCC,这个网上有很多,百度一下就能找到下载。比如 Sourcery G++ for ARM EABI

    特立独行的猫a
  • 关于移动互联网运营的分享总结

    通过对数据的分析,精准的决策。平均主义是个陷阱,一般的消费群体都是个数学上的正态分布

    特立独行的猫a
  • Express4.x API (一):application (译)

    写在前面 Express文档核心的四大部分app,request,response,router,基本上已经完成。简单的总结 通过调用express()返回得到...

    okaychen
  • POJ-2356 Find a multiple(DFS,抽屉原理)

    Find a multiple Time Limit: 1000MS Memory Limit: 65536K Total Submissio...

    ShenduCC
  • 组合数学-抽屉原理

    抽屉原理又称鸽巢原理:把 n+1个物品放进 n个盒子里,那么至少有一个盒子包含两个及以上的物品。

    唔仄lo咚锵
  • 5分钟面试指南(第九篇 一行代码走天下)

    本部分我们会为大家提供一些python初级工程师在面试过程中遇到的常见的面试题目,期望达到的效果:

    还是牛6504957
  • Android恶意软件使用内置防火墙屏蔽安全软件

    恶意软件的开发者们真是极为聪明,最近安全研究人员们发现他们现在使用开源的Android防火墙屏蔽安全软件与云服务器的通信。虽然这些恶意软件没有造成全球范围的影响...

    FB客服
  • (免费课程转载)3小时课程带你重复一篇3分生信SCI(中)

    大家好,欢迎再次来到MedGo干货课堂,在上期3小时课程带你重复一篇3分生信SCI(上)中,我们着重为大家讲解了GEO芯片的meta分析。很多同学和老师课后向我...

    用户1359560
  • nginx配置负载均衡

    前两天在学习负载均衡,然后就看到了nginx,当前做反向代理,负载均衡 nginx用的确实比较大。

    奕仁

扫码关注云+社区

领取腾讯云代金券