- 小程序上Typescript啦
期待已久的 Typescript 为什么要用 Typescript 关于 Typescript,可以看看以前写过的这篇《关于Typescript》。文末的故事,便是大多数情况下 Typescript 能帮我们解决的痛点。 过了很久之后,想法还是一样:Typescript 这事情,当你管理大点的应用的时候,就会感受到它的好处了。尤其涉及团队配合的时候! 当然,如果你的项目比较小,或是写个小公(工)举(具)、小 demo 的时候, store 状态管理、typescript 编译这些,除非已经很熟悉、没有额外成本的时候,才勉强适合接入。离了具体场景谈架构,都是耍(xia)流(che)氓(dan)。 为什么要用 Typescript? 变量类型不明确 之前带外包写小程序,除了代码风格不一致之外,还遇到一个会变的变量问题。 [代码]let formGroups = this.currentStep.formGroups; // 猜猜我的 formGroups 是数组数组 [[], [], []],还是对象数组 [{}, {}, {}]? let flattenFields = _.flatten(formGroups); // 不用猜了,我用个 flatten 抹平,它就一定是对象 [{}, {}, {}] 了! flattenFields.forEach(item => { if (item.fields) { // 猜猜我的 item.fields 是数组还是对象? flattenFields.push(..._.values(item.fields)); // 不用猜了,我用个 values 抹平,它就一定是对象了! } }); [代码] 当我帮忙 debug 个问题的时候,打断点看到: [图片] [图片] 喵喵喵??? [代码]# 我和外包童鞋的对话: 我:话说你这些到底是什么类型,从命名和上下文都看不出来。。 我:得去翻更细的代码。。 外包童鞋:values好像可以改一下试试 我:是数组还是对象? 外包童鞋:有的是数组,有的是对象 外包童鞋:一般带复数的是数组 我:(刀.jpg) 我:卧槽 我:你这item.fields,有时候是数组,有时候是对象,这样真的好吗 我:大哥 我:(刀.jpg)* 2 [代码] 接口协议不符合 [代码]前端:帮忙看看这个接口为什么返回失败了? 后台:你这个接口字段少了啊,这个xxx (哼哧哼哧修改) 前端:帮忙看看这个接口为啥又报错了啊? 后台:你这个字段类型不对...我协议里有写的 前端:喔不好意思我改 (哼哧哼哧修改) 前端:(泪光)帮忙看看这个接口为啥还报错? 后台:...你这字段名拼错了啊!!!! [代码] 当然,这个案例里稍微夸张了一点,一般我们都会自己一个个对着协议检查哪里不对,但是很多时候被 bug 光环环绕的时候,你就是发现不了问题。 这个时候,我们就可以用 Typescript 来管理接口啦。 [代码]interface IDemoResponse { date: string; someNumber: number; otherThing: any; } [代码] 1. 使用约定的变量的时候,会有相关提示(请忽略我的强行any)。 [图片] 2. 使用约定以外的属性时候,会报错提示。 [图片] 除此以外,还有很多很棒的用法呢~ 一键调整协议 前端和后台协议约定后,就开始各自开发了。但是,我们总会遇到各种各样的问题,可能导致我们的协议变更。 字段的变更什么的最讨厌了,例如后台要把某个接口下[代码]date[代码]改成[代码]day[代码]。一般来说前端是拒绝的,你不能说让我改我就得改,我得看看我写了多少代码,评估下工作量。 什么,全局替换?你知道使用[代码]date[代码]多普遍吗?万一我替换错了咋办?? 这时候,如果你使用了 Typescript 并定义了协议接口的话,就很好办了~ 依然是这段代码: [代码]interface IDemoResponse { date: string; someNumber: number; otherThing: any; } const demoResponse: IDemoResponse = {} as any; const date = demoResponse.date; [代码] 1. 选中需要重命名的属性。 [图片] 2. 按下F2,重新输入属性名。 [图片] 3. 按下回车,使用到的地方都会更新。 [图片] 是不是很酷~~~ 跨过 Babel 直接使用 ES6/ES7,跨过 eslint 直接使用 prettier 其实小程序工具本身也支持了不少的 ES6 新语法,不过像[代码]async/await[代码]这种,则还是需要自己搞个 Babel 来编译。 现在直接上 Typescript,连 Babel 都可以直接跳过啦。 Prettier 这里重点推荐 prettier 神器,也是团队配合的好工具啊: 项目代码没有配 eslint?导致每次拉下来的代码一大堆冲突? 团队成员使用不同的编辑器?有的没有自动格式化?导致拉下来代码还是一堆冲突? 用 standard?有些规范和实际项目不符合,但是偏偏没得改?? 偷偷地往项目里装个 Prettier,然后所有的矛盾都不见啦。不管你的代码格式多独特,最终在 Git commit 的时候,就被同化啦,而且 Prettier 的格式化也不会影响到 Git 记录。 小程序与 Typescript Typescript 编译下就可以用? 其实小程序它最终运行的还是 Javascript,那不是我们直接自己编译下就好了吗? 少年你太天真了。咱们写 Typescript 最重要的是什么呀?是 Typing 库呀! [图片] 网上开源的关于小程序和 Typescript 的工具或者脚手架也一大堆,为啥不用呢?因为小程序的 API 在不断地变化呀~ 有了官方的支持,即使小程序的 API 变了,我们也可以及时地更新呀(奸笑)~ 开箱即用的尝鲜 既然官方提供支持了,义不容辞地使用呀! 1. 首先,我们更新到最近的工具版本,然后创建项目就能看到了: [图片] 2. 创建模版,我们来看看代码长什么样子。 [图片] 我们可以看到,在 package.json 里面多了俩脚本,其实也就是将 ts 文件原地编译,然后上传代码的时候忽略掉了。 3. 仔细瞧瞧代码。 [图片] 额,好像混入了一些奇怪的东西进去,感叹号是什么鬼??? 后面问了下开发GG,是因为这里比较特殊,目前定义的文件暂时没法兼顾,等后面的版本会兼容。 [图片] 终于用上 Typescript 啦,爽歪歪~ 调整下代码结构 小项目的话,其实也不用带什么编译啦。不过如果你还想用 less,也想用 typescript,还不想看到项目下面乱糟糟的文件: [代码]index.js index.ts index.json index.less index.wxss index.wxml [代码] 我们就简单弄个 gulp,把编译加上吧~ [图片] 然后我们再把 prettier 愉快地加上。这里就不多讲解啦,大家也可以参考我的 demo 项目: wxapp-typescript-demo 对了,目前官方的 typing 库也不是非常完善,如果需要写组件、插件、小游戏的你,可能会面临一大堆的 any 冲击波噢~ [图片] 参考 小程序工具更新 结束语 Typescript 的普及度其实不算高,小程序的确是又一次给到惊喜。反观下我们自己呢?有没有被业务代码冲得找不到方向呢? 很多时候,我们总爱说写业务没啥技术提升,但真的是这样吗?我看过很棒的业务代码,从框架设计到具体的实现,开发者都对自己做了很高的要求。而写技术需求代码的,就一定会写得很好吗? “我们是业务部门,技术肯定不能比” “随便找一些能用的就好了,不要浪费时间在这些上面” “能用就行了,不要在意这些细节” … 写代码是个思考的过程,要对自己有点追求。当然项目急的时候可以理解,事后一定要把欠下的债务给还了。(较真脸)
2019-02-20 - 正式上线:服务商代接收小程序违规处罚信息api能力
服务商代接收小程序违规处罚信息api能力 当小程序存在违规行为时,平台会通过消息推送服务器通知给小程序开发者,建议小程序开发者注意及时接收相关通知进行排查整改,此通知不影响已有站内信等通知方式。 服务商可以代接受小程序违规信息,可以减少服务成本,缩短服务路径。 目前有5种违规事件通知:“1:警告;2:功能封禁;3:下架;4:账号封禁;10:页面封禁”。授权服务商的权限集:ID76-小程序违规与交易投诉管理。应用场景参考:将违规通知整合到商家管理后台可以提高信息的实时性和准确性,商家可以直接在管理后台接收到违规信息,能够更及时地处理违规问题。同时,内部客服团队也可以通过查看路径直接找到违规信息,提供更准确的引导和解答商家的疑问。 详见开发文档:https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/product/illegalEvent.html
2023-11-30 - 破解了上万个小程序,并上架的服务商-笨淘淘。以及背后的公司武汉X源举报侵权居然没有用?
武汉X源科技有限公司破解了上万个小程序,利用之前服务商的漏洞,批量注册小程序,并在昆明官渡区,沈阳,武汉,山西晋城市等地方批量注册数千家公司和个体户。破解其他开发者的心血,批量上架并霸榜。快去搜搜你的小程序有没有被破解并重新上架。关键是由于被破解的大部分是小开发者,没有申请软著,投诉并没有用。 如果你搜索下面的小程序,显示已经暂停服务,因为开发者的愤怒让他们害怕,暂停了一部分小程序,并且取消了小程序和服务商的关联,但是这远远不够,我们希望官方能惩罚他们。--10月17号晚上22:35分更新 文章分成三部分:1、破解证据;2、上架了多少产品;3、注册了多少公司。 1、部分破解证据 下面以吉祥日历和文学典读,还发现有今日菜价等等。持续更新中。 以破解小程序吉祥日历为例: [图片] [图片] 笨淘淘的套路就是批量破解,首页名字都没有改,加上视频广告和各种插屏广告,还接入第三方的谷歌广告。批量上线。 由于他们盗版的都是小开发者,并没有软著,举报代码侵权,并没有用。 更让人感觉讽刺的是这种满眼广告的小程序用户比正版小程序用户多的多! 看到有人说这个。不算,但是各位如果你们搜索过就会发现, 左上角的logo是一样, 顶部的名字是一样,UI一摸一样,甚至bug也一样,唯一的差别就是对方在顶部注入了视频广告,导致视觉上看起来有点不像! 下面这个文学典读: 对方破解后就是在顶部加视频广告,连搜索结果都一摸一样。 底部的文章顺序也一摸一样。 详情页就是添加了视频广告。 从内容到UI都是一样。 原版:干净整洁 [图片] 盗版:批量插入广告,定时弹出插屏广告,动不动就有激励视频。 而且文章和诗词的顺序一摸一样,甚至连搜索的内容都是一致的。 更恐怖的是当搜索相关关键词时候,大部分都是盗版小程序。 [图片] 对方上线了多少个类似古诗词的应用。 以下的小程序仅仅为古诗必备的前30搜出来的应用。如果考虑到长尾词。只会更多。 [图片] [图片][图片][图片][图片][图片][图片] 2、上架了多少产品; 以上仅仅是其中两个例子。还有各类群工具,转盘,扫描,记账、表情包,日历,五行穿衣,变声器,压缩,拼图,各类小游戏,游戏助手等工具。 可以看到有的小程序上甚至不加掩饰,连名字都没有改。更讽刺的是盗版的用户比正版用户多的多。 盗版小程序破千的应用比比皆是。 通过关键词霸榜,蹭名字,蹭图标混淆小程序,快速提量,并且通过官方广告+第三方广告快速变现,完全不管用户体验。点击一个按钮就要激励视频。 极大的破坏了生态。 下面以扫描王关键词,统计前70有多少个笨淘淘服务商相关的小程序。 每个小程序都是一样,并没有差异化体验,而且小程序体验非常糟糕,广告满天飞。动不动强制用户看激励视频。以下截屏,是按照顺序截图,统计了前70个小程序,其中29个是笨淘淘相关小程序,占比41%。 每个都一摸一样。 到处是广告,动不动就弹广告。 [图片] [图片] [图片] 如果搜索更加一些细分类型的关键词,结果也很多。 比如变声器,转盘。 如下图的变声器,占比达到40%。 [图片][图片] 社区有人统计出一部分,比如官渡区,然而这仅仅是一部分,还有沈阳市苏家屯区和海口部分地区。 根据他们的小程序序号,可能有40万个。 他们的小程序一开始名字都叫 “数字+试用小程序”, 下面这个小程序,是427970。如果排序正确,就是说下面这个小程序是第427970个小程序。 [图片] 如何识别这些小程序,打开小程序,更多资料,查看授权第三方服务, 只要是笨淘淘的就是他们的小程序。 2023年10月17号发现,对方已经在取消授权第三方服务。 如果要确实是否是笨淘淘的小程序,需要看到具体公司,然后到爱企查,天眼查,查看法人,如果是赵婷婷或者是陈池,八九不离十。 3、注册了多少公司 这些公司大多以武汉X源科技有限公司的老板陈池和赵婷婷为主。 要注意很多新公司没法被关联的。所以这里现实330仅仅是其中一部分。 [图片] [图片] [图片] [图片] [图片] [图片] 要注意,这里都仅仅是一部分。 很多公司并没有相互关联,如下的这一家。 [图片] 这个公司的小程序是这个画风,清一色破解批量上架小程序。 [图片] 看到社区有人反馈,但这仅仅是一部分。下面是链接。 https://developers.weixin.qq.com/community/develop/doc/00002c8efd0b70d3f6306550761800?highLine=%25E5%25AE%2598%25E6%25B8%25A1%25E5%258C%25BA 一个武汉X源科技的陈年往事。 这张图是2023年7月6号截图。 当时发现自己有打牌记分的需求。看到分数异常截图下来。没想到还有用。 当时是武汉X源做了个打牌记账工具和排名第一个的“打牌记账”UI一摸一样,“打牌记账|计分器”短时间内就排名靠前,并且评分 5.0分, 而打牌记账 分数3.6分。今天,已经完全找不到武汉X源的“打牌记账”小程序了,不知道当时收到官方什么惩罚。 但是,笨淘淘系上线了一系列新的“打牌记账”类应用, UI已经和当初抄袭的完全不同。如果被逃过,估计他们就会给破解的小程序套上新的UI。摇身一变。 再次希望对方能得到应有的惩罚。 [图片] 如果批量破解上架举报没有用,那大家开发什么,批量上架就行了。请官方严肃处理这个服务商。严惩相关人员。
2023-10-30