`
文章列表
介绍 编写一个应用程序并行运行很困难,对吧?我的意思是,它一定很难,否则我们会看到各处的并行程序。我们所看到的都是平滑的并行应用程序,可以毫不费力地使用每个可用的核心。相反,多线程应用程序是例外而不是 ...
这篇文章是关于什么的 参与项目决策的人必须意识到他们的决定对项目的成功和成本以及时间和金钱的影响。 对于我20多年的软件开发经验和10多年的咨询工作,我作为架构师或开发人员参与了许多项目 - 其中大多数成功,有些失败,但每个项目(无论成功与否)都涉及好的和不好的决策由各种人制作。 本文的目的是通过提倡根据我的经验做出的决定以及避免错误的决策来为项目成功奠定基础。 总的来说,我拥有C ++,Java,C#和JavaScript的经验,但在过去的10年中,我一直主要致力于C#桌面应用程序。尽管如此,这里提出的许多想法都具有一般性。当我讨论一个C#桌面应用程序时,我明确地陈述它。 软件开 ...
Java并发编程在实际的工作中应用广泛,有时候需要通过多线程去异步做一些事情,有时候需要通过多线程提升一个任务执行的效率。互联网公司面试最常问到的点。本文有点长,代码比较多,请耐心看完,提升是需要一个学习的过程。 关键概念 上下文切换 概念:CPU通过时间片算法,给可运行的线程分配运行时间,在不同线程之间的切换时需要将当前线程的状态保存并回复将要执行的线程状态信息,这个过程就是上下文切换。 如何减少或避免上下文切换? 无锁并发编程 CAS算法 使用最少线程 协程 死锁 概念:两个或多个线程持有对方正在等待的锁 ...
2014作为代表公司去学习微服务,经过一番打拼,如今也算是微服务的布道师。 这两年,微服务这个概念火了,火到什么程度呢?2016年有一个统计说,两千家企业里,30%   在使用微服务,15%在实验开发和测试微服务架构,24% ...
缓存一致性问题 当数据时效性要求很高时,需要保证缓存中的数据与数据库中的保持一致,而且需要保证缓存节点和副本中的数据也保持一致,不能出现差异现象。这就比较依赖缓存的过期和更新策略。一般会在数据发生更改 ...
每一个Java 开发人员都知道字节码由JRE (Java运行时环境)执行。但许多人不知道JRE是Java虚拟机(JVM)的实现, 它负´
前言 成为优秀的架构师是大部分初中级工程师的阶段性目标。优秀的架构师往往具备七种核心能力:编程能力、调试能力、编译部署能力、性能优化能力、业务架构能力、在线运维能力、项目管理能力和规划能力。 这几种能力之间的关系大概如下图。编程能力、调试能力和编译部署能力属于最基础的能力。不能精通掌握这三种能力,很难在性能优化能力和业务架构能力方面有所成就。具备了一定的性能优化能力和业务架构能力之后,才能在线运维能力和项目管理能力方面表现优越。团队管理能力是最高能力,它对项目管理能力的依赖度更大。 基本知识 1.学会分析源码 程序员每天都和代码打交道。经过数年的基础教育和职业培训,大部分程序员 ...
Java语言在2015年首次荣登编程语言热门榜的榜首,2018年再度登上榜首,下面不妨让我们来看看Java开发工程师的
前言: 最近有好多人问我说:“George,怎样才能成为公司里的前线主力架构师,我现在在公式已经干了快五年了,现在还是一个默默无闻的程序员,我也通过很多种渠道来突破我现在瓶疾,但就是走不出来,技术也一直没有突破上去,我真的是没有办法了,通过朋友推荐介绍,说您这里可以解决我的技术瓶疾,所以我想请你帮我突破一下技术方面上的瓶疾。” 你们是否有也有类似这样的问题——“天天写业务代码的程序员,怎么成为技术大牛,开始写技术代码?” 今天,我和我之前一起共事的朋友,一起探讨出了这么一个结论:要怎样努力才可以成为公司主力架构师。 不管是开发、测试、运维,每个技术人员心里多多少少都有一个成为技术大牛的 ...
本文是学习大型分布式网站架构的技术总结。对架构一个高性能,高可用,可伸缩,可扩展的分布式网站进行了
这是从450家企业的招聘信息中统计而来,相对来说还是比较真实的,虽然有些公司的招聘要求万年不变,但还是可以大致反应企业的招聘要求的。
Global site tag (gtag.js) - Google Analytics