data fetcher
获取数据graphql 如何获取数据graphql 中的每个属性都关联了一个 graphql.schema.DataFetcher.一些属性会使用专用的 data fetcher 从数据库获取该属性的相关信息.而大多数简单的使用属性名和 Plain Old Java Object(POJO)模式 从内存中获取数据.在其他 graphql 实现中,Data fetcher 被称为 resolver现在声明一个类型定义:
123456789101112type Query { products(match: String): [Product] # a list of products}type Product { id: ID name: String description: String cost: Float tax: Float launchDate(dateFormat: String = "dd,MM,yyyy"): String}
原文
简介本文将探索如何创建移动优先的网页设计体验。
为什么我们需要创建移动优先,响应式,适应式网页设计体验?
如何针对适应式站点组织 HTML 结构以便优化性能,优先考虑灵活性?
如何书写优先定义共享样式、针对大屏和媒体查询构建、使用相对单位的 CSS?
如何编写不引人注目的 Javascript 来有条件地加载内容片段,利用触摸事件和地理定位
我们可以做些什么来进一步增强我们的适应性体验
适应性的必要性随着网络环境越来越复杂,为越来越多的环境提供可靠的网络体验变得极为重要.幸运的是,响应式 web 设计给 web 开发者提供了一些可以匹配任意大小屏幕的工具来组织布局.
Homebrewgradle-completion1234567891011121314brew install gradle-completionecho $fpath | grep "/usr/local/share/zsh/site-functions"# 执行结果Add the following line to your ~/.bash_profile: [[ -r "/usr/local/etc/profile.d/bash_completion.sh" ]] && . "/usr/local/etc/profile.d/bash_completion.sh"Bash completion has been installed to: /usr/local/etc/bash_completion.d==> gradle-completionBash completion has been installed to: /usr/local/etc/bash_completion.dzsh ...
gradle
Gradle 升级日志5.0 包含了 Kotlin DSL 生产级支持,依赖版本对齐(类似 Maven BOM),任务超时,Java 11 支持
Kotlin DSL 1.0
依赖版本对齐:
同一逻辑组(platform)下的不同模块在依赖树中可以有相同的版本.也可以导入 Maven BOMs 定义 platform.
123456789dependencies { // 导入 BOM.此文件中版本将覆盖依赖树中的其他版本 implementation(enforcedPlatform("org.springframework.boot:spring-boot-dependencies:1.5.8.RELEASE")) // 使用上面定义的版本 implementation("com.google.code.gson:gson") implementation("dom4j:dom4j") // 覆盖上面的版本 implementation("org.codehaus. ...
config
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192# 修改配置git config --local # 对某个仓库有效git config --global # 对当前用户所有仓库有效git config --system # 对系统所有登录用户有效# 查看配置git config --list --localgit config --list --globalgit config --list --system# 打开编辑器修改configgit config -e # 仅对当前仓库有效# 变更文件名git mv readme readme.md # 避免 mv x y -> git add -> git rmgit log [分支] --o ...
前言JGit 是一个基于 EDL(BSD 协议的变种)授权的轻量级、实现 Git 版本控制系统功能(常规仓库访问,网络协议,版本控制核心算法)的纯 Java 库.
入门获取在仓库搜索引擎中搜索 jgit 即可获取各种添加依赖的方式.我现在基本使用的是 gradle 依赖
12implementation("org.eclipse.jgit:org.eclipse.jgit:5.3.0.201903130848-r")implementation("org.eclipse.jgit:org.eclipse.jgit.http.server:5.3.0.201903130848-r")
JGit 也具有 CLI(功能比 git CLI 少),可以试一下 JGit 的功能.
手动编译 JGit CLI假设已经 clone EGit 仓库. git clone https://git.eclipse.org/r/jgit/jgit.git 具体查看
12345678~/src/jgit$ mvn clean install# 进入 jgit 可执行文 ...
hexo deploy
前言在知乎找到了一个更好的方法: [原文](使用 hexo,如果换了电脑怎么更新博客? - CrazyMilk 的回答 - 知乎https://www.zhihu.com/question/21193762/answer/79109280)在这里我整理一下:
创建仓库 xxx.github.io.
创建两个分支: master/hexo.(可在 github 网页或本地创建)
git clone git@github.com:xxx/xxx.github.io.git
如果没有在网页创建分支,可以在此处创建.git checkout -b master; git checkout -b hexo
接下来执行 npm install hexo; hexo init; npm i; npm i hexo-deployer-git,此处在 hexo 分支操作
修改 _config.yml 的 deploy 参数,此处在 master 分支操作.
我使用了hexo-next-theme,从 git 上下载后,进入 themes/next 执行 git su ...
room kotlin coroutine
OverviewRoom 2.1 开始支持 Kotlin 协程。DAO 方法可以使用 suspend 标记以确保这些方法不会在主线程中被执行。Room 使用 Executor(来自框架组件) 作为 Dispatcher 运行 SQL 语句,当然在编译 RoomDatabase 时,你也可以提供自己的 Executor.
当前协程支持正在开发中,更多特性正在计划中
添加依赖请升级 Room 到 v2.1, 同时 Kotlin v1.3.0+ , Coroutines v1.0.0+
1implementation "androidx.room:room-coroutines:${versions.room}"
现在就可以使用啦
123456789101112131415161718@Daointerface UsersDao { @Query("SELECT * FROM users") suspend fun getUsers(): List<Us ...
OverviewCompose 是一个为了定义和运行多容器 Docker 应用的工具。官方动手示例
特性
一个主机多个隔离环境
当容器创建时保留所有的 volume
只有容器被更改时才触发创建
定义变量和在不同环境中使用
使用场景
自动测试环境
单独主机部署
docker-compose 安装1234sudo curl -L "https://github.com/docker/compose/releases/download/1.23.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-composesudo chmod +x /usr/local/bin/docker-composesudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-composesudo docker-compose --version
pip 安装
1pip install docker-compose
卸载
12sudo rm /usr ...
原文
view(activity/fragment) 和 ViewModel 交流的比较好的方式是 LiveData observables. view 订阅 LiveData 的改变且随时响应。这适用于连续不断的显示在一个屏幕的数据。但是某些数据却更应该被消费一次,比如 Snackbar 消息,navigation 事件 或 dialog 触发器。与其试着通过扩展 Architecture Components 扩展或库解决这个问题,不如我们可以直面这是个设计缺陷。我们推荐你把你的事件看作是状态的一部分。本文我们将列举一些常见的错误和推荐的解决方案。
❌ Bad: 1. 对事件使用 LiveData在 LiveData 对象内部直接持有 Snackbar 消息或 navigation 信号。原则上普通的 LiveData 对象可以这样使用,但实际上会暴露一些问题。在 master/detail 架构的 app 中,如下是 maters 的 ViewModel
12345678910// 请不要对事件这样用class ListViewModel : ViewMod ...