Heroku部署web服务器

安装Heroku CLI工具 Mac端

1
brew install heroku/brew/heroku

Heroku CLI 命令

1
2
heroku -h
heroku login
  1. Creating Apps from the CLI
1
2
3
4
5
6
7
$ mkdir example
$ cd example
$ git init
$ heroku apps:create example
Creating ⬢ example... done
https://example.herokuapp.com/ | https://git.heroku.com/example.git
Git remote heroku added
  1. 查看现有APP信息
1
2
heroku apps      //所有应用列表
heroku apps:info //查看所有应用的详细信息
  1. 在浏览器中访问APP页面
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
USAGE
$ heroku apps:open [PATH]

OPTIONS
-a, --app=app        (required) app to run command against
-r, --remote=remote  git remote of app to use

EXAMPLES
$ heroku open -a myapp
# opens https://myapp.herokuapp.com

$ heroku open -a myapp /foo
# opens https://myapp.herokuapp.com/foo

用例:在heroku上部署gh-oauth-server服务

issues:object ProgressEvent 下载服务器源代码gh-oauth-server ,由于是nodejs写的所以需要安装nodejs环境 如何安装自己Google; 然后git clone 该项目并进入目录, 执行npm install 安装依赖, 依赖安装成功后执行npm start, 如果输出start on port 300表示开启成功,;为了支持ssl 可以安装nginx代理, 这个可以自己百度, 有很多教程的.

hexo集成gitment评论系统

安装gitment

package.json文件添加gitment依赖:

1
"gitment": "^0.0.3"

安装

1
npm install

申请应用

首先去New OAuth App为你的博客应用一个密钥:

1
2
3
4
Application name:随便写
Homepage URL:这个也可以随意写,就写你的博客地址就行
Application description:描述,也可以随意写
Authorization callback URL:这个必须写你的博客地址

申请好之后点注册,然后就可以看到两个东西ClientID和Client Secret,后面会用到.

Instrument使用Signposts工具

引言

性能是实现卓越的用户体验的关键之一。当应用或者游戏表现的运行迅速,反应灵敏时,用户会更喜欢。但是软件是很复杂的,当你的应用视图做某事时,例如只是点了一个按钮,但程序也有可能做了很多的事情,这就意味着你可以在一些看似不太可能的地方找到一些优化点。但这样做,挖掘性能的优化点,有时就需要深入理解你的程序正在做些什么。它需要您知道代码什么时候执行的,以及特定的操作需要多长时间。所以这就体验出来了有一个好的测试工具是多么的重要。

Xcode10新特性

Xcode 10 Xcode 10在macOS Mojave的黑暗模式下看起来非常棒,也让你很容易在macOS应用程序中采用新的外观。Xcode 10测试版包括Swift 4.2和beta sdk,适用于iOS 12、watchOS 5、tvOS 12和macOS Mojave。

SPM搭建Perfect模版服务器

Perfect简介

{% github PerfectlySoft Perfect 60e44e4 width = 30% %} 目前比较流行服务端框架主要有VaporPerfectKituraZewo,他们各有长短,本人这次主要是使用Perfect来写的,因为Perfect的功能比较完善,在GitHub上具有1W+的星,而且有一个非常重要的原因提供了Perfect 中文文档

使用SPM管理依赖库

概念概述

Package Manager {% github it-boyer PerfectTemplate 20294e56 width = 30% %}

Modules模块

在 Swift 中我们使用模块来管理代码,每个模块指定一个命名空间并强制指定模块外哪些部分的代码是可以被访问控制的。

Swift单文件相关命令行工具

直接用 swift 命令执行

xcrun swift可以直接将一个 .swift文件作为命令行工具的输入,这样里面的代码也会被自动地编译和执行。我们甚至还可以在 .swift 文件最上面加上命令行工具的路径,然后将文件权限改为可执行,之后就可以直接执行这个 .swift 文件了:

swift在终端使用LLDB调试

Using the LLDB Debugger 使用LLDB调试器一步一步地运行Swift程序,通过设置断点调试运行状态。

  1. 创建一个名Factorial.swift,定义了一个factorial(n:)函数,并打印调用该函数的结果:
1
2
3
4
5
6
7
func factorial(n: Int) -> Int {
    if n <= 1 { return n }
    return n * factorial(n: n - 1)
}

let number = 4
print("\(number)! is equal to \(factorial(n: number))")
  1. swiftc命令 运行swiftc命令-g选项生成swift调试信息,在目录中生存可执行的Factorial文件:
1
2
3
4
5
$ swiftc -g Factorial.swift
$ ls
Factorial.dSYM
Factorial.swift
Factorial*
  1. 使用lldb启动Factorial文件 通过LLDB调试器命令lldb运行:
1
2
3
$ lldb Factorial
(lldb) target create "Factorial"
Current executable set to 'Factorial' (x86_64).
  1. 设置断点 使用breakpoint set (b) 命令在factorial(n:)函数的第2行中设置一个断点,每次执行函数时中断进程:
1
2
(lldb) b 2
Breakpoint 1: where = Factorial`Factorial.factorial (Swift.Int) -> Swift.Int + 12
  1. 运行调试 使用run (r)命令运行进程。进程在factorial(n:)函数的调用位置停止。
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
(lldb) r
Process 40246 resuming
Process 40246 stopped
* thread #1: tid = 0x14dfdf, 0x0000000100000e7c Factorial`Factorial.factorial (n=4) -> Swift.Int + 12 at Factorial.swift:2, queue = 'com.apple.main-thread', stop reason = breakpoint 1.1
frame #0: 0x0000000100000e7c Factorial`Factorial.factorial (n=4) -> Swift.Int + 12 at Factorial.swift:2
   1    func factorial(n: Int) -> Int {
-> 2        if n <= 1 { return n }
   3        return n * factorial(n: n - 1)
   4    }
   5
   6    let number = 4
   7    print("\(number)! is equal to \(factorial(n: number))")

Use the print (p) command to inspect the value of the n parameter.

SPM相关命令工具

概念概述

getting-started {% github it-boyer PerfectTemplate 20294e56 width = 30% %}

使用Swift编译系统

Swift 编译系统为编译库、可执行文件和在不同工程之间共享代码提供了基本的约定。

swift 工具

  • swift package
  • swift package generate-xcodeproj
  • swift run
  • swift build
  • swift test

swift package创建一个HelloSPM

  1. 创建Hello目录,目录名会作为SPM名称:
1
2
$ mkdir Hello
$ cd Hello
  1. swift package初始化为SPM工程
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
$ swift package init
├── Package.swift   // 依赖清单文件
├── README.md
├── Sources         // 源码目录
│   └── Hello
│       └── Hello.swift
└── Tests
├── HelloTests
│   └── HelloTests.swift
└── LinuxMain.swift

每个包在其根目录下都必须拥有一个命名为Package.swift清单文件。如果清单文件为空,那包管理器将会使用常规默认的方式来编译包。 3. swift build编译SPM 编译会先解析Package.swift项目配置和下载依赖库等环境,然后编译源码

利用JavaScript构建OSX原生应用

利用JavaScript构建OSX应用 Example OS X applications written in JavaScript. JavaScript for Automation Cookbook 廖雪峰的JavaScript教程 W3Cschool javascript教程 JavaScript快速入门

使用场景

UIAutomation的简单使用方法 如何使用UIAutomation进行iOS 自动化测试(Part I) JavaScript for OS X Automation by Example JavaScript For Automation iOS 程序员效率提升利器之 AppleScript Numbers入门 — 附录:脚本 AppleScript 与 Numbers