RESTFul 风格 API 设计 置顶! 有更新!

修订记录 日期 修订版本 修订章节 修改描述 作者 20170623 V1.0 全文 新增 某某 注意事项 类型是属性类型,只有String、Number、Object、Array 编码格式默认为utf-8 接口说明 1. 商品新增[单个]- 请求地址: post /api/{version}/products- 请求参数: 字段 说明 类型 备注 是否必填 name 商品名 String … 是 price 价格 Number … 是 id 商品编号 String … 是 返回参数: 字段 说明 类型 备注 是否必填 code 返回码 Number 是 message 返回码说明 Number 是 2. 商品新增[批量]- 请求地址: post /api/{version}/products- 请求参数: 字段 说明 类型 备注 是否必填 datas 商品数据数组 Array … 是 其中,datas中的一个data: 字段 说明 类型 备注 是否必填 ….

阅读全文 »

读书笔记:【大型网站技术架构】核心原理与案例分析 置顶! 有更新!

前言:春节前读了这本书,原计划是春节假期就把读书笔记整理好,后来眼睛不舒服,未遂。节后经过几个晚上的整理,现将内容发上来供参考。注意本文内容只有核心原理,没有案例分析,因为设计案例分析,必须画图,否则讲不清,容以后再写。 ### 第一章:大型网站架构演化 > #### 1.1大型网站软件系统的特点:高并发、大流量,高可用,海量数据,用户分布广泛、网络情况复杂,安全环境恶劣,需求快速变更、发布频繁,渐进式发展。 > #### 1.2大型网站架构演化发展历程 > 1.2.1初始阶段:应用、数据库、文件在同一台服务器上。 1.2.2应用服务和数据服务分离 1.2.3使用缓存改善网站性能,二八定理80%的业务集中在20%的数据上,缓存又分为本地缓存和分布式缓存 1.2.4应用服务器集群 1.2.5数据库读写分离 1.2.6使用反向代理和CDN加速网站响应 1.2.7使用分布式文件系统和分布式数据库 1.2.8使用NoSql和搜索引擎 1.2.9业务拆分 1.2.10分布式服务 ### 第二章:大型网站架构模式 #### 模式:经过验证的,描述并解决某一类问题的固有方案。 > #### 2…..

阅读全文 »

OWASP TOP10 网络安全威胁整理 有更新!

缘起 上月底到合肥参加了owasp top10网络安全宣讲。回来后结合在开发中遇到的问题整理并在部门内部做了一次分享,以下是分享内容。 01注入 描述 注入漏洞发生在应用程序将不可信的数据发送到解释器。需要考虑任何向系统发送不信任数据的人。 场景 String query = “SELECT * FROM user WHERE user_id =‘“ + request.getParameter(”id“) + ”’”; 在该案例中,构造Web请求时,将参数id设为“’ or ‘1’ = ’1”,将得到下面的语句,绕过user_id的条件判断得到所有用户信息。 SELECT * FROM user WHERE user_id = ’’ or ‘1’ = ‘1’ 避免SQL注入,一般使用PreparedStatement进行数据库操作,将SQL语句进行预编译,经过预编译后,传入的参数将被识别为带一对引号的字符串而不是带有sql关键字的语句。 怎么做 工作中使用到的Mybatis提供两种传参数写法: select * from user where name ….

阅读全文 »

瞎扯淡:Jenkins 搭建要点

前言 Jenkins作为持续集成工具,大大的解放了ITER的双手,将大量重复性的,繁琐的更新、构建、部署操作融于一体。之前用了一些时间为项目组搭建了一套Jenkins环境,将搭建的步骤做一次梳理,分享出来。 概述 总的来说,Jenkins是一个协调者的身份,管理和协调了代码库,代码仓库,代码运行环境等。Jenkins和其他部分的依赖关系如图: 步骤 有了上述的关系图,我们就可以开始着手搭建CI环境了。 JDK,NEXUS,MAVEN此三者是Jenkins直接依赖的环境,因此需要先行安装配置。 下载安装JDK,配置环境变量。java -version命令查看是否安装成功。 下载安装MAVEN,配置环境变量。 安装私有的NEXUS,见此处。 关联MAVEN与NEXUS,将MAVEN的远程仓库修改为私有NEXUS(在MAVEN的settings.xml文件中设置)。不建议使用MAVEN中央仓库,因为部分jar包被墙且下载速度慢,同时无法发布自己的私有Jar包(审核时间长且不适合放在公网),造成构建发布失败。 Jenkins 安装过程略 启停命令 :service jenki….

阅读全文 »

简明 SONATYPE NEXUS 私有库搭建配置说明

缘由 持续集成jenkins框架需要配合 私库上传自有包 避免中央仓库网络条件不行包下载失败,且外网中断时也可以正常运行 节约公司网络带宽 加速包下载 步骤 先安装jdk8,配置环境变量 下载程序包 nexus-3.3.1-01-unix.tar.gz【nexus oss版本】 上传到/usr/local目录,解压,进入到bin目录执行启动脚本,这里的&意思是作为后台进程运行 tar -cxvf nexus-3.3.1-01-unix.tar.gz mv nexus-3.3.1-01-unix.tar.gz nexus331 cd nexus331/bin ./nexus run & 执行后,会打印很多启动信息。启动完成后访问:服务器地址:8081,nexus的默认端口是8081,有两个默认用户admin(密码admin123)、anonymous(匿名用户,只能查看)。 关闭nexus ./nexus stop[关闭nexus] 登录,大概是这样: 本地设置 安装好以后,需要与本地做关联。那么,这个关联要怎样体现呢?一是本地maven的setti….

阅读全文 »

这次不再是毒鸡汤 有更新!

世界上最有力量的四件事:准时、守信、认真、持之以恒。 #### 准时到就是:提前到! #### 给予别人的要能超过他的原始期望;否则不仅白费自己的时间和精力,还会严重影响你做下一件正事。 #### 新年的意义就在于:可以不再沿用去年失败的旧活法。

阅读全文 »

2016 年度总结 有更新!

2015年总结后,这是第二年些年度总结。 ### 架构 & 技术 + 6月份参加了深圳的MPD技术沙龙,这样的沙龙对于技术视野的扩展很有益处。去深圳的时候约了多年未见的老同学蹭饭吃。PS:鹏城真是一个活力十足的城市。 + 9月份到帝都参加一个架构师的培训,地点北理工,培训完的感觉就是时间太短了,要是能有两周,应该收获颇丰吧。 ### 生娃 + 生命从孕育到诞生再到养育,是一个艰辛的过程。初为人父,感觉肩上的担子重了,需要担当更多。带娃,痛,并快乐着! + 取名是一个纠结的过程,在知乎看了很多取名的问答,书也翻了不少,依然纠结。 + 老婆更辛苦,生娃对于女人来说,真的是一个鬼门关,好好的对待愿意给你生娃的姑娘。 ### 翻译 + 作为宇宙第三好用的ide,今年NetBeans变动较大,故需要翻译的时讯较少,可能在3篇左右,没有具体统计。 + Java8的翻译,没能坚持下来。 ##….

阅读全文 »

瞎扯淡:Java 泛型编程 - 泛型方法 有更新!

概论 泛型方法可以定义在泛型类中,也可以定义在非泛型的普通类中,即泛型方法不依赖于泛型类的存在而存在,而是可以单独定义和使用。有一个原则:能使用泛型方法完成的功能,就不要使用泛型类。泛型方法表达一种:deal with T的概念。泛型方法的一般格式: public <T> void methodName(T t){ } 例如: public class GenericMethodTest { public static <T> void dealWith( T t){ System.out.println(t.getClass().getName()); } public static void main(String[] args) { GenericMethodTest.dealWith(“String”); GenericMethodTest.dealWith(new Object()); GenericMethodTest.dealWith(new BigDecimal(123)); } } 可变参数泛型方法 泛型方法和可变参数可以结合使用例如: p….

阅读全文 »