相关分享
关于gradle中plugins依赖未走私服导致编译失败的原因探析
我们的项目标配使用gradle进行编译,我们也配置了nexus作为私服,理论上来说,不应该再会出现因包依赖的原因导致编译失败的情况,但是这个问题仍旧会偶尔发生,我解决过一两次,只看到通常失败的编译都是在开头的时候去 plugins.gradle.org 拉包的情况,当时将该问题存疑,本文特来探析一下导致这个问题的根因。
微服务坏味道之循环依赖
微服务间的循环依赖是一个非常容易发生的坏味道,对系统的健康危害巨大。可视化的方式可以帮忙快速找到系统中的循环依赖问题,比如通过链路追踪可视化服务间依赖关系,或通过流程时序图识别。微服务的循环依赖有一些典型的成因,针对这些问题定义一些原则,通过架构守护的方式加以保护,就可以杜绝循环依赖的问题发生。
依赖什么啊?依赖注入……,什么注入啊?
我们在讨论性能优化的时候,一个经常被忽略的因素恰恰是软件本身的设计。不过经过这几个月对某组件库中十多个组件的重构之后,我们发现这两部分工作在很大程度上是同一件事的两个方面:好的设计往往可以带来更好的性能,反之亦然。
Linux开发过程那么麻烦,是否值得?
Linux 从诞生至今,已经快有 30 年了。这期间 Linux 一直延续着通过邮件来提交变更、审查、讨论直至批准的研发过程,这一流程非常费时费力,不仅成为新人的进入门槛,也成了可持续生产的障碍。那么,为什么 Linux 一直要坚持遵循这一过程呢,它能带来什么好处?存在哪些弊端?有什么解决办法吗?
信任的传递——为什么我们需要第三方授权?
在证书验证、基于JWT(Json Web Token)的身份认证、IDP(身份提供商)、SP(服务提供商)等技术中,都有一个可信的第三方,可明明是用户对资源或者服务的访问,为啥还要个第三方?
Koin in Android: 更简单的依赖注入
如果还不清楚什么是依赖注入,那么请参考之前写的 Dagger2 in Android(一)通俗基础开头部分。如果你不了解 Dagger 倒也无妨,本文会进行一定的对比,但仅针对接触过 Dagger 的同学,否则大可以忽略。
不使用第三方库,Bitmap 的优化策略
如今市场上有很多封装好的第三方库,对Bitmap内存也是做到了很好的优化,比如Glide、Fresco,每次加载只要直接调用就好,但是除掉第三方库外,我们还是需要去了解一下Bitmap的基本优化手段。

讨论 · 1 条
现在,越来越多的应用都开始面向服务架构,这意味这更好的重用性;一个设计良好的服务,不仅可以被网站使用,也可以被各种移动应用使用。但是世界上没有免费的午餐,在网站的开发过程中,如果依赖于第三方服务,很可能存在这样的问题:另一个团队正在开发这些第三方服务,他们也在不断的部署这些服务,服务经常不可达。
这会导致两个问题,首先功能测试失败,build失败,代码无法提交;其次,很多前端的功能需要依赖数据,这些服务不可达,就意味着没有数据,那么前端的功能开发也被阻塞了。
这种情况下,一般的做法是在项目中构建一些假的服务(以下统称本地模拟服务),直接返回静态的数据,稳定可靠;
然后,所有的测试都依赖于本地模拟服务, 不稳定的第三方服务就被隔绝了,程序员们就可以无忧无虑的提交代码,但好景不长,随着时间的推移,新的问题又来了。
前面我们已经假定,第三方服务也在开发中,在不断的变化中,一段时间后,那些本地模拟服务返回的数据已经失效。无奈地程序员们手动的更新了本地的静态数据,没过多久随着第三方服务的变更,这些静态数据有失效了。