RESTful API 设计最佳实践

背景

目前互联网上充斥着大量的关于RESTful API(为了方便,后面API和RESTful API 一个意思)如何设计的文章,然而却没有一个“万能”的设计标准:如何鉴权?API格式如何?你的API是否应该加入版本信息?当你开始写一个app的时候,特别是后端模型部分已经写完的时候,你不得不殚精竭虑的设计和实现自己app的public API部分。因为一旦发布,对外发布的API将会很难改变。

在给SupportedFu设计API的时候,我试图以实用的角度来解决上面提到的问题。我希望可以设计出容易使用,容易部署,并且足够灵活的API,本文因此而生。[......]

阅读全文

HD Tune

HD Tune是一款小巧易用的硬盘工具软件,其主要功能有硬盘传输速率检测,健康状态检测,温度检测及磁盘表面扫描存取时间、CPU占用率。另外,还能检测出硬盘的固件版本、序列号、容量、缓存大小以及当前的Ultra DMA模式等。虽然这些功能其它软件也有,但难能可贵的是此软件把所有这些功能积于一身,而且非常小巧,速度又快,更重要的是它是免费软件,可自由使用[......]

阅读全文

MFC定时器之妙用

现在有这么一个问题,在VC编程中,如果要每隔一段时间去响应一个事件,应该怎么处理?
1.Sleep(int n)函数;(S 一定要大写,这个和C不一样)
2.WaitForSingleObject()等待函数;
其中,用Sleep()多的话应该知道,它的时间不是很精确,且会让程序陷入休眠,而且这个函数其实是VC专门为线程设计的。而等待函数是需要SetEvent来实现唤醒的。
还有第三个方法,就是定时器的使用。
我们知道,在VC的MFC中,已经为我们封装好了很多全面和强大的函数集,所以在MFC编程时,巧妙地调用MFC函数库可以为我们省去很多麻烦。其中定时器也可以在MFC程序中很好地利用。 [......]

阅读全文

Jscex->Wind.js

        Jscex是“JavaScript Computation EXpression”的缩写,它为JavaScript语言提供了一个monadic扩展。Jscex完全使用JavaScript编写,能够在任意支 持ECMAScript 3的引擎里使用(例如各浏览器或Node.js)。Jscex的JIT编译器能在运行时将JavaScript代码编译成Monad形式,无需额外编译步骤,并内置异步编程类库,可以大大简化JavaScript下的异步编程体验。

Jscex项目已经升级至0.7.0,并正式改名为Wind.js[......]

阅读全文

WNMP

WNMP是Windows下的绿色Nginx+Mysql+PHP环境集成套件包。
解压后点击 Setup.cmd 启动,即可得到一个Nginx + MySQL + PHP 环境。然后就可以直接安装 Discuz!, PHPWind, DeDeCMS, WordPress 等程序。是PHP程序员的必备工具。

Tengine

        Tengine是由淘宝网发起的Web服务器项目。它在Nginx的基础上,针对大访问量网站的需求,添加了很多高级功能和特性。Tengine的性能和稳定性已经在大型的网站如淘宝网,天猫商城等得到了很好的检验。它的最终目标是打造一个高效、稳定、安全、易用的 Web平台。[......]

阅读全文

4K对齐,0成本IO优化

        硬盘对齐4K,很多人可能并不会在意,甚至没有听说过。最近在论坛看到一些对硬盘IO有特殊要求的站长抱怨硬盘IO性能较低,那就试试硬盘4K 对齐来优化下吧,而且不用额外花钱,何乐而不为呢。
首先说一下什么是叫做“4K 对齐”,其实“4K对齐”是一个叫做“高级格式化”的分区技术。“高级格式化”是国际硬盘设备与材料协会为新型数据结构格式所采用的名称,一般来说,2011年之后出厂的硬盘,基本都是支持高级格式的,阿里云的硬盘当然也是支持的啦~ 那么如果有“4K 对齐”一说必然就有“4K 对不齐”。为什么会有“4K”对不齐呢?这是因为在NTFS6.x 以前的规范中,数据的起始写入点正好会介于在两个4K 扇区的中间,也就是说即使是写入最小量的数据(最小量的数据为4K),也会使用到两个4K扇区,显然这样对写入速度和读取速度都会造成很大的影响为此对于“4K不对齐”的情况来说,一定要修改成“4K 对齐”才行,否则会极大的降低数据写入和读取速度。[......]

阅读全文

手机不要乱放

中午在办公室午睡的同事们注意了,手机不要乱放:有个男同事中午外出,没把手机带走。他老婆不停地打电话来。午睡的女同事被吵烦了,拿过手机大吼:“我们在睡觉,你烦不烦啊!” ~~~~

thrift

thrift是一个软件框架,用来进行可扩展且跨语言的服务的开发。它结合了功能强大的软件堆栈和代码生成引擎,以构建在 C++, Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, JavaScript, Node.js, Smalltalk, and OCaml 这些编程语言间无缝结合的、高效的服务。
thrift最初由facebook开发,07年四月开放源码,08年5月进入apache孵化器。
thrift允许你定义一个简单的定义文件中的数据类型和服务接口。以作为输入文件,编译器生成代码用来方便地生成RPC客户端和服务器通信的无缝跨编程语言。

Appfuse

简介

        Appfuse是由Matt Raible开发的一个指导性的入门级J2EE框架,它对如何集成流行的Spring、Hibernate、iBatis、struts、Xdoclet、junit 等基础框架给出了示范。提供了对Taperstry和JSF的支持。
        AppFuse是一个集成了当前最流行的Web应用框架的一个更高层次的Web开发框架,也 可以说是一个Web开发基础平台,它与它所集成的各种框架相比,它提供了一部分所有Web系统开发过程中都需要开发的一些功能,如登陆、用户密码加密,用 户管理、根据不同的用户可以展现不同的菜单,可以自动生成40%-60%左右的代码,自带了默认的一些在CSS中设定的样式,使用这些样式能很快的改变整个系统的外观,还有自动化测试的功能。

[......]

阅读全文