从GitHub上看到了编程语言八年变迁史
|
好了,我相信你已经知道这个系统是用来干嘛的了。那为什么要有这个系统呢? 为什么要有消息管理平台? 可以说,只要是做APP的公司几乎都会有消息管理平台。 我们很多时候都会想给用户发消息:
那么问题来了,发消息困难吗?发消息复杂吗? 显然,发消息非常简单,一点儿也不复杂。 发短信无非就是调用第三方短信的API、发邮件无非就是调用邮件的API、发微信类的消息(手Q/小程序/微信服务号)无非就是调用微信的API、发通知栏消息(Push)无非就是调APNS/手机厂商的API、发IM消息也可以使用云服务,调云服务的API... 可能很多人的项目都是这么干的,无非发条消息,自己实现也不是不可以。 但这样会带来的问题就是在一个公司内部,会有很多个项目都会有「发送消息」的代码实现。假设发消息出了问题,还得去自己解决。 首先是系统不好维护,其次是没必要。我一个搞广告的,虽然我要发消息,凭什么要我自己去实现? 我们在写代码时,可能会把公用的代码抽成方法,供当前的项目重复调用。如果该公用的代码被多个项目使用,可能我们又会抽成组件包,供多个项目使用。只要该公用的代码被足够多的人去用,那它就很有可能从组件上升为一个平台(系统)级的东西。 如何实现消息管理平台? 回到消息管理平台的本质,它就是一个可以发消息的系统。那怎么设计和实现呢?我们从接口说起吧。 接口设计 消息管理平台是一个提供消息发送服务的平台,如果让我去实现,我的想法可能是把每种类型的消息都写一个接口,然后把这些接口对外暴露。
所以,可能会有以下的接口: 自上而下的代码分析 最近,刚好因为项目的关系,需要分析某一系统的代码行数。通过一系列的复制 + 粘贴和 Excel 操作,我大致有了一套 DIY 的自动化分析方案:自上而下的代码分析。当然了,这肯定不是我先发明的,在某处一定有论文和代码、工具。只是我依据自己的想法和需求,完善了一下现有的方案。要知道,已经有大量地代码分析工具了。 其实总体的思路非常简单:项目行数 -> 包行数 -> 修改历史 -> 引用分析。 具体来说,就是:
唯一麻烦的地方就是做一些自动化。所以,这些功能就被我完善到 Coca 里了,笑~。 好了,让我们来看个示例。这里以开源项目 intelli-community (即 IDEA 的社区版)为例。 项目级代码行数 市面上已经有大量的行数统计工具,大家可以自行寻找。这里我用的是 Coca (GitHub:https://github.com/phodal/coca ),集成了三方用 Go 实现的 CLOC 统计功能。
首先呢,我们要实现的是分析整个项目的行数情况 coca cloc . : (编辑:盐城站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
