从C到汇编:栈是计算机工作的基础

作者:r1ce

       原创作品转载请注明出处
      《Linux内核分析》 MOOC课程http://mooc.study.163.com/course/USTC-1000029000
       关于计算机是如何工作的,这是一个容易概括却难以详解的问题。大家非常清楚的冯诺依曼体系,以存储程序为最重要的特性,实际上就是CPU像一个大管家一 样,通过种种方式在浩如烟海的内存中,找出需要执行的指令,和需要使用的数据。那么CPU如何区分指令和数据,如何知道确定指令执行的顺序呢?

[......]

阅读全文

Swift编程的15个技巧

相对于Objective-C,Swift是一种编译代码时速度更快、安全性与可靠性更高、同时具有可预测性的语言。下面我们列出了在实践中使用这种新语 言时,所获取一些Swift使用技巧。这些技巧有助于让开发者编写出更干净的代码,并能帮助更熟悉Objective-C的程序员适应Swift编程,同 时适用于在Swift上具有各种背景经历的人,请继续往下看。[......]

阅读全文

未来编程的9大猜想

科学家称时间是匀速前行的,智者称万物以光速而变化——然而科技的瞬息万变仍旧无从求解,一眨眼,又是另一番景象了。

很多人巴不得能够看透未来,但未来五年顶多是猜测而已。预测科技发展简直是天方夜谭,因为创新的影响力足以淘汰当下的很多技能和工具。话虽这么说,我们还是瞅瞅这命运的茶叶渣子,或许能帮我们拨开迷雾,瞥一眼未来,看看科技到那时究竟是什么样的。[......]

阅读全文

如何使用Java构建微服务?

【编者按】微服务背后的大理念是将大型、复杂且历时长久的应用在架构上设计为内聚的服务,这些服务能够随着时间的流逝而演化。本文主要介绍了利用 Java 生态系统构建微服务的多种方法,并分析了每种方法的利弊。本文转自OneAPM[......]

阅读全文

升级 Java 编程规范的6个约定

原文地址:https://dzone.com/articles/upgrade-your-code-conventions-2
译文来自:OneAPM
作为Java开发人员,我们会遵循一系列的编码风格和开发习惯。习惯使然是一方面,另一方面,我们也从不停下脚步质疑这些习惯。一段时间以后,笔 者养成了一些不同于常人的编码风格和开发习惯。当第一次了解到这些编码风格时,笔者感到又惊又气。但是,花了一段时间践行这些习惯之后,笔者意识到它们的 确能造就更加简洁可控的代码库,同时也让开发者更加省心。[......]

阅读全文

不要和一种编程语言厮守终生:为工作正确选择

我们程序员在着手一个项目时,需要做的关键决定之一就是选择一种语言,或一组语言,用于实施该系统。这一决定不仅会影响系统的实现,也会影响设计。例如, 我们应该使用面向对象的语言还是过程语言?选择什么语言对项目以及作为项目一部分的程序的生命周期有着深远的影响,很多次,我们基于一些非常善变的因素, 没有思考太多就去选语言:这语言是我惯常用来实现这类系统的;这语言我了解得最透彻;这是我最喜欢的语言,我很享受于用这种语言编程;等等。[......]

阅读全文