- 博客(78)
- 收藏
- 关注
原创 bff服务编排
你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:撤销:Ctrl/Command + Z重做:Ctrl/Command + Y加粗:Ctrl/Command + B斜体:Ctrl/Command + I标题:Ctrl/Command + S
2023-06-13 15:50:20 554
原创 代码优化准则
1.lambda的长度多于几行(它的行为也不是一目了然)的话,那你还是应该用方法引用来指向一个有描述性名称的方法,而不是使用匿名的lambda。你应该以代码的清晰度为准绳。–《java实战》13页
2022-04-17 11:06:52 168
原创 what is a schema?作用与位置
if you have ever used XML Schema, RelaxNG or ASN. you probably already know what a schema is and you can happly skip along to the next section. if all that sounds like gobbledygook to you, you have come to right place. To define what JSON Schema is, we sho
2022-03-05 12:12:53 304
原创 分页怎么做
https://jelly.jd.com/article/6006b1045b6c6a01506c87e9#https://github.com/Tomorrowxxy/JDHot/blob/master/201706/%E6%B5%81%E5%BC%8F%E5%88%86%E9%A1%B5%E6%96%B9%E6%A1%88%E6%8E%A2%E7%B4%A2.pdf
2022-03-04 16:12:22 118
原创 前台导航栏与后台筛选项的映射
https://jishuin.proginn.com/p/763bfbd58a34https://www.zhihu.com/question/33703235
2022-03-03 17:40:46 83
原创 多端融合调研
https://mp.weixin.qq.com/s/StTpNsXRKQCLwQMxPaM2Nwhttps://tech.meituan.com/2021/05/06/bff-graphql.html
2021-12-27 10:15:49 86
原创 如何软件设计
先思考如何给业务建模,如何将需求翻译为类,如何给类之间建立交互关系,而完成这些工作弯曲不需要考虑错综复杂的处理流程。当我们有了类的设计之后,然后再像搭积木一样,安装处理流程,将类组装起来形成整个程序。这种开发模式、思考问题的方式,能让我们在应对复杂程序开发的时候,思路更加清晰。3个点https://time.geekbang.org/course/detail/100007001-72976总体架构数据模型接口模型...
2021-10-31 17:09:51 163
原创 降级设计Degradation
降级设计,本质是为了解决资源不足和访问量过大的问题。当资源和访问量出现矛盾的时候,在有限的资源下,为了能够抗住大量的请求,我们就需要对系统进行降级操作。也就是说,暂时牺牲掉一些东西,以保障整个系统的平稳运行。一般来说,我们降级需要牺牲掉的东西有:降低一致性。从强一致性变成最终一致性。停止次要功能。停止访问不重要的功能,从而释放出更多的资源。简化功能。把一些功能简化掉,比如,简化业务流程,或是不再返回全量数据,只返回部分数据。降级熔断:如何屏蔽非核心系统故障的影响雪崩是如何发生的局部故障最终导致
2021-10-17 18:00:16 200
原创 重试设计:超时时间和重试次数怎么设置比较合理
当我们把单体应用微服务化,本来一个进程内的函数调用就成了远程调用,这样就会涉及到网络上的问题。网络上有很多各式各样的组件,如:DNS服务、网卡、交换机、路由器、负载均衡等设备,这些设备都不一定是稳定的,在设计传输的整个过程中,只要一个环节出了问题,那么都会导致问题。所以我们需要一个重试的机制。但是,我们需要明白的是,“重试”的语义是我们认为这个故障时暂时的,而不是永久的,所以,我们会去重试。所以,我们设计重试的时候,需要定义什么情况下需要重试,例如,调用超时、被调用端返回了某种可以重试的错误(如繁忙中、流
2021-10-17 11:14:35 3376
原创 阿里巴巴java规范疑问
10.【强制】日志打印时禁止直接用 JSON 工具将对象转换成 String。说明:如果对象里某些 get 方法被覆写,存在抛出异常的情况,则可能会因为打印日志而影响正常业务流程的执行。正例:打印日志时仅打印出业务相关属性值或者调用其对象的 toString()方法。虽然能看懂说明,但是什么情况下会在get中抛出异常,有没有例子不过个人认为用toString()比较好,因为toString()只是简单的提供对象的文本展示,而JSO能把对象转化为字符串,以后还可以将字符串反序列化取回这个对象。就是使用
2021-10-11 16:02:00 326
原创 skywalking什么时候使用跨线程传递
两个疑问:1.对于异步rpc调用,本身就可以在调用链中,难道异步RPC不算跨线程吗2.对于某个方法中的异步,本来就不支持,除非加载可选插件那什么时候使用这个呢
2021-09-25 21:00:56 427
原创 skywalking不支持httpclient5
项目中链路调用时只要时http的调用,在skywalking上都没有显示,是因为skywalking的javaagent不支持httpclient5,换成httpclient4.3后会展示出http类型的调用信息,可在https://skyapm.github.io/document-cn-translation-of-skywalking/zh/8.0.0/setup/service-agent/java-agent/的支持列表中查看。...
2021-09-25 17:01:40 301
原创 vue学习
学习中的问题:vue中的模板语法是什么意思:https://www.dazhuanlan.com/2020/01/31/5e33bd7085f57/
2021-05-06 17:21:28 98
原创 REST
全称是Representational State Transferrepresentational :代表的;具象派的ADJIn a representational painting, the artist attempts to show things as they really are.在具象派绘画中,作者试图展示出事物真实的一面。His painting went through both representational and abstract periods.他的绘画风格经历了
2021-04-25 09:20:10 90
原创 周会怎么开
https://www.barretlee.com/blog/2019/05/21/weekly-report/whyhttps://www.zhangxinxu.com/life/2018/10/quick-slow-8/http://www.mdjlbj.com/info/infoshow/id/2267https://zhuanlan.zhihu.com/p/337374733https://wenku.baidu.com/view/30e88f97dd88d0d233d46a02.html
2021-04-22 21:40:59 117
原创 app版本升级后端兼容
https://www.huaweicloud.com/articles/f2c2bc34ed9e99e037bae28b68a0b77c.html
2021-04-16 17:07:39 908
原创 java组合与继承
可以说达到的结果是相同的,但是场景不同,要采用不同的方式。最近看同事代码,为了给前端返回两个类中的字段,但是两个类没有丝毫关系,一个类的意义是用户信息,一个类的意义是活动信息,但是他采用 public 活动信息 extend 用户信息 这样的方式给前端返回了所有字段,这种场景下应该用组合public 响应结构{活动信息用户信息}完了把这块的理论再看一下...
2021-03-24 16:24:42 91
原创 日历应用的开发
现在日程也作为各APP上的必备功能了,几家大厂商的日历确实不错,都有开放平台飞书 https://open.feishu.cn/document/ukTMukTMukTM/ukTM3YjL5EzN24SOxcjN谷歌日历https://developers.google.com/calendar/quickstart/java
2021-03-24 08:43:11 265
原创 分布式锁
最近看代码有点触目惊心,我以前在大厂的,各种公共需求都有相应中间件,现在在小公司,发现延时任务用定时器实现,业务逻辑往往写在sql里(我们是面向C端的互联网产品),惊讶我的是分布式锁用setIfAbsent实现,任重而道远,要做的东西,能做的东西,太多了,接下来看下redis分布式锁的实现,再把redis雪崩穿透整理一遍...
2021-03-23 16:41:49 57
原创 延时消息
之前一直使用rocketmq的延时队列来处理延时任务,来到新公司后,用的是rabbitmq(没有自带延时队列),延时任务是通过定时扫描job去实现,我就很奇怪,我觉得延时队列也不算技术含量很高的技术,怎么连这个都不实现,后来一查,确实如果mq不直接支持的话,其他方式都不是很容易的实现,以后有时间把这块东西研究一下,不知道大厂是怎么做这块的,是集成到消息队列中的吗...
2021-03-23 15:36:43 64
原创 exist vs in
今天看其他同事写的代码,我们的产品是线上发起聚会,线下参与,有一个场景是查询所有活动,但是对于活动类型是指定好友的,或者是私邀的,只能给指定的用户或者私邀的用户看见,也就是大家每个人的搜索结果是不一样的,暂时直接用mysql,并没有用搜索引擎,所以在mysql中查活动时还需要根据活动类型去关联用户和活动关系的数据,同事使用的是select * event where case when 活动类型 != 公开 then exist(select * from 用户活动关系表 where 活动id = 活动表的
2021-03-23 10:24:16 69
原创 meetup类型
最近公司项目在做线下聚会相关的产品,发起活动时涉及到一个活动类型,有三个选项:公开,指定好友可见,私邀,而且活动列表需要根据当前用户是否是活动指定的参与用户或私邀用户来展示可以看到的活动,比如发起活动时对该活动邀请张三,在张三的活动列表中就有这个活动,所以查询活动的sql需要关联用户与活动的关系,比较恶心,然后我就去体验eventbrite.com,感觉它们做的比较符合逻辑,发起活动时分为两大类,1.public 2 private public的活动会出现来搜
2021-03-23 08:34:20 113
原创 无限加载
虽然使用过很多的feed流产品了,但是无限加载这个名词还是第一次听概念分析朋友圈分页,按照时间倒序查10条,查出来数据后按照权限过滤,比如什么拉黑,删除等等,这样的话,返回给客户端的数据和分页数量不一致,但是我个人认为应该是这样的,而不是把各种权限信息和动态表连接起来查询,然后可以返回固定数量的动态,大厂肯定不会这么做,权限信息和动态信息不是一个数量级,不能连表,微博也有佐证:https://open.weibo.com/wiki/%E5%BE%AE%E6%9C%8D%E5%8A%A1%E5%B8%
2021-03-18 10:46:55 239
原创 缓存数据一致性问题
https://mp.weixin.qq.com/s?__biz=MjM5MDE0Mjc4MA==&mid=2650996610&idx=1&sn=f5f59cfe8ab83613600b9efc0906d5c5&chksm=bdbf07d18ac88ec7abd037164bb4fa378e8ecbe78eed81c969e1d7ac5afd4812274f87c06848&scene=21#wechat_redirect这篇文章内存层中涉及了微信如何处理一致性问
2021-03-17 16:34:34 83
原创 微信朋友圈技术文章收集
https://mp.weixin.qq.com/s?__biz=MzIxMzEzMjM5NQ==&mid=2651036305&idx=2&sn=ff36048eae686e6d84fc449de7a1a8c1&chksm=8c4c4f95bb3bc6839628a53314132684ba2c1410e8dd170c15c437861435aa7c675f39c9a977&scene=27#wechat_redirecthttps://mp.weixin.qq.
2021-03-17 16:33:39 391
原创 2021-03-17
现在的互联网产品离不开用户画像,用户画像离不开用户标签,后需有时间好好看下这一块,作为技术如何实现,并且需要提前具备的一些思维http://www.woshipm.com/user-research/2465215.htmlhttp://www.woshipm.com/pd/3428497.html神策数据...
2021-03-17 11:51:53 42
原创 git初步介绍
git和其他版本控制系统的主要区别在于git对待数据的方式。从概念上来说,其他大部分系统以文件变更列表的方式存储信息,这类系统(CVS,Subversion,Perforce,Bazaar等等)将他们存储的信息看作是一组基本文件和每个文件随时间逐步积累的差异(他们通常称作基于差异的(delta-based)的版本控制)。存储的是每个文件与初始版本的差异。Git不按照以上方式对待或保存数据。反之,Git更像是把数据看作是对小型文件系统的一系列快照。在Git中,每当你提交更新或者保存项目状态时,它基本上就
2021-03-11 17:08:41 118
原创 git忽略文件
一般我们总有些文件无需纳入git的管理,也不希望他们出现在未跟踪文件列表。通常都是些自动生成的文件,比如日志文件,或者编译过程中创建的临时文件等。在这种情况下,我们可以创建一个名为.ignore的文件,列出要忽略的文件的模式。先看一个例子:$ cat .gitignore*.[oa]*~第一行告诉Git忽略所有以.o 或者.a结尾的文件。一般这类对象文件和存档文件都是编译过程中出现的。第二行告诉git忽略所有名字以波浪符(~)结尾的文件。此外,可能还需要忽略log,tmp,或者pid目录,以及自动
2021-03-11 15:42:07 238
原创 git add后又修改,如何撤销最后的修改?
比如Readme文件,修改其中内容,运行git status$ git statusOn branch masterYour branch is up to date with 'origin/master'.Changes not staged for commit: (use "git add <file>..." to update what will be committed) (use "git restore <file>..." to discard
2021-03-11 13:58:36 1449
原创 APP进程关闭后,服务端如何推送消息到客户端
https://cloud.tencent.com/developer/article/1198269
2021-03-09 20:35:18 2223
原创 使用youtube语音识别功能给视频加自动字幕
起因自己英文比较差,国外大佬的演进听不清楚,也没有字幕,虽然有PPT,但还是想完整的了解下。于是在想自己能用哪种语音识别的工具把英文字幕加上。最近一直在youtube上看视频,发现youtube可以把字幕转换成各国语言的字幕。youtube,也属于google,由于对外国技术的盲目崇拜,就没有再去了解其他的能给视频加自动字幕的方法,有其他更好更简单的方法的朋友们,欢迎在留言区留言,感谢。youtube自动字幕的介绍:使用自动字幕功能字幕是确保观看者能看懂您的内容的一种有效途径。YouTube 可以
2021-03-05 14:17:07 9260 2
原创 系统学习Feedl流技术
1.这个技术出现的背景、初衷和要达到什么样的目标或是要解决什么样的问题Feed,就是我们常常看到的“动态”、“新鲜事”,是一种信息流。当用户与一些内容源建立了硬链接后,这些内容产生的动态,就会源源不断地流向用户,多个内容源产生的动态会被聚合后呈现在用户面前。包括社交动态的信息流,也有图文资讯的信息流,短视频信息流。当你加入一个社交网络,就成了这个网络中的节点之一,其他节点的风吹草动你就想了解一下,同时别的节点也知道你的风吹草动。这个社交网络中任何一个节点“动一下”,都会以feed的形式在整个网络中荡
2021-03-04 10:55:20 421
原创 专业术语
profile韦氏词典:a representation of something in outline;especially a human head or face represented or seen in a side viewan outline seen or represented in sharp reliefa side or sectional elevation : asa: a drawing showing a vertical section of the grou
2021-03-02 14:44:38 167
原创 社交产品的设计
设计twitter :https://github.com/donnemartin/system-design-primer/blob/master/solutions/system_design/twitter/README.md微信朋友圈 :https://www.infoq.cn/article/three-people-background-team-and-billions-daily-release微信IM:https://www.infoq.cn/article/the-road-of-t
2021-02-24 10:10:27 160 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人