前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Js一句顶Java一万句

Js一句顶Java一万句

作者头像
我不是码神
发布2022-07-28 14:31:04
3120
发布2022-07-28 14:31:04
举报
文章被收录于专栏:流媒体技术

当然这是一句夸张的标题,下面用真实案例说明一下虽然顶不了一万句,顶个一百句是没问题的。

需求:在ZooZeeper中获取一个配置,然后解压缩并生成一个对象列表。

这个需求很简单,怎么实现我不管,明天上线!

先看java是如何实现的(主要实现代码,主要涉及三个大类和若干小类)

这个不重要

对字符串进行按逗号分隔,并生成对象

从zookeeper中获取数据,调用解码

对起始字符判断并调用解压缩

解压缩

生成具体对象,并赋值属性

接下来是js的实现:(为了突出对比效果,省略了部分判断)

代码语言:javascript
复制
 getProviders(serviceKey) {
        const DEFAULT = '_default_'
        return this.getData(SERVICES2, serviceKey.contract, serviceKey.implCode || "default", 'providers')
            .then(x => util.promisify(zlib.inflate)(Buffer.from(x).slice(3)))
            .then(x => x.toString().split(',')
                .map(x => querystring.parse(x))
                .map(({ s, h, p, ldc, c, g, v, ct }) => ({ schema: s, host: h, port: +p, ldc: ldc || DEFAULT, region: c || DEFAULT, group: g || DEFAULT, version: v, createTime: +ct })))

没有对比就没有伤害。

总结:

Java中的逻辑会分散到若干的不同的类中,某个类总管一些事情,这叫面向对象编程,思维是割裂的。js是多范式编程语言,可以灵活使用函数式、面向过程、面向对象等不同的方式结合使用,可以将一条逻辑尽量集中在一起或者一个句话中。函数所用到的变量不需要存放在具体的某个类的属性中,也就不需要管理那些类生成的引用,以及通过传递对象引用来间接访问你需要用到的数据。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-01-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档