Sorry, your browser cannot access this site
This page requires browser support (enable) JavaScript
Learn more >

依值类型是一个很有用的概念,它可以使函数的输入或者输出,根据输入的参数性质来产生变化,让强类型系统能类型安全地使用一些动态类型性质。其中一种用法是类型安全的属性列表。我是在 Ktor 和 Netty 的代码中学习到了这种用法。 例子在以前,Java 的世界里,像 ServletContext 或者一些 PropertyMap,它都是基于两个繁星参数的 Map 来作为存储表(或者说,注册表)。...

雖說用 Node 是經常的事情,但還是第一次嘗試用 Typescript 寫 NodeJS 程式。今天想寫一個簡單的網站,這裡記錄一下這個簡單的過程。 所需的是 TypeScript 編譯器以及對應的類型定義,我這戲需要用到 Express,所以 Express 和其類型定義也需要安裝。 12npm install expressnpm install typescript ts-node ...

本文的最終目的是編寫出能調用 Webpack 來施行構建流程的 Kotlin Build Script。 前言因為惱於 JavaScript 的無類型,又不喜歡 TypeScript 的類型系統,於是就有了嘗試用 Kotlin 開發前端的嘗試。 不過一番搜尋和嘗試後,我放棄了。兩個類型系統相差懸殊,Kotlin 依舊保留了大量的 JVM 平台行為,各種容器和類型的包裝並不能輕易地和前端開發...

最近在嘗試 Kotlin/JS 的程式構建,遇到 Coroutine 和 Promise 的互相轉換問題。 Promise -> suspend func從 Promise 轉換為 suspend function 是比較簡單的。Kotlin 的 suspend function 都能通過 suspendCoroutine() 暫時掛起。給 Promise 增加一個擴展函數 ...

它从何而来在我的项目里,经常会出现一个叫做 FileServiceAdapter 的东西,从第一个项目开始我就设计了这个东西,到现在它的设计还没有完善。根据命名规则可知,它并不是一个实体类。的确它并不能实际使用,必须继承他实现一个子类才能使用。 它的设计基于业务实体,例如订单、票据、用户等。订单可能有订单相关的附件,票据也会有票据相应的附件。实体有不同的种类,实体都有其对应的实体 ID (E...

本篇所使用的雖然不是標準的 Jwt Token ,重點不在此,而是 Spring 的攔截器使用。 Jwt Token 是一串字符串,分三個部分: 頭 內容 簽名 例如: 1dWlkPTEmZXhwaXJlPTE1OTY0MTg0MDExMDAmdHlwZT10ZXN0JnVzZXI9MTIz.cGVybWl0dGVkPXRlc3Qmcm9sZXM9YSUyQ2IlMkNjJTJDZCUy...

唠叨几句​ 公司项目涉及到金额运算,我作为后端的设计以及编码,对所有进入系统的金额字段,全部使用放大了 100 倍并四舍五入后的整数作为金额的数据类型。我为了避免浮点数计算带来的问题,把所有浮点数拒绝于系统之外。但是,前端就不高兴了。 ​ 毕竟前端是搞前端的嘛。。对他们来说浮点数计算问题几乎都不可能碰上。。这时候作为一个后端人员就要展现自己的宽容大量和万能了(偷笑)。 ​ 因为后端系统的视图...

当时我一步步把《Javascript 进阶篇》做完之后,一如既往来到编程挑战章节,当我看到要写一个模拟选项卡切换的小程序之后,我整个人都不好了。好难啊!!感觉之前的白学了!! orz 之后我看了一下别人的代码。然后滚去看CSS去了。。。 (回来了) 好了当我重新打开这个章节的时候我还是懵逼的,于是只好继续参考别人的代码。。。然后我从CSS样式开始着手。 这个其实上面是一个无序列表元素,里面...

Java好像自从1.6就已经可以使用void method(String... s)的方法声明参数列表,这个声明方式挺好玩的,我分享一下我的使用经验。 这个声明有一个特点,就是可变长的参数声明必须在传参列表的最后面。也就是说,void method(Object o, String... s)可以,但是void method(String... s, Object o)是不符合语法的。Str...

为了能在Linux上面用java获取系统的状态数值,我自己设计了一个SystemStatus工具。用于获取系统的CPU占用内存状态之类的。考虑到一般只用Linux服务器当J2EE容器服务器,所以这个工具只适配Linux系统。 ##I.偶遇Process类上网找不到什么合适的工具,只发现了别人的代码。原理是利用ProcessBuilder.start()和Runtime.exec()其中一个启...