人生是一场回不去的旅行。很多人都想在有限的人生取得尽可能大的成就,我也是这样的人。但是创业5年屡战屡败,深深的教育了我。有时候,并不是每个人的付出都会有回报。过去的一年,我差点陷入抑郁症,整夜失眠、焦虑、痛苦。创业的挫败、下属的不认可、身边朋友的轻视,这一切让我觉得真特么失败。那段痛苦岁月,我最终走了出来,有几个思考和大家分享下。
程序员使用的语言有鄙视链吗?有人说有,有人说没有。一个美团员工发帖说,筛选简历时用go语言的基本不看。短短一句话,把对go语言的鄙视体现得淋漓尽致,难道go语言真的不如其他语言?
下面我们就要对不同的协议层进行分类介绍了,我们还是采用自上而下的方式来介绍,这种介绍对读者来说更容易接纳,吸收程度更好。
一位七牛的资深架构师曾经说过这样一句话:Nginx+业务逻辑层+数据库+缓存层+消息队列,这种模型几乎能适配绝大部分的业务场景。这么多年过去了,这句话或深或浅地影响了我的技术选择,以至于后来我花了很多时间去重点学习缓存相关的技术。我在10年前开始使用缓存,从本地缓存、到分布式缓存、再到多级缓存,踩过很多坑。下面我结合自己使用缓存的历程,谈谈我对缓存的认识。
JDK 是什么?JDK 是用于支持 Java 程序开发的最小环境。JRE 是什么?JRE 是支持 Java 程序运行的标准环境。
在没有用Optional判空之前,你是否也像下面的代码一样判空呢?如果是,请往下看,Optional 相对传统判空的优势。
我是一个网络监控软件,我被开发出来的使命就是监控网络中进进出出的所有通信流量。一直以来,我的工作都非常的出色,但是随着我监控的网络越来越庞大,网络中的通信流量也变得越来越多,我开始有些忙不过来了,逐渐发生丢包的现象,而且最近这一现象越发的严重了。
相信使用Java的同学都用过Maven,这是一个非常经典好用的项目构建工具。但是如果你经常使用Maven,可能会发现Maven有一些地方用的让人不太舒服。
重构,着实是一件让程序员兴奋的事情。今年年初,我们团队完成了一个复杂项目的重构工作,它属于广告系统最核心的引擎部分,大概有300多个文件,3万多行代码。 从技术方案设计到最终全量上线仅仅花了1个月左右的时间,而且没有产生事故。 这应该是我8年程序生涯中,经历过的最大型的同时最成功的一次重构项目:速度足够快、计划比较周全、质量过关。
说说进程和线程的区别?进程是程序的一次执行,是系统进行资源分配和调度的独立单位,他的作用是是程序能够并发执行提高资源利用率和吞吐率。由于进程是资源分配和调度的基本单位,因为进程的创建、销毁、切换产生大量的时间和空间的开销,进程的数量不能太多,而线程是比进程更小的能独立运行的基本单位,他是进程的一个实体,可以减少程序并发执行时的时间和空间开销,使得操作系统具有更好的并发性。
大型互联网公司一般都会要求消息传递最大限度的不丢失,比如用户服务给代金券服务发送一个消息,如果消息丢失会造成用户未收到应得的代金券,最终用户会投诉。为避免上面类似情况的发生,除了做好补偿措施,更应该在系设计的时候充分考虑各种异常,设计一个稳定、高可用的消息系统。
都知道程序员工资高,但同时也要承受996的高强度工作。 那么程序员里什么群体比较多呢? 一个程序员发帖说,程序员基本都是diao丝,大多是农村进城务工人员,有资源有关系的人都不干程序员这行。
小张,开发一个大型系统,写了一个统一的接口层;日志门面(日志的一个抽象层);logging-abstract.jar;给项目中导入具体的日志实现就行了;我们之前的日志框架都是实现的抽象层……