研发架构
小雷FansUnion
懂商业的技术合伙人。个人微信:FansUnion
微信订阅号:XiaoLeiFansUnion。
展开
-
云服务器,价格其实不便宜,但为什么还要用呢
2012年的时候,接触到云服务器,一心想搞个个人网站。 当时,云服务器最低配置,1个月55元,1M带宽、1核CPU、512M内存,独立IP。加上,一些优惠,代金券之内的,1年400元左右。 自认为,非常便宜。 想着1年只要400元就可以有自己的“云端电脑”,还不用交电费和网费,真是爽啊。 随着时间的积累,实践的深入,越来越觉得不是很便宜了。 真正商用的网站,配置会比...原创 2015-05-13 15:04:35 · 9656 阅读 · 4 评论 -
互联网研发团队-岗位职责
产品1.收集内部、外部需求。2.研究竞争对手、制定相应对策。3.与各部门沟通,规划版本需求,制定版本重要时间基线。4.细化版本需求,设计交互体验,制作版本原型和需求描述文档。5.发起、参与各类评审工作。6.跟踪需求的实现、验收产品实现的正确性。7.跟踪版本整体进度,协调版本需求和需求变更。8.对外演示和培训工作,指导运营对产品的正确理解和使用。设计1.根据产品原型或者初稿沟通产品的高保真模型。2.原创 2016-07-17 23:37:18 · 6862 阅读 · 0 评论 -
Spring MVC中使用Swagger生成API文档和完整项目示例Demo,swagger-server-api
有图有真相,有源代码有真相,有下载地址有真相!!!Swagger是当前最好用的Restful API文档生成的开源项目,通过swagger-spring项目实现了与SpingMVC框架的无缝集成功能,方便生成spring restful风格的接口文档,同时swagger-ui还可以测试spring restful风格的接口功能。原创 2016-07-16 12:27:36 · 108607 阅读 · 36 评论 -
一个互联网研发团队的标准配置
在老板等外界人士看来,人家不关注你的架构多牛逼,性能多逆天! 产品是否是咱们需要的,UI是否漂亮,做出来的APP和网站,能否按时交付,推动公司业务发展! 部门负责人、产品、UI设计,是开发阶段,上级老板所关注的。 APP和Web网站,是交付阶段,老板关注的。 业务、架构、算法、测试,一般老板根本不懂,也没有兴趣。原创 2016-07-10 21:22:03 · 12495 阅读 · 4 评论 -
优先使用单表查询,而非联合查询
一、小雷的见解二、海尔电商总监-Richie 三、《高性能MySQL》-权威解读原创 2016-07-04 17:49:09 · 3754 阅读 · 0 评论 -
某电商网站,研发升级和优化,一点建议
本文只是一时兴起,有感而发,仅供参考。定位 网站的总体定位并不是那么清楚! 完全的自营(京东早期) 完全的平台(天猫,淘宝,邀请第三方入驻) 自营+平台(京东) 除了“服装电商”这个概念之外,红人、红人馆、品牌馆、3D试衣,这是咱们的核心特色吗?研发流程 需求-功能-业务1、有明确的开发周期吗,比如4月~5月,要开发的新功能。2、电商网站,要做哪些功能,最核心的是哪原创 2016-04-19 16:56:31 · 4138 阅读 · 0 评论 -
一个HelloWorld版的MySQL数据库管理器的设计与实现(源码)
2011年,实习期间写了一个简单的数据库管理器。今天,特意整理了下,分享给大家。有兴趣的同学,可以下载源码,瞧瞧。源码只有4个类:LoginGUI,DatabaseGUI,Record,MySQLModel。原创 2013-10-25 09:07:50 · 3737 阅读 · 1 评论 -
Java代码规范和一些常见问题
本文中的代码规范,是Java标准代码规范中的一小部分,在我看来,是最重要的一部分。 理想目标:不需要写注释,不需要和别人介绍,别人就知道你的项目大致是做什么的,每个类大概实现了什么功能。一.目的 一致性、快速阅读和理解 后期维护、提高工作效率 团队协作二.代码命名一般原则在JAVA代码中,所有的代码命名的总原则是: 1. 用标准的尽可能无歧义的全英文单词命名的方式,准原创 2016-04-19 22:12:21 · 5670 阅读 · 0 评论 -
如何在一个月内搭建一个自己的博客网站
目的和定位明确你想要做什么,目的是什么。有了明确的需求和目的,才有持续做下去的驱动力。做一个网站需要投入大量时间、金钱和精力,只投入,不产出,是有很大问题的,早晚会放弃。本站的目的:自媒体,分享思想,分享技术。提高个人(FansLei)和团体(FansUnion成员)知名度,帮助朋友、校友、网友、水友等友人。本站的定位:多用户的博客网站。 开发 实现技术:Java实现,原创 2013-05-25 13:39:44 · 3749 阅读 · 2 评论 -
项目需求和客户交流的心得体会
从毕业到现在,做过好几个不同的项目,不想谈论技术相关的话题,我更多的是谈论与客户的交流和沟通。众所周知,客户往往都是不懂系统开发技术的客户群体。所以,对于需求管理人员,既要弄懂客户所描述的系统功能,还要用最通俗的语言,将自己所理解的需求告知客户,待双方达成一致,方可算作好的需求调研。做好需求沟通,其实很重要。因为很多大型企业的老总,都是四五十岁,甚至五六十岁的管理者,我们需要面对的可能是什么都不懂的人,所以,在沟通的过程中,更多的是需要耐心,只有让他们感觉爽了,才会在合同上签字。原创 2013-09-12 10:54:51 · 3575 阅读 · 2 评论 -
有效率的会议方式
开会有效率的方式1. 漫无目的的会议是最令人讨厌的。 2. 开会的真正意图应该是统一认识,查漏补缺,形成结论。讨论只是其中一个不太重要的环节。 不要在会议上去思考问题和发现问题,开会之前这些问题都应该提前发现,并找出解决方案。 3. 开会一定有一个强有力的有控制力的主持人,这样能保证不跑题,开会有效率。 这样开会不会变成聊天的工具。 4. 如果大家意见不统一,或者对某些问题,争论不原创 2013-11-08 23:21:43 · 2075 阅读 · 0 评论 -
提前了解客户背景很有必要
最近,公司与某电商展开了合作,我司将为该电商提供提供一套广告解决方案。我有幸参与到这个项目,了解该电商的需求,思考公司的产品是否能够和如何满足这些需求。近日,我一直很心虚,因为我从来没有在这个电商上买过东西。我网上购物,一般就是买几本书,主要在当当上买。考虑到未来可能和客户交流,或者说为了更好地理解客户的需求,我决定认真了解下这个公司的详细背景。四项措施1.认真看了客户提供的初步的需求文档,对相关原创 2013-11-19 00:21:08 · 3003 阅读 · 1 评论 -
一个电商项目的功能模块梳理
电商项目核心玩法:定制商品+供应链(商品辅料库)+网红社区最近做项目,功能越来越多,想清晰地理解项目,有点累了。今天抽空,把这个项目的核心功能模块简要总结下,顺便画了个图。一、全局功能模块图二、简要介绍1.3大系统 Web系统:面向消费者、网红、卖家等,设备为“PC”等。 Mobile系统:面向消费者、网红、卖家等,设备为“Android”、“iOS”等。 运营系统:面向平台工作人员,运营、原创 2016-07-07 18:28:39 · 18119 阅读 · 0 评论 -
一个电商项目的功能模块梳理2
接着上1篇。Web系统、Mobile APP和运营系统,这3个系统,总体上来说,非常相似。核心职责:界面、用户操作、响应事件、数据、页面渲染。Web端和运营系统: 界面:HTML、CSS 事件:JS绑定 用户操作:浏览器,点击、拖动、滚动 数据:后端同步时就获得了,AJAX获得 页面渲染 同步模版,Freemarker,支持变量,函数等 异步用的模版:JS组件,原创 2016-07-07 19:22:19 · 4435 阅读 · 0 评论 -
悖论:早期互联网项目,是否需要技术含量?
从创业者角度来讲,最理想的情况是,在最短的时间里,把整个“产品”有个简版的实现,符合早期的商业需要就可以了。有了产品,就可以尝试去销售,去运营,去和风险投资人谈投融资。等到有钱了,商业方向初步验证了,再大力在技术方面发力。 但是,从技术人员角度,尤其是很有水平的那种,非常希望做出有“技术含量”的架构。一是,体现出自己的技术水平。二是,更为关键的是,技术是自己的核心竞争力。如果技术水平不提高,项目成功了,自己获得的还是偏少。 三是,项目是否成功,根本说不好,如果老板真的很有信心,技术人员自然更倾向原创 2016-07-30 08:50:51 · 1226 阅读 · 0 评论 -
技术中台战略:SpringBoot+Dubbo+Redis+MybatisPlus整合,3小时再次搞定分布式服务Demo
最近决定搭建的自己的技术中台,之前想短平快,只用本地jar包,工具类,通用代码之类的。发现,有些场景复用不太方便。为了长远打算,也需要搭建自己的技术中台,提供RPC和HTTP各种通用基础服务,比如内容管理等等。也可能用本地jar包模式,直接访问数据库。看情况吧。------------------搭建整合项目的过程中,遇到了太多的问题,真是累坏了。晚饭还没吃。...原创 2019-04-13 20:48:56 · 1630 阅读 · 0 评论 -
掌柜大作战(7):Spring中配置定时任务,封装任务执行流程;同一时刻只让一台机器执行,尽可能避免并发和并行,避免任务数据被处理2次
本文核心问题:Spring中配置定时任务,封装任务执行流程;同一时刻只让一台机器执行,尽可能避免并发和并行,避免任务数据被处理2次。项目中,基本都会存在一些后台性质的工作,可以用定时任务搞定。Spring中配置定时任务,个人倾向使用Spring自带的Task配置,不用引入新的技术点,简单的项目足够了。1、Spring定时任务配置 spring-worker.xml<!-- 0 0/...原创 2019-04-15 19:53:34 · 840 阅读 · 1 评论 -
掌柜大作战(10):人脸识别和图像识别,Java程序员的宿命
在上一篇,写了点思考,专业化分工,尤其是在大公司,每个人做的事情,可能会比较‘专’。比如,有的团队负责消息中间JMQ和分布式服务框架JSF的研发和升级,业务研发团队直接使用他们的组件,简单配置一下,然后就是各种API调用组合,完成业务系统。最近几年,AI人工智能再次火了起来。京东作为互联网巨头,投入不少人力资源到AI的研发上。前段时间,我们部门准确接手一个“人脸识别,自动开门的门禁系统”。...原创 2019-04-06 20:14:57 · 775 阅读 · 0 评论 -
掌柜大作战(17):Spring事务的原理,用自己的语言描述自己的理解
网上解读Spring事务原理的文章已经很多了,谈点自己的理解。看别人的分析,很多时候有种“死记硬背”的感觉,看过了,然后又忘了。或者,不能很好地向别人表达自己的理解。因此,自己写几句,梳理下思路。一、Spring事务的基础:数据库事务Spring事务的本质其实就是数据库对事务的支持,没有数据库的事务支持,spring是无法提供事务功能的。对于纯JDBC操作数据库,想要用到事务,可以按照以...原创 2019-04-06 20:13:58 · 825 阅读 · 0 评论 -
掌柜大作战(25):健身房签到系统,多线程使用不当造成的1个严重bug
10月份,我负责的健身房系统出现了1个严重bug,一时半会也没有找到原因。最终,让另外一个同事分析,发现是多线程的bug。在之前的工作问题记录中,提到过1次多线程bug。一个同事,异步保存一条记录Record。然后传给我方法1个id,这个时候,我去查询get(id)找不到对象,只好退出,因为有时候,它那个异步保存的方法,还没有把对象保存到数据库。业务场景资源:健身房 操课室和器械区...原创 2019-04-06 20:12:55 · 540 阅读 · 3 评论 -
垂直信息流-助理类产品
背景:1、机器学习当道,已然是成熟理念,基于机器学习可以做到诸如,信息分类,聚合,热点提取,用户个性化自动识别。信息相关性阅读。基于这样的商业特点,能对传统应用领域带来质的提升。2、信息流:信息流世面上产品很多,今日头条就是典型,今日头条的大的产品形态就是利用爬虫爬取互联网上的所有新闻,分类,然后根据用户阅读行为,形成精准推链,极大增加用户粘性。此模式已经是当下的主流模式。各家争相效仿。...原创 2019-03-17 21:07:17 · 567 阅读 · 0 评论 -
使用 Microsoft AI 打造你的首款智能机器人(入门只需要1小时)
语言和人文是基础,数理化是未来。当高科技烂大街成为常态,还有啥理由不努力学习AI科学呢。最近在学习AI,一位朋友正好送了我一本AI技术的书籍,如获至宝,写点经验。书的主题:使用 Microsoft AI 打造你的首款智能机器人一、AI养猪尼泊尔农村出来的一个大学生M女士,和大学同学一起,构建了一个畜牧业、兽医实监控设备原型,用于跟踪农场动物的体温、睡眠模式、压力...原创 2019-03-18 20:59:14 · 1495 阅读 · 2 评论 -
配置中心简要设计
配置中心简要设计数据格式统一采用key-value。配置分组,可选,比如支持2级系统分类。分布式配置中心,可以有。个人小项目,可以简化去掉。1.开关:降级开关,功能开关openPostAdd 1openPostDelete 0key可以全局唯一,也可以某个分类下唯一。个人觉得,全局唯一比较好,key的名称可以用“系统+key名”的方式,比如 cms.openPostAdd。...原创 2019-03-01 18:13:46 · 685 阅读 · 0 评论 -
互联网公司的技术体系
互联网,是个较为明确且范围有限的概念。因此,互联网技术相对也是有限的,互联网公司的技术体系也是有限的。站得更高一点看,它也就“那么点技术”。原创 2016-09-29 23:40:25 · 5569 阅读 · 11 评论 -
提高生产力:小雷之问和京东之答
京东集团很先进。就技术研发这个方面,京东的研发体系和环境,可以很好地回答我2013年提出的问题和解决方案:软件复用和知识库。原创 2016-09-25 17:48:56 · 1237 阅读 · 0 评论 -
p2p网贷系统的架构设计
p2p网贷系统,标准版已经初步完成了。 最近写点总结,也算是分享吧。 简介:p2p网贷系统,是理财类的互联网金融系统。核心功能,就是理财人用户注册,冲钱,然后投标,标到期之后,收到回款。如果不想继续玩了,可以提现。 编程语言:Java 开发环境:Eclipse 代码仓库:Git 打包部署:Maven 系统组成1.登录系统login。 所有需要登录的地方,都原创 2015-04-18 11:37:32 · 6256 阅读 · 0 评论 -
网站开发和企业级开发有什么区别?
经常看到Web开发、网站开发、企业级开发,以前很难分清楚它们之前有什么不同?以前也有个说法:Java比较适合企业级开发。 现在经验增加了一点,谈谈我的一点看法。 Web开发:www访问的网页、网站,BS模式。 网站开发:博客、论坛、社交网站、电子商务等网站,BS模式。 企业级开发:电子商务、银行、 保险、金融互联网,可能是www访问,也可能不是。CS和BS模式都可以。 Web开发和原创 2014-09-18 09:00:28 · 3518 阅读 · 0 评论 -
互联网项目开发效率与系统性能的一个取舍问题
今天,leader看了我写的代码,提了一个建议。我在写p2p业务系统的时候,数据库底层使用了“关联查询,left-join”,leader觉得这样性能不好。他建议,不使用关联查询,每次都是单表查询,如果需要查询关联数据,增加一次查询,然后再把两次甚至多次的数据合并。即通过程序而不是sql,合并数据。原创 2014-10-30 15:21:11 · 2590 阅读 · 0 评论 -
电子商务网站的设计与实现(四):项目名称malling和一期开发计划
项目名称:小雷B2C商城系统代号:malling,mall商城的意思,加个ing表示正在进行。更主要的是与“morning”发音很像,非常容易记忆。morning是“早上,上午”的意思,意味着一天的好时光。包名:cn.fansunion.malling 一期开发计划1.设计 事项:业务梳理、数据库设计、系统设计、系统交互设计、技术层次的设计 输出:数据库表malling.sql,3+篇文章原创 2014-12-27 15:18:38 · 5127 阅读 · 1 评论 -
电子商务网站的设计与实现(二):一期功能清单
大致列一下,第一期的主要功能。原则上,只开发最核心的功能,周边功能,二期三期逐步增加。核心功能,就是用户能实现基本的购物,支付之后,商家网站有能力把商品寄到用户的地址去。核心功能,感觉也不是太多。就我目前的开发实践经验来看,一期的主要难度在于,定好整个项目的框架。1. 用户注册、登录2.用户中心 2.1 收货地址 2.2 订单管理 2.3 充值-支付-提现 2.4 个人资料3.商城商品展示原创 2014-12-25 22:46:02 · 4293 阅读 · 0 评论 -
电子商务网站的设计与实现(一):当前的一些购物体验和开发期望
正如2015年度规划中提到的那样,2015年,我想尝试开发一款电子商务网站。主要目的了,就是练练手,提高下能力,在实践中构建和优化自己的开发基础库。如果可以卖钱,自然更好。即使不能,也要不断优化,为若干年之后做IT相关的生意做点准备。 言归正传~ 电子商务相关网站,用的还算比较多的。综合购物网站、垂直购物网站、P2P网贷等一大堆,具体开发相关系统很少,只有P2P网贷系统和一个图书购物网站的D原创 2014-12-24 20:31:37 · 5167 阅读 · 0 评论 -
电子商务系统的设计与实现(十四):菜单高亮
菜单高亮,几乎是所有Web网站都需要的一个功能。 这个功能,说起来,简单得很,给当前页面的菜单增加一个高亮样式,删除其它菜单的高亮样式。 如果只高亮1个页面的菜单, 太简单了,但是如果菜单和页面比较多,就产生了争议。 第1种方式:每个页面单独高亮。 首页 function highlightIndex() { highlight("indexli"); }原创 2015-01-10 14:52:51 · 3376 阅读 · 2 评论 -
关于开发简易搜索引擎的一些总结和思考
在大学期间,有段时间对搜索还是比较感兴趣的,就研究了几天。后来,发现搜索引擎太难搞了,分词啥的,好多都是纯算法。感觉没啥意思,so就半途而废,玩别的技术领域去了。 大学毕业加入秒针,对广告和监测有了一定的兴趣。so又想搞搜索引擎了,大概的目标就是,从网上爬去内容,建立索引,网友搜索、点击、广告点击等监测统计,存到数据库。 这个项目,还真是做了,做完了一个Demo版。借助jsoup和自己写几行代原创 2014-12-21 18:36:57 · 3048 阅读 · 4 评论 -
简洁常用权限系统的设计与实现(七):一种错误的不可行的构造树的方法
前面介绍了4种方法(实质是3种),构造树。 在此,需要特别说明的是,那些都是成功的、漂亮的方法和案例 ,但实际上在解决问题的过程中,有很多其它的尝试。比如本篇介绍的方法,就是不可行的。 想说明一个道理,在走向成功的道路上,会经历很多不算太成功的事情。 我们在前面的例子中,用递归计算子结点的深度level。但实际上,我最开始想到的一种方法正好反过来了。 思路:最底层的节点level为1,如原创 2014-12-21 04:04:06 · 2807 阅读 · 2 评论 -
简洁常用权限系统的设计与实现(六):不维护节点的深度level,手动计算level,构造树 (把一颗无序的树,变成有序的)
本篇介绍的方法,参考了网上的代码。在递归过程中,计算level,是受到了这种方法的启发。 CSDN上有篇关于树的算法,目标是把一个无序的树,变成有序的。 我看了下代码,并运行了下,感觉是可行的。 我在想,既然可以把一棵树完整的遍历下来,那么应该可以知道每个节点的深度level。尝试了下,证明可行。但是,我最终对比本篇的方法,和第5篇中的方法,基本一致。不同的地方是,这篇保存了遍历的顺序,实现了把无原创 2014-12-21 03:50:18 · 2357 阅读 · 0 评论 -
简洁常用权限系统的设计与实现(五):不维护节点的深度level,手动计算level,构造树
这种方式,与第三篇中介绍的类似。不同的是,数据库中不存储节点的深度level,增加和修改时,也不用维护。而是,在程序中,实时去计算的。至于后面的,按照level升序排序,再迭代所有的节点构造树,与第三篇中的方法,完全一样。因此,本篇和下一篇,只介绍如何计算level,不再介绍后面的具体实现了。 计算level,采用递归方式。 // 计算所有节点的level public static List>原创 2014-12-21 03:35:49 · 3176 阅读 · 1 评论 -
简洁常用权限系统的设计与实现(四):不维护level,用递归方式构造树
第三篇中,我们通过维护节点的深度level,通过迭代所有的节点,只需要一次,就构造了树。 本篇,换一种方式。 好处是:不维护节点的深度level,增加和修改节点时,也不用维护。递归实现,代码比较清晰。 坏处是:节点较多的时候,性能可能不够好。不能直接查询到节点的深度level。当然,如果需要level字段,在递归过程中,是可以计算得到的。关于在递归过程中,计算level,后面有介绍这种方法。原创 2014-12-21 03:29:05 · 3034 阅读 · 0 评论 -
简洁常用权限系统的设计与实现(三):维护和利用节点的深度level,迭代实现树的构造
如果在节点的属性中,增加一个level属性,即树的深度,构造树会非常容易。前提是,增加和修改节点的时候,要维护level。 根节点的level为1,下一级为2,以此类推。 构造树的方法,主要有2个: // 按照level排序,根节点在上,子结点在下public static List> buildTree(List list) {List> rootList = new ArrayL原创 2014-12-20 21:23:56 · 2569 阅读 · 0 评论 -
简洁常用权限系统的设计与实现(一):构造权限菜单树的N(N>=4)种方法
权限系统,Web开发常见标准子系统之一。结合自己的一些思考和实践,从本篇开始权限系统的设计与实现之路。 最近,重构了项目的权限菜单构造过程,向前端返回json格式的权限树。 这一篇,只是大致介绍下这个问题,并给出4种方法的整体思路,后续再分别详细介绍这4种方法,再往后介绍完整的权限系统的设计与实现。 权限表的结构: acl、parent_acl, 最重要的就是这2个字段,有了这2个字段,就可以构造原创 2014-12-17 20:20:34 · 3225 阅读 · 0 评论 -
与Boss大雷探讨JavaWeb开发、电商与网络安全
最近几个月,与公司Boss大雷交流得比较多,也学习到了很多新的东西,了解到了一些没有接触和实践的业界做法。 简要介绍下Boss,姓雷,定居武汉好几年了,之前在一号店、UC、支付宝干过,有丰富的电商-支付-游戏开发经验。 这几个月,我一边工作,一遍学习了下他的设计。这些设计,Boss主要参考了支付宝等前几家公司的架构设计经验,当然还有自己对技术的理解,对一起好项目的业务理解。 最近探原创 2014-12-27 17:09:25 · 3692 阅读 · 0 评论