Skip to content

Latest commit

 

History

History
505 lines (283 loc) · 23.5 KB

read_2019年1月_阅读日志.md

File metadata and controls

505 lines (283 loc) · 23.5 KB

目录:

2019年1月份阅读日志

2019-1-31阅读日志

//

----------Android墓碑机制 - 简书 https://www.jianshu.com/p/f5be35aaed32 墓碑机制是手机操作系统中的一个程序运行规则。说简单点,就是手机上一个任务被迫中断时(如有电话打入),系统记录下当前应用程序的状态后,(像把事件记录在墓碑上一样),然后中止程序。当需要恢复时,根据“墓碑”上的内容,将程序恢复到中断之前的状态。这样的一种机制就是“墓碑机制”

//

----------日志服务接入方式之log producer library-云栖社区-阿里云 https://yq.aliyun.com/articles/55966

producer.setProjectConfig(new ProjectConfig("your project 2","endpoint", "your accesskey id", "your accesskey","your sts token"));

 producer.send("project 1", "logstore 1", "topic","source ip", logGroups.get(rand),
new CallbackSample("project 1", "logstore 1","topic", "source ip", null, logGroups.get(rand), producer));

//

----------什么是日志服务 - 蚂蚁金服金融科技 https://tech.antfin.com/docs * 2/48869 查询与实时分析(Search/Analytics) 实时索引、查询分析数据数据。

查询:关键词、模糊、上下文、范围 统计:SQL聚合等丰富查询手段 可视化:Dashboard + 报表功能 对接:Grafana,JDBC/SQL92

用途:DevOps/线上运维,日志实时数据分析,安全诊断与分析,运营与客服系统。

//

----------蚂蚁 RPC 框架 SOFA-RPC 初体验 - 简书 https://www.jianshu.com/p/d986dd9b1e63

<sofa:service ref="helloSyncServiceImpl" interface="cn.think.in.java.provider.HelloSyncService">
    <sofa:binding.bolt/>
  </sofa:service>
同时这个接口的协议是 bolt,也就是阿里的 RPC 网络通信框架 solt(基于 Netty 的最佳实践)。

//

----------一个项目中的不同业务应该使用几个redis db库 - 开源中国 https://www.oschina.net/question/3452433_2282038 我们的项目现在使用redis作为多种业务的数据存储

我们的做法是将不同的业务存储在不同的db中。比如Tonken存储在db0,点赞数据在db1,缓存在db2。这种做法的好处是不同的业务数据可已完全分开。

但是在高并发下这种方式出现了问题。在核心存取redis的类中要不停的切换db,但是在高并发不同db读取时会出现脏读的情况。

后来咨询了一下其他公司的人,他们表示要将所有的数据都存在db0中,使用给key加前缀的方式来区分业务。其他的db只用来做备份使用。

//

----------redis db0-15 的概念 - zhuchunyan_aijia的博客 - CSDN博客 https://blog.csdn.net/zhuchunyan_aijia/article/details/79793150 redis有没有什么方法使不同的应用程序数据彼此分开同时又存储在相同的实例上呢?就相当于mysql数据库,不同的应用程序数据存储在不同的数据库下。

redis下,数据库是由一个整数索引标识,而不是由一个数据库名称。默认情况下,一个客户端连接到数据库0。redis配置文件中下面的参数来控制数据库总数:

databases 16

可以通过下面的命令来切换到不同的数据库下

select 2

//

----------Java中对象的大小 - Alvin_CSDN_blog的博客 - CSDN博客 https://blog.csdn.net/Alvin_CSDN_blog/article/details/77427854 在java的栈中,一个对象只对应了一个4btye的引用,所有上面的ob对象的大小就是8byte(堆中)+4byte(栈中) 所有的Java非基本类型的对象都需要默认继承Object对象,因此不论什么样的Java对象,其大小都必须是大于8byte

2019-1-28阅读日志

//

----------GraphQL的前提 - 酷辣虫 - CoLaBug.com https://www.colabug.com/4378062.html schema 一开始接触Graphql(后称:GQL),一定是学习关于schema相关的知识,我想对于前端的同学这方面的东西也是最有新鲜感的。

资料上给的例子,都非常的简化,不管你读起来感觉多么的实战,但不得不承认依然十分的简单。

但实际项目中,你会遇到复杂得多的场景,并不是说GQL无法支持复杂场景,而是想说场景复杂后,会要求开发者把控schema的能力要十分的强。

这让我不禁想到了领域模型的概念,不过话说回来,即便是现在早已普世的RESTful,真的用在项目里,也依然要搞清楚它本质的概念(面向资源)

殊途同归,最终都是要先消化业务,抽象模型,再来谈最基本的语法

只不过,GQL的schema中为模型里的很多对应概念都提供了对应的元素:edges, nodes。

不知道你有深究过GQL名字的含义么?其中 graph 到底表达了什么含义? ![](https://img.colabug.com * 2018/09/85bcfda474fe25044516a88407cee234.png) 了解 Neo4j 这种基于图理论的数据库,就很容易找到对应所以,我们的GQL也基于图的概念哟上图中每个圆点就代表了nodes,每个灰色的线条就代表了edges。

延续这种思路,套用在真实项目中,就需要你有深厚的领域建模功力,甚至也要了解服务拆分和部署相关的知识,没错,要求你是架构师啦。

呃,至少是业务专家吧。

当然,如果你并不完全遵守规则也可以(就好像大多数生成自己是Rest的接口,其实仅仅是http+json的rpc而已)~~

//

----------ApolloGraphQL技术栈概览:如何将所有的功能组合起来 - API接口_数据接口开发_免费数据调用-中诺数据 https://www.cnnuo.com/Show/index/cid * 24/id * 2943.html 主要有三个因素使得 GraphQL 在与其他 API 技术的对比中脱颖而出:

GraphQL 有一个很好的查询语言,这是用来描述数据需求(data requirement)的好办法,另外它还具有一个定义良好的模式,它暴露了 API 的能力(API capability)。在主流技术中,GraphQL 是唯一一个同时指定了等式两侧的主流技术,它的所有好处都来源于这两个概念的相互作用。

GraphQL 能够帮助我们将 API 的消费者与提供者解耦。在像 REST 这种基于端点的 API 中,所返回数据的形式是由服务器决定的。在 GraphQL 中,数据的形式则是由使用它的 UI 代码所决定的,这样的话会更加自然,能够让我们聚焦于关注点分离,而不是技术。

GraphQL 查询是与使用它的代码息息相关的,所以我们可以将查询视为一个数据获取单元。GraphQL 预先了解 UI 组件的所有数据需求,因此能够实现一些新类型的服务器功能。比如,在某个查询的底层 API 调用中,使用批处理和缓存,这些调用代表了 UI 部分所需的数据,借助 GraphQL 来实现就会变得非常容易。

//

----------ApolloGraphQL技术栈概览:如何将所有的功能组合起来 - API接口_数据接口开发_免费数据调用-中诺数据 https://www.cnnuo.com/Show/index/cid * 24/id * 2943.html Facebook 将 GraphQL 作为开源项目发布已经有两年的时间了。从那时算起,社区就以指数级的速度在增长,现在成千上万的公司在生产环境中使用 GraphQL。

//

----------阿波罗发动机| 阿波罗发动机 https://www.apollographql.com/docs/engine/ Apollo Engine是一个GraphQL工具包,使您能够理解,优化和控制GraphQL服务。

引擎结合了我们的架构注册表和性能报告中的信息,以阐明GraphQL服务的状态,并提供基本功能,如架构管理,使用分析和警报。

您可以使用任何GraphQL服务器开始使用Apollo Engine,但是将Engine与Apollo Server配对可以立即控制您的GraphQL架构。

2019-1-26阅读日志

//

【钉钉webhook具体使用教程】----------钉钉开放平台 https://open-doc.dingtalk.com/docs/doc.htm?spm=a219a.7629140.0.0.tRwLqm&treeId=257&articleId=105735&docType=1 使用自定义机器人 获取到Webhook地址后,用户可以使用任何方式向这个地址发起HTTP POST 请求,即可实现给该群组发送消息。注意,发起POST请求时,必须将字符集编码设置成UTF-8。

当前自定义机器人支持文本(text)、连接(link)、markdown(markdown)三种消息类型,大家可以根据自己的使用场景选择合适的消息类型,达到最好的展示样式。具体的消息类型参考下一节内容。

自定义机器人发送消息时,可以通过手机号码指定“被@人列表”。在“被@人列表”里面的人员,在收到该消息时,会有@消息提醒(免打扰会话仍然通知提醒,首屏出现“有人@你”)

//

----------各功能模块说明 - Yearning_guide https://guide.yearning.io/used/ 审核工单并执行 工单采取的是多线程异步执行的方式。所以就算关闭网页工单一样会执行。获得执行结果需手动点击刷新按钮获取数据

2019-1-25阅读日志

----------记一次诡异的故障排查经历 - 云+社区 - 腾讯云 https://cloud.tencent.com/developer/article/1193722 管理员通过Jenkins调用“发布程序(代号varian,以下简称varian)”,发布程序会进行一系列的初始化操作,完成后生成Docker镜像上传到Docker仓库,容器集群更新镜像,用户通过负载均衡访问我们的容器集群。 ![enter image description here](https://ask.qcloudimg.com/http-save/yehe-2933803/m7793rynl9.jpeg?imageView2 * 2/w/1620)

2019-1-24阅读日志

----------表结构对比_数据管理_用户指南(RDBMS)_数据管理-阿里云 https://help.aliyun.com/document_detail/47667.html?spm=a2c4g.11186623.6.617.255c3e33Ua8WtV

==========

2019-1-23阅读日志

----------强力推荐:Atom入坑必备插件 - 进击的码农 - CSDN博客 https://blog.csdn.net/m13026178198/article/details/52843849

1.Sync Settings 搭配github,同步你的atom插件信息,配置信息,让你轻松实现一台电脑配置,多台电脑共享。

2.Emmet 能够基于Emmet语法产生HTML,做过前段开发的不会不知道这个插件吧。好用到哭。

6.Minimap 这个插件不用介绍了吧,从sublime开始,一直使用。从未遗忘。

7.color-picker 取色器,让你在代码编写去直接打开取色板,拾取颜色。

8.vim-mode vim死忠粉必备插件。

9.git-plus 让你轻松的在编辑器里管理你的git项目,各种常用git功能,信手拈来。

==========

----------编码神器Atom使用详解 - Haima的博客 - CSDN博客 https://blog.csdn.net/u010924692/article/details/78245850

Atom算是一款web app,源码都是 CoffeeScript 写的,连界面都可以用 CSS来自定义,扩展可以用JS开发,完全可以深度定制打造自己的IDE。Sublime基于Python,两者扩展性都非常强。

==========

----------求atom自动保存插件!!! - 灰螳螂的回答 - SegmentFault 思否 https://segmentfault.com/q/1010000008330387/a-1020000008330637

用过atom真没有sublime好用。 sublime更轻量。可以借助livereload插件实现自动刷新。

==========

----------7040210/SuperBoot: 随着技术日新月异,新技术新平台不断出现,对现如今的开发人员来说选择快速高效的框架进行项目开发,既能提高产出,又能节约时间。对目前节奏越来越快的互联网大环境来说,这是个必然的趋势,也是唯一的选择,针对目前的平台技术难度和口碑。本框架无需开发即可实现服务注册、服务发现、负载均衡、服务网关、配置中心、API管理、分布式事务、支撑平台、集成框架等功能 https://github.com/7040210/SuperBoot

随着技术日新月异,新技术新平台不断出现,对现如今的开发人员来说选择快速高效的框架进行项目开发,既能提高产出,又能节约时间。对目前节奏越来越快的互联网大环境来说,这是个必然的趋势,也是唯一的选择,针对目前的平台技术难度和口碑。本框架无需开发即可实现服务注册、服务发现、负载均衡、服务网关、配置中心、API管理、分布式事务、支撑平台、集成框架等功能

数据流程图

客户端->> 网关:提交请求 网关->> 验证身份:身份验证 验证身份-->>客户端:验证未通过 验证身份->>Redis:写入用户信息 网关->> 业务处理:提交业务请求数据 Redis-->>业务处理:获取用户信息 业务处理->>客户端:返回结果数据

网关->>注册中心:注册服务 微服务->>注册中心:注册服务 配置中心->>注册中心:注册服务 配置中心->>网关:获取配置 配置中心->>微服务:获取配置

客户端->>网关:提交请求 Note right of 网关: 验证用户身份、生成用户Redis信息 网关->>微服务:获取用户信息 微服务->>网关:返回用户信息 网关->>客户端:返回结果数据

==========

----------我的前端故事----我为什么用GraphQL - F-happy - 博客园 https://www.cnblogs.com/fuhuixiang/p/7479276.html

后来问过后端的同学才知道是为了兼容 web 端的需求,一个接口需要同时为多个平台提供内容,这大大增加了接口的返回内容和处理逻辑,而且需求也经常改动,所以还不如把能用到的字段全都输出出来,免得每次改需求都要前后端一起联动。

==========

----------芋道源码 —— 纯源码解析博客 http://www.iocoder.cn/

愿半生编码,如一生老友!

==========

----------Prisma官方中文文档 | 面向未来的后端框架 https://prisma.1wire.com/

连接数据库和任何前端应用 可看作类似Sequelize和Mongoose的ORM层和Graphql技术的结合,能通过Prisma高性能引擎处理数据库的繁杂操作并提供数据给前端应用。

面向未来 RESTful将死,Graphql长存。简单易用且性能强劲,更适应移动端、小程序及React、Vue等现代Web框架

==========

----------PRISMA基础:入门一 - 简书 https://www.jianshu.com/p/ac5b40a16445?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

要实际使用这些操作,您需要一种将请求发送到服务API的方法。由于该API通过HTTP公开,因此您可以使用curl或Postman等工具与之交互。但是,GraphQL实际上具有更好的工具:GraphQL Playground,一种交互式GraphQL IDE。

要打开GraphQL Playground,可以再次使用Prisma CLI。只需在hello-world目录中运行以下命令:

query {
  users(where: {
    name_contains: "ra"
  }) {
    id
    name
  }
}

==========

----------30分钟理解GraphQL核心概念 - 狮乐园 - SegmentFault 思否 https://segmentfault.com/a/1190000014131950

偏向服务端 偏向服务端方向的话,除了需要进一步了解GraphQL在某个语言的具体生态外,还需要了解一些关于缓存、上传文件等特定方向的东西。如果是想做系统迁移,还需要对特定的框架做一些调研,比如graphene-django。

如果是想使用GraphQL本身做系统开发,这里推荐了解一个叫做prisma的框架,它本身是在GraphQL的基础上构建的,并且与一些GraphQL的生态框架兼容性也较好,在各大编程语言也均有适配,它本身可以当做一个ORM来使用,也可以当做一个与数据库交互的中间层来使用。

偏向客户端 偏向客户端方向的话,需要进一步了解关于graphql-client的相关知识,我这段时间了解的是apollo,一个开源的grapql-client框架,并且与各个主流前端技术栈如Angular、React等均有适配版本,使用感觉良好。

同时,还需要了解一些额外的查询概念,比如分页查询中涉及的Connection、Edge等。

==========

----------GraphQL | 一种为你的 API 而生的查询语言 http://graphql.cn/

获取多个资源 只用一个请求 GraphQL 查询不仅能够获得资源的属性,还能沿着资源间引用进一步查询。典型的 REST API 请求多个资源时得载入多个 URL,而 GraphQL 可以通过一次请求就获取你应用所需的所有数据。这样一来,即使是比较慢的移动网络连接下,使用 GraphQL 的应用也能表现得足够迅速。

图1

==========

2019-1-21阅读日志

豆瓣阅读:佳倩(冰岛生活)/(脊椎s弯曲)上海生活/freelance(上海闵行)

----------我身边优秀的斜杠青年,都有一个共同特征 https://baijiahao.baidu.com/s?id=1612992957804963478&wfr=spider&for=pc

巴菲特曾经说过:人生就是不断抵押的过程,为前途我们抵押青春,为幸福我们抵押生命。

老爷子这句话的前提是:你得有东西可抵押。否则,你能抵押的就只有时间、青春、生命了。

但这里有个大坑就是:过早地消耗精力在换钱上面,只能换回小钱,而不是换势能、名声、专业。

而你的时间想换大钱,几乎无一例外,都要用你在一个领域内的品牌背书去换。

在毕业后的前五年搞什么斜杠,简直就是拿自己的前途去抵押换钱。人的精力是有限的,做好了副业做不好主业,两三个身份一起做,只会消磨了你在所有领域的口碑。

//

什么叫做定位?

“现代营销教父”的菲利普·科特勒解释:定位就是你最有价值的地方

说白了,就是你的最强项。

就像我们一聊天就会想起微信,一买东西就会打开淘宝,一订餐就打开饿了么,我们基本上不会通过第二个app来实现大而全的功能。

其实做人也是一样。

在自己强大到面面俱到之前,必须有一样拿得出手的、经过10000个小时精锤百炼的技能。那项技能,别人已经可以尊称你为“专业”。

如果你连一项专业都做不到,没有人能相信,你好几项也能做到专业。这不符合常理。

单杠能力要强,强到别人无可替代,那是开启斜杠的一个基本前提。

==========

----------斜杠青年,玩有所成的开挂人生! https://baijiahao.baidu.com/s?id=1611416934057004763&wfr=spider&for=pc

这世界很大,斜杠很多。

// 每次刷开朋友圈,除了日常分享,现在的朋友圈反而更像是一个推销平台,就看着那十八般武艺,各显着神通。

没有代购的的朋友圈哪还算是个朋友圈,除了销售化妆品、日常用品,更有新娘跟妆、私人订制摄影、幼儿特产教学等等这种卖艺类的,实在没有渠道出国代购或者一技之长的,也会批发点儿特产之类的偶尔卖卖。

// 作为一个曾经的斜杠青年,现在的斜杠中年,我只想对那些跃跃欲试的青年们说一句,先把主业干出色,才能拥有真正的斜杠人生

// 当全力以赴时,才会有更出色的成就。就像阳光是如此温暖,可也只有透过凹凸的镜片的聚焦才能点燃柴火。没有谁对谁错,只是时间对于每个人都是公平的,努力的方向不同,结果也不同。

// 他每天晚上八点开始练字,练到深夜十二点。

有时他像吸毒一样写上瘾,时间走到了凌晨一两点。我亲眼看着他的字一天天变好,每天早上起来都要看到他晒字的图片,发布时间无一例外都在凌晨。

这样的生活他坚持了两年,换来一个书法家的斜杠。

// 因为工作关系接触到一个美国人,他平时在IT公司上班,下班后在**fiverr上(国外的一个兼职网站)**接点跟IT有关的兼职做,有时候搜索一些符合雇主要求的数据,有时候做一些简单的产品调研。

虽然IT行业经常要熬夜,但他仍然在下了班后在家打开电脑,敲着键盘把一个个数据爬出来,整理成Excel,赶在deadline前将表格完成发给雇主们。

他说他有一个女儿,他想带她走遍世界,感受世界各地不一样的文化。他很自豪地说,他在短短的两年兼职生活里已经带女儿去过中国的苏州,马来西亚的吉隆坡。虽然离他走遍世界的理想还有点距离,但是我相信他总有一天会实现。

// Lily把Slash这个词在我心中定义完整,斜杠青年并不仅仅诠释着多职业化身份,做了很多工作,身份多么有趣,而是所拥有的每一个身份他都是专业的、深刻的、稳定的。这才是一名slash该有的基本特质,这样的slash才会真正的有趣。lily就是这样一个人。

这个世界就是这样,有趣的东西往往并不简单,如果觉得简单,那一定是理解错误。

那些博而不专,做了不坚持,遇到瓶颈想放弃的人不是SLASH。

他们只是曾经有趣过。

==========

----------测评:对于写作的人来说,Markdown是你最好的朋友 https://baijiahao.baidu.com/s?id=1611928732267286939&wfr=spider&for=pc

在Windows上,到目前为止我最喜欢的Markdown编辑器是Typora,它仍处于测试阶段,但足够稳定,可以每天使用。

==========

----------如何点亮你的人生技能树:《斜杠青年》读书笔记 - 少数派 https://sspai.com/post/47122

然后作者提到了训练自己意志力而写晨间日记的实践,之前看过成甲的《好好学习》也有提到过,对晨间日记有感兴趣的推荐去看看《晨间日记的奇迹》 。

每年年初我都会给自己制定一份计划清单,又要学英语、又要看书、又要健身的,想要的东西太多,但是往往都是因为意志力有限,很难坚持。自从了解意志力的存在�并且实践了之后,让我养成一个习惯变得更加容易了。

读过一本日本人写的**《快速阅读术》**,作者的「像听音乐那样读书,没有人会一个音符不漏的听歌。」这个观点给我很深的印象,通过不断的实践和刻意练习,相比以前我现在读书确实快了不少。

文中推荐的书单: 《好好学习》 《晨间日记的奇迹》 《快速阅读术》

==========

----------斜杠青年(拥有多重职业和身份的多元生活的人群)_百度百科 https://baike.baidu.com/item/%E6%96%9C%E6%9D%A0%E9%9D%92%E5%B9%B4/19447422?fr=aladdin

斜杠青年来源于英文Slash,出自《纽约时报》专栏作家麦瑞克·阿尔伯撰写的书籍《双重职业》,指的是一群不再满足“专一职业”的生活方式,而选择拥有多重职业和身份的多元生活的人群。

只有自己对这一领域的足够兴趣,才能坚持到收获的那一天。

==========

----------SDK管理利器——sdkman - 简书 https://www.jianshu.com/p/71cad86537e6

项目使用java的开发者一定会为新配环境变量而头大,sdkman很好的解决了系统sdk管理的痛点,仅需简单的几行命令就可以完成sdk的安装,更改默认版本。 再也不用担心环境变量的问题。

==========

----------kdabir/awesome-groovy: A curated list of awesome groovy libraries, frameworks and resources https://github.com/kdabir/awesome-groovy#testing

Dru - Data Reconstruction Utility loads data from external sources JSON, YML for easy testing GORM, DynamoDB or just plain POJOs.

==========

-- End --