文章深入探讨了软件开发中关于代码复用的哲学思考,作者通过自己的经历引入话题,结合软件设计领域的理论和观点,阐述了代码复用的本质及其在不同情境下的应用策略。
上篇 6 张图带你深入了解 kube-scheduler ,已经知道 kube-scheduler 的工作流程,以及如何实现自定义插件。koordinator 和 crane 都是基于Scheduler Framework 进行实现的 负载感知插件。本文不再赘述,感兴趣可以看上篇文章。
经过十余年的迭代,Go语言逐渐成为云计算时代主流的编程语言。下到云计算基础设施,上到微服务,越来越多的流行产品使用Go语言编写。可见其影响力已经非常强大。
在电商平台上,二八定律尤为明显,20%的高价值商家往往创造了80%以上的销售额。而这些商家通常拥有大量的订单、商品、出价等管理需求,推动了他们对批量操作功能的迫切需求。批量操作能够帮助这些商家高效地处理商品信息、库存和订单管理,显著提升运营效率。 通过批量操作,商户可以在短时间内对多个产品进行修改,如统一调价、调整促销策略等,从而快速响应市场变化,优化用户体验。此外,批量操作还降低了人工出错的风险,确保了数据的一致性,让商家能够更加专注于战略规划和客户关系管理。总之,对于这些商户而言,批量操作不仅是提升管理效率的关键工具,也是实现业务增长的重要保障。 在得物的商家后台中,商家的所有批量操作都承载在批处理系统(批处理中心),商家可以通过在功能页面操作批量导入或是批量导出来完成批量操作。操作后的文件将展示在下载中心。 此外,批处理中心还维护了交易后台、客服、汇金、门店等多个域的批量操作任务。截止目前,批处理中心维护了十个域的上千种批量任务,日均处理数万个相关任务,数亿条相关数据。
内存管理,对于C/C++选手来说,是个再熟悉不过的名词。malloc/free,new/delete,一旦使用不当,就会遇到mem leak,uaf,double free等等内存问题。但是对于其他高级语言例如JAVA,JS等,似乎从来不需要关心他们创建对象的死活,是这些语言可以违背计算机的规律么?当然不是,只是这些语言底层的编译器/虚拟机自动对内存进行了管理,我们一般称之为GC(garbage collect)。 GC的历史可以追溯到上世纪50年代,从诞生之初起,它就像一个幕后英雄,默默做着奉献,帮助开发者提高了开发效率。在我看来,GC就像一种内存扩大技术:我们只需要不断的向其索取,而不用担心由于物理内存限制导致的内存问题。对于GC,虽然它能自动管理内存,但是当我们对它了解的越多,越能帮助我们在日常开发工作中提高代码效率。
在App开发过程中,崩溃率是衡量App稳定性的关键指标。因为App崩溃不仅仅影响用户的即时体验,更对用户留存率构成了潜在的威胁。它如同一颗隐形的定时炸弹,随时可能引发用户体验的灾难。App崩溃分为Java Crash和Native Crash 2种。 Native Crash因为其上下文信息不完整、错误提示模糊以及难以捕捉等特性,相比较Java Crash,定位及修复更为棘手困难。作为外卖商家日常运营不可或缺的助手,饿了么商家版APP的用户体验一直是我们团队的首要考量。然而,伴随着业务迭代与设备系统的不断升级,我们的应用Native Crash率上升明显,一度从原先的万2攀升到了万6以上。为此我们启动了Native Crash的专项治理行动,致力于为用户提供一个更加可靠稳定及高效的App应用,让所有商家都能享受到无忧的数字化运营体验。