三思笔记_在使用buildconfig调试之前要三思
三思笔记
Last week I was working on a feature that syncs data between phone and backend. That sync mechanism is triggered under certain conditions and we needed a way to bypass those conditions and force the sync when enabling some preference in debug mode. Leaving aside the details, the resulting code was something like the following:
上周,我正在开发一项功能,该功能可以在手机和后端之间同步数据。 该同步机制在某些条件下触发,我们需要一种方法来绕过这些条件,并在调试模式下启用某些首选项时强制进行同步。 抛开细节,最终的代码如下:
fun syncData() {if (shouldForceSync() || shouldSync()) {// Trigger the process}
}private fun shouldForceSync() = BuildConfig.DEBUG && isForceSyncPreferenceEnabled()private fun shouldSync(): Boolean {// Real validation rules here
}
Pretty simple. I relied on the BuildConfig.DEBUG
constant generated by Android Studio.
很简单 我依靠Android Studio生成的BuildConfig.DEBUG
常量。
问题 (The problem)
Everything seemed fine to me until I received a comment in the pull request:
在我收到请求请求的评论之前,一切对我来说似乎还不错:
I would not want to ship Debug functionality in our Production APK/Bundle code.
我不想在我们的Production APK / Bundle代码中提供调试功能。
I agree that we shouldn’t ship debug functionality in the published artifact, and there are many reasons for that:
我同意我们不应该在已发布的工件中提供调试功能,这有很多原因:
- ⛔ It’s definitely not a good practice.definitely绝对不是一个好习惯。
三思笔记_在使用buildconfig调试之前要三思相关推荐
- 三思笔记_使用反射前先三思
三思笔记 介绍 有时,作为开发人员,您可能会遇到无法使用new运算符实例化对象的情况,因为其类名称存储在配置XML中的某个位置,或者您需要调用一个名称指定为注释属性的方法. 在这种情况下,您总会有一个 ...
- 数字IC设计学习笔记_静态时序分析STA_ STA基本概念
数字IC设计学习笔记 STA基本概念 1. STA基本概念 2. 时序弧概念 Timing Arc 3. 建立时间和保持时间概念 4. 时序路径概念Timing Path 5. 时钟域概念clock ...
- 【DG】[三思笔记]一步一步学DataGuard
[DG][三思笔记]一步一步学DataGuard 它有无数个名字,有人叫它dg,有人叫它数据卫士,有人叫它data guard,在oracle的各项特性中它有着举足轻理的地位,它就是(掌声)..... ...
- 韩顺平php可爱屋源码_韩顺平_php从入门到精通_视频教程_第20讲_仿sohu主页面布局_可爱屋首页面_学习笔记_源代码图解_PPT文档整理...
韩顺平_php从入门到精通_视频教程_第20讲_仿sohu首页面布局_可爱屋首页面_学习笔记_源代码图解_PPT文档整理 对sohu页面的分析 注释很重要 经验:写一点,测试一点,这是一个很好的方法. ...
- 关于幂律分布的一个笔记_哈克_新浪博客
关于幂律分布的一个笔记_哈克_新浪博客 关于幂律分布的一个笔记 (2011-03-02 18:12:27) 转载▼ 标签: 幂律 二八法则 杂谈 ...
- Effective C++笔记_条款31将文件间的编译依存关系降至最低
Effective C++笔记_条款31将文件间的编译依存关系降至最低 这个章节,读了两遍还是不是很清楚,有一种没法和作者沟通的感觉,看来我还是一个C++的初学者呀.好吧,不多说了,回归主题,今天的笔 ...
- Windows驱动开发学习笔记(二)—— 驱动调试内核编程基础
Windows驱动开发学习笔记(二)-- 驱动调试&内核编程基础 基础知识 驱动调试 PDB(Program Debug Database) WinDbg 加载 PDB 实验:调试 .sys ...
- linux 串口信息记到日志,[linux学习笔记]之一:ubuntu ch340调试备忘
[linux学习笔记]之一:ubuntu ch340调试备忘 已有 2183 次阅读2016-11-8 21:52 |个人分类:linux 最近迷上了Linux,入了一块板.电脑使用win7+ubun ...
- oracle11g中用asmlib配置磁盘组,ASM学习笔记_配置ASMLIB磁盘组
ASM学习笔记_配置ASMLIB磁盘组 目录 1 ASMLIB Introduction 2 虚拟机添加一个共享磁盘(块设备) 3 下载,安装ASMLIB 4 配置,使用ASMLib 磁盘组 #### ...
- MySQL学习笔记_关于MySQL的字符类型VARCHAR长度知识总结
MySQL学习笔记_关于MySQL的字符类型VARCHAR长度知识总结 一.VARCHAR存储和行长度限制 1.VARCHAR(N)中,N指的是字符的长度,VARCHAR类型最大支持65535,指的是 ...
最新文章
- 【小白学习PyTorch教程】十九、 基于torch实现UNet 图像分割模型
- iis7 运行 php5.5 的方法
- json对象数组按对象属性排序
- PDH光端机的原理_PDH光端机的作用优点
- python settings模块导入不了_无法导入设置“myproject.settings”(是否在sys.path上?):没有名为pinax的模块...
- 诗歌rials 之RJS的tips
- mybatis批量更新及其效率问题
- VirtualBox配置
- 当post 的字段很多,post的字段并不完全修改(有的值是前端input的值,有的任保留原来原来数据库的值),...
- 编译修改OpenCV的rpath
- linux通过usb给windows,如何从Linux创建Windows USB安装程序 | MOS86
- 谈谈Http中Get和Post的区别
- matlab将声音和噪声叠加,基于MATLAB有噪声语音信号的处理(最终稿)最新版
- Flink简介以及与sparkStreaming和Storm比较
- R包的安装以及安装失败的解决
- 萌系外表+丰富功能,i宝机器人成CES人气展品
- element-ui 表格总计有多行的情况
- wolframalpha最新版_WolframAlpha下载-WolframAlpha ios版下载 苹果版V1.7.4-PC6苹果网
- 从0到一开发微信小程序(1)——申请账号并安装开发环境
- Egret使用Box2D
热门文章
- 三思笔记_使用反射前先三思