短网址顾名思义就是使用比较短的网址代替很长的网址.维基百科上面的解释是这样的: 短网址又称网址缩短.缩短网址.URL 缩短等,指的是一种互联网上的技术与服务,此服务可以提供一个非常短小的 URL 以代替原来的可能较长的URL,将长的 URL 位址缩短.用户访问缩短后的 URL 时通常将会重定向到原来的长 URL 起源 虽然现在互联网已经非常发达了,但还是有很多场景会对用户输入的内容有长度限制.比如 : 微薄.Twitter 长度不能超过 140 个字 一些早期的 BBS 文章单行的长度不能超过…
最近做了一个短网址服务:   di81.com 项目中有一处需求,需要把长网址缩为短网址,把结果通过短信.微信等渠道推送给客户.刚开始直接使用网上现成的开放服务,然后在某个周末突然手痒想自己动手实现一个别具特色的长网址(文本)缩短服务. 由于以前做过socket服务,对数据包的封装排列还有些印象,因此,短网址服务我第一反应是先设计数据的存储格式,我这里没有采用数据库,而是使用2个文件来实现: Url.db存储用户提交的长网址文本,Url.idx  存储数据索引,记录每次提交数据的位置(Begin…
用liteide来开发go的后端项目,需要注意的是环境变量要配置正确了 主要是GOROOT, GOPATH, GOBIN, PATH这几个, GOPATH主要用来存放要安的包,主要使用go get 来获取包,包就存放在gopath里面了. 对于当前的项目,要想当前项目里面的包被发现,需要配置GOPATH添加当前项目的路径 之后就是同一个包里面的引用不需要加import, 其他包里面的, 方法和属性如果要开放给其他 模块使用,名称必须是大写!这点很重要 package util import "f…
主要步骤是: 1. 开发一个C程序(在标准输出中输出HTML字符串) 2. 复制到apache2的cgi-bin目录去 3. 在httpd.conf中开启cgi功能(我似乎没用到,也可以使用cgi) ubuntu上apache的cgi-bin目录上 是/usr/lib/cgi-bin gcc -o hello hello.c cp hello /usr/lib/cgi-bin hello.c #include <stdio.h> int main() { printf("Conten…
何时使用单体 RESTful 服务 对于很多初创公司来说,业务的早期我们更应该关注于业务价值的交付,而单体服务具有架构简单,部署简单,开发成本低等优点,可以帮助我们快速实现产品需求.我们在使用单体服务快速交付业务价值的同时,也需要为业务的发展预留可能性,所以我们一般会在单体服务中清晰的拆分不同的业务模块. 商城单体 RESTful 服务 我们以商城为例来构建单体服务,商城服务一般来说相对复杂,会由多个模块组成,比较重要的模块包括账号模块.商品模块和订单模块等,每个模块会有自己独立的业务逻辑,同时…
越来越多的人开始使用智能手机,平板电脑或其他的移动设备.出于这个原因,移动APP开发已成为当今软件开发中增长最快的领域之一.本文提供九个简单而有效的提示,可帮助您规划和实施成功的移动APP. 1.目标受众 目标受众往往只被视为事后考虑.营销人员只有在制定营销计划时才考虑利基市场.但最好从特定的目标受众开始,并根据受众的需求创建想法.定义您的目标受众群体并确保他们需要您的应用.你的APP需要为他们需要什么? 2.解决用户问题 为了取得成功,移动应用必须解决问题,提供重要功能,节省时间或金钱,娱乐或…
集成第三方发送短信 介绍 用户登录 用户登录有两种方式: 短信登录,密码登录 短信登录是使用手机号和验证码进行登录 短信平台 很多云平台,比如阿里云,腾讯云,七牛云等云厂商,向程序开发者提供了短信验证码套餐服务.借助云平台的短信服务,程序开发者可以非常简单方便的将短信服务集成到自己的程序中. 我们以接入和集成阿里云的短信服务sdk为例, 如果需要申请腾讯云短信服务可以看我另外写的一篇blog,使用两者都差不多 https://www.cnblogs.com/you-men/p/13088949.…
一.背景 现在在各种圈的产品各种推广地址,由于URL地址过长,不美观.不方便收藏.发布.传播以及各种发文字数限制等问题,微信.微博都在使用短链接技术.最近由于使用的三方的生成.解析短链接服务开始限制使用以及准备收费.不方便统计分析.不方便流控等问题,决定自建一个短地址服务. 二.原理 比如,http://a.b.com/15uOVS 这个短地址 第1步,浏览器请求这个地址 第2步,通过DNS后到短地址服务端,还原这个短地址对应的原始长地址. 第3步,请求http 301 或302到原始的长地址上…
智能合约开发是以太坊编程的核心之一,而代币是区块链应用的关键环节,下面我们来用solidity语言开发一个代币合约的实例,希望对大家有帮助. 以太坊的应用被称为去中心化应用(DApp),DApp的开发主要包括两大部分: 智能合约的开发 用户界面的开发 在本文中,我们将介绍智能合约的开发语言solidity. 让我们先从一个非常基础的例子开始,不用担心你现在还一点都不了解,我们将逐步了解到更多的细节. contract SimpleStorage { uint storedData; functi…
前言 通过前面的几篇文章,讲解了一个短信服务的架构设计与实现.然而初始方案并非100%完美的,我们仍可以对该架构做一些优化与调整. 同时我也希望通过这篇文章与大家分享一下,我的架构设计理念. 源码地址:https://github.com/SkyChenSky/Sikiro.SMS/tree/optimize (与之前的是另外的分支) 架构是设计的还是演变的? 架构 该词出自于建筑学.软件架构定义是指软件系统的基础结构,是系统中的实体及实体(服务)之间的关系所进行的抽象描述.而架构设计的目的是为…