程序人生
Bolon0708
昨日已成过往,明日未来可期。
展开
-
【收藏】饿了么4年 + 阿里2年:研发路上的一些总结与思考
“最重要的是选择,最困难的是坚持。”我是在 2014 年入职饿了么,从前端和 PHP 一直做到后端架构和团队,从 2014 年到 2017 年陆续负责过公司客服、销售、代理商、支付、清结算、订单这些业务的产研与团队;2018 年从业务研发团队抽身,6 个人组起一个小组投身机器学习,试图结合实际的业务场景通过技术改造业务;2019 年回归到平台(中台)研发,负责交易、金融、营销三个中台的研发和团队工作。基于我在饿了么4年和阿里巴巴 2 年研发经历,从技术、业务、管理和架构层面分享一些我的思考。技术层面转载 2020-07-27 10:54:59 · 457 阅读 · 0 评论 -
Java 代码精简之道
前语古语有云:道为术之灵,术为道之体;以道统术,以术得道。其间:“道”指“规矩、道理、理论”,“术”指“办法、技巧、技能”。意思是:“道”是“术”的魂灵,“术”是“道”的肉体;能够用“道”来统管“术”,也能够从“术”中取得“道”。在拜读大佬“孤尽”的文章《Code Review是苦涩但有意思的修行》时,感触最深的一句话便是:“优质的代码必定是少便是多的精兵准则”,这便是大佬的代码精简之“道”。工匠寻求“术”到极致,其实便是在寻“道”,且离悟“道”也就不远了,亦或是现已得道,这便是“工转载 2020-05-20 14:26:06 · 372 阅读 · 0 评论 -
网站发展历程九大阶段,及知识体系梳理
目录网站发展历程java入门框架基础阶段一:单体项目阶段二:物理分离应用和数据库阶段三:缓存化、静态化阶段四:应用负载均衡,集群阶段五:动静分离阶段六:分布式缓存、缓存集群阶段七:读写分离、分库分表阶段八:微服务架构阶段九:NoSql与分布式搜索引擎B站视频讲解结束语网站发展历程用思维导图学习java真的是一个不错的方式!今天,我们用...转载 2019-12-26 16:31:44 · 1369 阅读 · 0 评论 -
host地址切换工具-SwitchHosts
目录什么是hosts文件?SwitchHosts普通方式切换hostSwitchHosts切换host(推荐)使用注意事项:什么是hosts文件?简单的说,hosts文件是用于本地dns服务的,采用ip域名的格式写在一个文本文件当中,Hosts是一个没有扩展名的系统文件,可以用记事本等工具打开,其作用就是将一些常用的网址域名与其对应的IP地址建立一个关联“数据库”...原创 2019-12-07 13:12:09 · 35175 阅读 · 2 评论 -
尽量避免 Bug 的一些手法
最近参与了几个需求开发,BUG很少,有些需求没BUG,有些才一个BUG,搞的测试人员还发牢骚说,大佬,你负责的项目,bug都少的可怜,叫俺怎么活?哈哈,其实测试人员要感谢我才对,因为开发人员的代码质量高了,会极大的提升测试人员测试的速度,因为测试过程中非常顺畅,没啥阻碍的东西。设想一下,如果提测后,代码BUG满天飞,测试人员不断的提BUG单,开发人员不断的修复,一不小心还可能修复出其他...转载 2019-12-06 09:48:38 · 283 阅读 · 0 评论 -
谷歌浏览器安装json格式化插件
实际开发工作中经常用到json数据,那么就会有这样一个需求:在谷歌浏览器中访问URL地址返回的json数据能否按照json格式展现出来。比如,在谷歌浏览器中访问:http://jsonview.com/example.json展现效果如下:那么安装了JsonView扩展程序后的展现效果如下:很明显,后者的效果更好。实现步骤如下:1、下载JsonView扩展程序压缩包下载...转载 2019-11-26 19:50:06 · 584 阅读 · 0 评论 -
阿里新版java开发手册(2019华山版、2020泰山版)
pdf文件链接: https://pan.baidu.com/s/15Q_qCyqLTG0wBFyHVM3zog提取码: in6y目录一、 编程规约(一) 命名风格(二) 常量定义(三) 代码格式(四) OOP 规约(五) 集合处理(六) 并发处理(七) 控制语句(八) 注释规约(九) 其它二、异常日志(一) 异常处理(二) 日...原创 2019-11-12 19:14:13 · 7232 阅读 · 1 评论 -
【避坑】FastJson稍微使用不当就会导致StackOverflow
目录问题再现FastJson的实现原理JavaBeanSerizlier序列化原理如何避免StackOverflowError总结对于广大的开发人员来说,FastJson大家一定都不陌生。FastJson(https://github.com/alibaba/fastjson)是阿里巴巴的开源JSON解析库,它可以解析JSON格式的字符串,支持将Java Bean序列化...转载 2019-11-12 10:04:36 · 1971 阅读 · 1 评论 -
如何在 Spring/Spring Boot 中做参数校验?你需要了解的都在这里!
目录基础设施搭建相关依赖实体类验证Controller的输入验证请求体(RequestBody)验证请求参数(Path Variables 和 Request Parameters)验证 Service 中的方法Validator 编程方式手动进行参数验证自定以 Validator(实用)案例一:校验特定字段的值是否在可选范围案例二:校验电话号码使用...转载 2019-11-11 16:24:46 · 785 阅读 · 0 评论 -
从零开始搭建创业公司后台技术栈
目录一、各系统组件选型1、项目管理/Bug管理/问题管理2、DNS3、LB(负载均衡)4、CDN5、RPC框架6、名字发现/服务发现7、关系数据库8、NoSQL9、消息中间件10 、代 码管理11、持续集成12、日志系统13、监控系统14、配置系统15、发布系统/部署系统16、跳板机17、机器管理二、创业公司的选择1、...转载 2019-11-07 11:08:09 · 335 阅读 · 0 评论 -
细思极恐-你真的会写java吗?
目录文章核心讲述方向技术点开发工具更换IDE别告诉我快捷键不好用beandomain包名DTODTO转化场景请使用工具转化的语义抽象接口定义review code再查工具类bean的验证为什么要验证jsr 303验证拥抱lombok去掉Setter和Getterbean中的链式风格静态构造方法使用bui...转载 2019-09-12 16:46:50 · 253 阅读 · 1 评论 -
作为一名程序员,谁没跳过槽,“6”招让你“空降”大厂
作为一名程序员,没有谁没跳过槽撇开在跳槽时对所“空降”的企业所需要的行业知识知根知底而“得心应手”,从而“稳定”外,其他人可能或多或少都有过因“不适应”新单位环境而又被迫再离开的厄运,以至于在再“找工作”时因为不能“骑马选马”而每况日下!有32.98%的开发者在过去一年中曾换过工作,其中有72.5%的人实现了薪资上涨。而在未换工作的开发者中,约有59.3%的开发者同样能够涨薪。下班前简...转载 2019-07-27 14:21:11 · 189 阅读 · 0 评论 -
如何在面试中介绍自己的项目经验
目录1 在面试前准备项目描述,别害怕,因为面试官什么都不知道2 准备项目的各种细节,一旦被问倒了,就说明你没做过3 不露痕迹地说出面试官爱听的话4 一定要主动,面试官没有义务挖掘你的亮点5 一旦有低级错误,可能会直接出局6 引导篇:准备些加分点,在介绍时有意提到,但别说全7 你可以引导,但不能自说自话8 不是结尾的总结在面试时,经过寒暄后,一般面...转载 2019-07-17 13:14:03 · 585 阅读 · 0 评论 -
从零开始 Code Review,两年实战经验分享!
目录一、流程和规则二、执行三、收获四、总结前几天看了《Code Review 程序员的寄望与哀伤》,想到我们团队开展Code Review也有2年了,结果还算比较满意,有些经验应该可以和大家一起分享、探讨。我们为什么要推行Code Review呢?我们当时面临着代码混乱、Bug频出的状况。当时我觉得要有所改变,希望能提高产品的代码质量,改善开发团队面临的困境。并且我个人在开...转载 2019-06-25 14:32:16 · 380 阅读 · 0 评论 -
权限设计的一些想法和思考
目录1.什么是权限2.权限的划分原则3.角色与权限的关系4.数据表的设计思路5.安全框架引用的文章这篇文章的定位,不是宣传某个框架,仅仅之是梳理一下有关权限方面的一些想法和最近项目中的一些探索过程。 我们主要想解决一下问题。什么是权限,程序员理解的权限和客户所理解的权限是不是一致的。 权限的划分原则,权限到底是根据什么原则进行组合的。 角色是用户与权限之间的必要...转载 2019-06-06 13:35:25 · 199 阅读 · 0 评论 -
淘宝服务端高并发分布式架构演进之路
目录1. 概述2. 基本概念3. 架构演进3.1 单机架构3.2 第一次演进:Tomcat与数据库分开部署3.3 第二次演进:引入本地缓存和分布式缓存3.4 第三次演进:引入反向代理实现负载均衡3.5 第四次演进:数据库读写分离3.6 第五次演进:数据库按业务分库3.7 第六次演进:把大表拆分为小表3.8 第七次演进:使用LVS或F5来使多个Nginx负...转载 2019-06-05 16:45:50 · 423 阅读 · 1 评论 -
前后端分离接口规范~
目录1. 前言2. 为何要分离3. 什么是分离4. 如何做分离4.1 职责分离4.2 开发流程4.3 具体实施5. 接口规范V1.0.05.1 规范原则5.2 基本格式5.2.1 请求基本格式5.2.2 响应基本格式5.3 响应实体格式5.4 响应列表格式5.5 响应分页格式5.6 特殊内容规范5.6.1 下拉框、复选框、单选框...转载 2019-06-05 16:27:18 · 367 阅读 · 0 评论 -
面试最让你手足无措的一个问题:你的系统如何支撑高并发?
目录(1)一道面试题的背景引入(2)先考虑一个最简单的系统架构(3)系统集群化部署(4)数据库分库分表 + 读写分离(5)缓存集群引入(6)引入消息中间件集群(7)现在能hold住高并发面试题了吗?(8)本文能带给你什么启发?(1)一道面试题的背景引入这篇文章,我们聊聊大量同学问我的一个问题,面试的时候被问到一个让人特别手足无措的问题:你的系统如何支撑高并发...转载 2019-01-28 10:12:18 · 433 阅读 · 0 评论 -
程序员需要避免的 10 个坏习惯
目录1. 休息不够2. 拒绝寻求帮助3. 停止学习4. 混乱的代码5. 工作和生活的不平衡6. 糟糕的办公室政治7. 不能从错误中吸取教训8. 太早放弃9. 做一个无所不知的人10. 不接受建设性批评 每位开发人员在自己的职业生涯、学习经历中,都会“开发”出一些坏习惯。希望如果你刚开始这份事业,能够避免这些坏习惯;如果你已经有了这些毛病,那希望你能够意...转载 2019-01-28 10:30:44 · 246 阅读 · 0 评论 -
架构师必须掌握的七大知识点!
不想当将军的兵不是好兵,就程序猿不想当架构师就不是好的程序员!Java架构师主要需要做哪些工作呢?1、负责设计和搭建软件系统架构(平台、数据库、接口和应用架构等),解决开发中各种系统架构问题。2、优化现有系统的性能,解决软件系统平台关键技术问题攻关、核心功能模块设计、核心代码开发。3、在项目需求不断细化的工程中校正整体的架构设计,以及详细模块拆分设计。4、营造技术学习氛围,...转载 2019-02-28 21:10:30 · 1176 阅读 · 0 评论 -
软件开发中会用到的图
目录一、背景二、图为了解决什么问题三、不同流程中适合运用的图 1.用例图 2.鲁棒图(Robustness Diagram) 3.思维导图 4.DFD(Data Flow Diagram)图 5.流程图 6.UML类图 7.状态图 8.E-R图 9.UML时序图四、实际的运用五、结语一、背景 大家应该在从事软件开发...转载 2019-03-20 13:12:58 · 379 阅读 · 0 评论 -
Java开发人员必知必会的20种常用类库和API
一个有经验的Java开发人员特征之一就是善于使用已有的轮子来造车。《Effective Java》的作者Joshua Bloch曾经说过:“建议使用现有的API来开发,而不是重复造轮子”。在本文中,我将分享一些Java开发人员应该熟悉的最有用的和必要的库和API。顺便说一句,这里不包括框架,如Spring和Hibernate因为他们非常有名,都有特定的功能。本文总结了日志、JSON解析、单测...转载 2019-03-20 16:03:35 · 253 阅读 · 0 评论 -
开发人员也要懂点测试的知识
作为开发人员,我们也是需要掌握一些测试知识的,至少单元测试是要自己写的,功能自测也是要完成的。 软件测试,从不同的角度出发会派生出两种不同的测试原则。从用户的角度出发,就是希望通过软件测试能充分暴露软件中存在的问题和缺陷。 从开发者的角度出发,就是希望测试能表明软件产品不存在错误,已经正确地实现了用户的需求。无论是开发人员还是测试人员,都需要遵守以下八大测试原则:1.应当...转载 2019-03-22 14:45:45 · 778 阅读 · 0 评论 -
【架构师成长必备】如何阅读一个开源项目的源码?
目录前言1 从最简单的源码开始:别幻想一步登天2 循序渐进:先搞定底层依赖的技术3 一定要以Hello World作为入口来阅读4 抓大放小,边写注释边画图5 反复三遍:真正理解源码6 借力打力:参考源码分析书籍及博客7 最后寄语:用几年时间锻造自己的核心技术前言这篇文章,给大家简单介绍一下很多同学都非常关心的一个问题:如何阅读一个开源项目的源码。我...转载 2019-04-03 17:17:27 · 378 阅读 · 0 评论 -
最近面试 Java 后端开发的感受!
上周,密集面试了若干位Java后端候选人,工作经验在3到5年间。我的标准其实不复杂(适用90%小小小公司,BAT等自动忽略):第一能干活,第二Java基础要好,第三最好熟悉些分布式框架。我相信其它公司招初级开发时,应该也照着这个标准来面的。我也知道,不少候选人能力其实不差,但面试时没准备或不会说,这样的人可能在进团队干活后确实能达到期望,但可能就无法通过面试,但面试官总是只根据面试情况...转载 2019-04-03 17:37:17 · 383 阅读 · 1 评论 -
八点建议助您写出优雅的Java代码
目录1.使用 IntelliJ IDEA 作为您的集成开发环境 (IDE)2.使用 JDK 8 或更高版本3.使用 Maven/Gradle4.使用 Lombok5.编写单元测试6.重构:常见,但也很慢7.注意代码规范8.定期联络客户,以获取他们的反馈总结在每一位刚入行的程序员的心中,编写程序都是一门神圣的艺术创作。他们无不希望自己的代码作品既简洁清晰,又可...转载 2019-04-25 20:07:27 · 356 阅读 · 0 评论 -
【斩获7枚offer,入职阿里平台事业部】横扫阿里、美团、京东、 去哪儿之后,写下了这篇面经!
自身情况跳槽之前,楼主在一个小型互联网公司,主要是做互联网彩票。其中做过面向用户的APP,也有o2o模式的,也有b2b模式的的项目,用的技术比较杂,没有指定的规范,只要能完成任务就可以,技术挑战也不是很大。然后我只能把我所做的东西做好,推动一些新技术更是难上加难,主要都是业务为主,对于高并发、高可用等技术方案犹如天上月亮一样,只可远观,而不可亵玩焉。然而去年10月,国家发布新的法律...转载 2019-04-30 16:06:25 · 822 阅读 · 0 评论 -
程序员编程中,有哪些好的习惯一开始就值得坚持
目录#1 - 在开始编码之前先规划和组织代码#2 - 避免大块重复代码,小块也不行#3 - 使用易于阅读的命名约定#4 - 注释所有代码,即使它看起来很明显#5 - 在构建时测试和调试代码#6 - 实现版本控制系统#7- 多吃枸杞,养生、护发、防猝死。说一些基础的、适用于初学者的好习惯。#1 - 在开始编码之前先规划和组织代码在项目的开始阶段,不要上手直...转载 2019-05-07 16:08:02 · 226 阅读 · 0 评论 -
各位根本不会写 Java!包括我哈
目录1、技术点2、开发工具3、Bean4、Bean 的验证5、拥抱 lombok6、重构7、设计模式8、技能9、总结以下专题教程也许您会有兴趣1、技术点本文不是一个吹嘘的文章,不会讲很多高深的架构,相反,会讲解很多基础的问题和写法问题,如果读者自认为基础问题和写法问题都是不是问题,那请忽略这篇文章,节省出时间去做一些有意义的事情。2、开发工具...转载 2019-05-23 13:18:19 · 163 阅读 · 0 评论 -
凭什么老程序员被裁,应届生却能月薪 1.3 万?
本文转载自微信公众号:程序人生近日,2019届全国普通高校毕业生平均期望月薪出炉。大学生期望薪资排名前三位的依次是:北京:平均期望薪资12992元/月;上海:平均期望薪资12070元/月;南京:平均期望薪资9771元/月。图片来源:羊城晚报与应届生高期望薪资相对的是,陆续传出众多企业大裁员的消息。这场裁员潮真的是来的快且急啊,让很多人措手不及。。2019年最值钱的并不...转载 2018-12-28 16:22:14 · 574 阅读 · 0 评论