对于简单的GraphQL查询,其实很简单,任何一个会CRUD的开发者都知道,使用简单的if … else … 就能实现逐字段的遍历查询。这也就是GraphQL的核心算法,只是针对每个字段,GraphQL会提供一个resolver去实现特殊的字段获取方式,详情可以看demo代码,例如: https://github.com/haoflynet/graphql-tutorial/blob/master/schemas/article.py。
假设有这样一个查询:
1 | { |
对于简单的GraphQL查询,其实很简单,任何一个会CRUD的开发者都知道,使用简单的if … else … 就能实现逐字段的遍历查询。这也就是GraphQL的核心算法,只是针对每个字段,GraphQL会提供一个resolver去实现特殊的字段获取方式,详情可以看demo代码,例如: https://github.com/haoflynet/graphql-tutorial/blob/master/schemas/article.py。
假设有这样一个查询:
1 | { |
GraphQL发展至今,已有Github、Facebook、Airbnb等大厂在大量地使用,大厂在使用的过程中,不断地进行技术沉淀,也诞生了许多实用的开源工具。这里重点介绍Github的Awesome系列awesome-graphql,它列举了Github上面开源的并且十分有用的graphql相关的服务端、客户端以及生态链相关的其他工具。graphql发展至今,已有非常完整的开发语言支持,主流的语言Javascript、Python、Java、PHP、Ruby等都有各自的服务端与客户端实现,在awesome-graphql上还有部分语言的实现参考示例代码。这里简要介绍几个常见的库:
Apollo-Client: 算是最知名的GraphQL客户端了,因为它是Javascript的客户端。功能丰富,可用于不同的服务端及前端。
GraphiQL: 一款运行于浏览器的GraphQL IDE,几乎所有的服务端库都会提供这么一个经典的web页面。该页面是一个单页面应用,可以直接在其上运行查询语句,自带代码补全和校错功能,直接查看GraphQL所有的文档(定义好的Schema),比如Github API的在线文档,登录后就能在线发送真实的请求获取到我们想要的数据。由于我们之后要进行实践教程,所以这里有今后用于实践的真实的Web端,访问地址

多年前,我喜欢用sublime,那时候我主要开发的是Python这种很简单的脚本语言,后来接触了IDE才发现,对开发者来说,编辑器真的只是暂时的工具,真正能提高大幅度提高开发效率的绝对是功能完整、适配性强的IDE呀😂。
看了文约小强的简介,又看了电影版《流浪地球》的预告,我抓紧时间将原著看完了,只花了大概一两个小时吧,表示从来没看过这么短的短篇小说。不过作者正是《三体》的作者刘慈欣,作者具体是个什么样的人我不了解,但是提起中国科幻,肯定是不能不提到他的。
公司封网,这两天除了大致规划明年工作计划以外,也顺手整理了今年的一些笔记,记录下这些Tips,不过有很多都不知道出处了。
盼望着盼望着,米家的智能家居终于能用苹果的Siri直接控制了,终于不用自己去搭homebridge了。我至今没有买小米家的智能音箱,是因为我相信有一天绝对能用Siri直接控制的,这一天居然真的来了。小米音箱和siri虽然都是通过语音控制,但却是两种不同的媒介,一种必须拿起手机先喊siri,一种必须依赖音箱。我更喜欢前者,因为我能做到哪儿都拿着手机,但不能做到每个房间一个音箱。这个音箱拿来录录抖音倒还可以。
299的价格实现每天不带钥匙出门,比动不动就上千的指纹锁性价比高多了。其原理就是将钥匙插入锁孔,然后由手机连接蓝牙,蓝牙控制贴锁,贴锁转动钥匙实现开门。因为必须用蓝牙,所以不必担心远程误开。但是有些人质疑其实用性,这样出门虽然不带钥匙了,但是必须带手机呀。我想说的是,很多人买指纹锁、智能锁的主要目的不就是不带钥匙吗,又不是不带手机,谁出门不带手机的,并且即使哪天手机没电或者手机真没带,也能通过别人的手机登录自己的帐号,或者让已经被分配钥匙的人来开门就好了。这是除路由器以外我现在实用最高频率的米家产品了。
我通过它实现了控制家中的乐视电视、松下吸顶灯和艾美特风扇。其中电视和灯在遥控器里面都有现成的红外线模板,风扇没有,但是提供了学习功能。遥控器放在客厅,主要控制客厅的红外家电,非常实用。
路由器普遍内存和硬盘比较小,能少折腾就少折腾。
GraphQL exists because JavaScript developers finally realized HTTP API’s were too limiting so they reinvented SQL over JSON because JavaScript developers are obsessed with reinventing everything into JSON API’s。 ——@kellabyte
GraphQL 的本质是程序员想对JSON使用SQL。 —— 来自阮一峰的翻译
上面这句话是我见过的对GraphQL的存在最精妙的解释了。
维基百科上的简介是:GraphQL是一个开源的数据查询和操作语言及实现为了实现上述操作的相应运行环境。GraphQL诞生于2012年,之后则是由其创造者Facebook在内部使用。自它被发明以后,一直在默默无闻的改进中,直到2017年,Github正式发布了它V4版本的API(V3版本的规范就是我们熟知的Restful API),这才让GraphQL走入了包括我在内的大多数程序员的视野,并一度成为开发者讨论的热点。
自从有了自己的总结及计划模板后,发现写年终总结和新年计划就方便多了,把去年的拿来小改一下就好了。
2018年的清单完成率仅有9/26,这完成率比2017年还低。
- [x] 落地10万以下代步车: 当然是借钱+按揭啦。终于提车了,女朋友出的钱比我还多,唉。
- [ ] 3T监控硬盘: 家里两块绿盘虽然没什么问题,但是7*24小时还是有点担心,那么多的优质资源不是一两年就能搜集完成的。家里的盘居然又坚挺了一年。
- [ ] 客厅空调or卧室电视: 解决夏天在客厅看电视太热的问题。实在没钱了。
- [ ] 三亚旅拍婚纱照: 至少需要预订。预订了重庆金夫人的,仔细想想,旅拍没必要,以后每年都会去旅游、拍照的。
2018年博客访客统计

2018年消费支出趋势
我每年都会写年终总结,以前都是农历新年写,今年及以后我决定就在公历年写了,因为好多日常的软件在出年终报告的时候都是依照的公历,我经常会将这些软件中的一整年的统计数据拿来做总结。不过我的年终总结还等几天再出来,这次要说的是,怎样从别人的年终总结中学习。
年终总结是每年年底,各个平台、各种论坛最活跃的一类题材,如果能从中挖掘到有用的信息,定能为我们明年成长路线的制定提供很大的帮助。我推荐一定要多看跟自己同行业但是水平比自己高一点的人,因为他们是我们最接近也最容易超越的目标。
看了看博客的归档目录,距离上一次读后感已经有三个多月了,也就是说,我有大概三个月的时间没有阅读书籍了。刚开始写这篇读后感的时候在想又浪费了三个月,但仔细想想,这几个月我干的事情也还是挺多的,9月份在忙外包和技术分享,10月在开发自己的小程序,11月则是在处理买车的事情,哦对了,这几个月还一直在考虑怎么挣更多的钱。每天都很忙,偶尔觉得自己还是挺努力的,但是这几个月大多数闲暇时间是被我浪费掉的。年轻时候最多的就是时间,最不懂得珍惜的也是时间。