当你做对了,就可以改变世界。最年轻CEO叶礽僖不知从何时起,“自古英雄出少年”,这句话在我们心中早已渐行渐远。10岁~13岁的小朋友,花一般的少年。可我们却常看他们:背着沉甸甸的书包和期望,想着写不完的作业和叮嘱,吃着小卖部的辣条和烤肠,忙着追星和聊八卦,玩着王者荣耀刷抖音···但当我们看到叶礽僖,你一定会感叹:谁说现在没有“少年英雄”?10岁获得AIA创业大赛冠军,11岁开发出全球首款儿童语言社区APP,12岁辍学成立自己的软件公司,...
7年前 (2018-06-18)
阅读(3297)
赞一个 (5 )
链接直达
作为一个老技术人,今天不聊技术,就聊点技术人员职业发展的事情:对技术管理岗位的认知,比如技术总监。先贴一张技术人员职业发展路线图,按照管理路线和技术路线区分。在国外管理路线和技术路线的职位会按照 IT Manager 和 TechLead 去区分。但在国内其实是没有纯粹的管理路线,管理岗位中一定有具体技术工作的要求。今天我说说对“技术总监”岗位职能要求的理解。我理解技术总监的权责范畴应该包括:技术性工作管理性工作,分为人员管理(即团队管...
7年前 (2018-06-18)
阅读(2865)
赞一个 (4 )
链接直达
编写代码只是软件开发的一小部分,更多的时间往往花在构建(build)和测试(test)。为了提高软件开发的效率,构建和测试的自动化工具层出不穷。Travis CI 就是这类工具之中,市场份额最大的一个。本文介绍 Travis CI 的基本用法。用好这个工具不仅可以提高效率,还能使开发流程更可靠和专业化,从而提高软件的价值。而且,它对于开源项目是免费的,不花一分钱,就能帮你做掉很多事情。一、什么是持续集成?Travis CI 提...
7年前 (2018-06-18)
阅读(2614)
赞一个 (0 )
链接直达
本来想花几个小时来写一篇完整的教程文章的,但是看了看简书上还是有不少好的类似文章,索性就转载过来吧,感谢这位博主的辛苦。下面文章有几个注意的点,由于GitHub的版本更新,下面的(第六步、第七步)有一点点差异,但是不影响。一、为什么选择github?github有一个很有爱的项目,叫做github pages,这个项目是给开发者建立一个私人页面,上面用来分享新颖的想法和自己写的代码,而且最主要的是,这个是免费而且没有空间流量限制的。这也...
7年前 (2018-06-17)
阅读(3584)
赞一个 (4 )
链接直达
一、为什么写这篇文章?博主有两位朋友分别是小A和小B:小A,工作于传统软件行业(某社保局的软件外包公司),每天工作内容就是和产品聊聊需求,改改业务逻辑。再不然就是和运营聊聊天,写几个SQL,生成下报表。又或者接到客服的通知,某某功能故障了,改改数据,然后下班部署上线。每天过的都是这种生活,技术零成长。小B,工作于某国企,虽然能接触到一些中间件技术。然而,他只会订阅/发布消息。通俗点说,就是调调API。对为什么使用这些中间件啊?如何保证高...
7年前 (2018-06-16)
阅读(6552)
赞一个 (3 )
链接直达
引言在文章的开头,先说下NPE问题,NPE问题就是,我们在开发中经常碰到的NullPointerException.假设我们有两个类,他们的UML类图如下图所示在这种情况下,有如下代码user.getAddress().getProvince();这种写法,在user为null时,是有可能报NullPointerException异常的。为了解决这个问题,于是采用下面的写法if(user!=null){
&nb...
7年前 (2018-06-16)
阅读(75673)
赞一个 (86 )
链接直达
一、为什么使用redis分析:博主觉得在项目中使用redis,主要是从两个角度去考虑:性能和并发。当然,redis还具备可以做分布式锁等其他功能,但是如果只是为了分布式锁这些其他功能,完全还有其他中间件(如zookpeer等)代替,并不是非要使用redis。因此,这个问题主要从性能和并发两个角度去答。1、性能如下图所示,我们在碰到需要执行耗时特别久,且结果不频繁变动的SQL,就特别适合将运行结果放入缓存。这样,后面的请求就去缓存中读取,...
7年前 (2018-06-16)
阅读(2781)
赞一个 (2 )
链接直达
一、背景相信大家在面试过程中遇到面试官问线程的很多,线程过后就是线程池了。从易到难,都是这么个过程,还有就是确实很多人在工作中接触线程池比较少,最多的也就是创建一个然后往里面提交线程,对于一些经验很丰富的面试官来说,一下就可以问出很多线程池相关的问题,与其被问的晕头转向,还不如好好学习。此时不努力更待何时。二、什么是线程池?线程池是一种多线程处理形式,处理过程中将任务提交到线程池,任务的执行交由线程池来管理。如果每个请求都创建一个线程去...
7年前 (2018-06-16)
阅读(2890)
赞一个 (5 )
链接直达
在上一篇漫画中,小灰介绍了如何使用redis实现分布式锁。没看过的小伙伴可以点击下面链接:漫画:什么是分布式锁?那么,如何用Zookeeper来实现分布式锁呢?这一次我们会为大家详细讲述。什么是临时顺序节点?让我们来回顾一下Zookeeper节点的概念:Zookeeper的数据存储结构就像一棵树,这棵树由节点组成,这种节点叫做Znode。Znode分为四种类型:1、持久节点 (PERSISTENT)默认的节点类型。创建节点的客户端与zo...
7年前 (2018-06-16)
阅读(3328)
赞一个 (0 )
链接直达
————— 第二天 —————————————————分布式锁的实现有哪些?1、Memcached分布式锁利用Memcached的add命令。此命令是原子性操作,只有在key不存在的情况下,才能add成功,也就意味着线程得到了锁。2、Redis分布式锁和Memcached的方式类似,利用Redis的setnx命令。此命令同样是原子性操作,只有在key不存在的情况下,才能set成功。(setnx命令并不完善,后续会...
7年前 (2018-06-16)
阅读(2717)
赞一个 (0 )
链接直达
男朋友是程序员,每天熬夜又对着电脑,真的太伤身体了,可是我没法让他早睡……我能为他做点什么吗╯﹏╰正常状态:喜欢常年坐在电脑桌前,双眼紧盯屏幕,十指敲击键盘,忘了时间忘了天地,和电脑一生一世一双人。bug 状态:抓耳挠腮,薅头发,45 度仰望天空,怀疑人生。1. 不要随便买机械键盘!!有钱的话可以买好一点的显示器,不是所有的程序员都喜欢机械键盘,我教研室的师兄买了机械键盘之后就闲置了。但是显示器总是很给力的,我的好多程序员男同学都自己买...
7年前 (2018-06-16)
阅读(4525)
赞一个 (6 )
链接直达
你是不是还在怀念曾经逝去的高三,遗憾自己没有超常发挥,或者遗憾自己志愿表没有填好。其实,只要志愿选的好,年年期末像高考。比如,你选择了计算机专业,那么你将面临高等数学、线性代数、C语言、计算机引论、离散数学、电子技术、C++程序设计、汇编语言程序设计、计算机组成原理、编译原理、操作系统、数据库原理……又是一年高考季,一起来做做“程序员们的高考试卷”,压压惊吧~2018年普通高等学校招生全国统一考试(A卷)程序员的高考试卷(A卷)考生类别...
7年前 (2018-06-16)
阅读(3180)
赞一个 (2 )
链接直达