
程序员
文章平均质量分 78
互联网工匠
关注互联网技术,保持工匠精神,一起学习,一起成长。
展开
-
营销活动·章鱼架构设计
营销活动·章鱼架构设计原创 2022-10-07 09:07:20 · 928 阅读 · 1 评论 -
服务端主流中间件之Apollo配置中心
配置对于程序而言是必不可少的,它提供我们可以动态修改程序运行能力。引用别人的一句话就是“系统运行时(runtime)飞行姿态的动态调整!”配置分为静态配置和动态配置。静态配置是在程序启动前配好,启动时一次性生效,在程序运行期不会变化的配置。静态配置主要通过配置文件实现,比如.ini文件、.xml文件、.properties文件等。一般程序运行环境、性能参数等会采用静态配置。动态配置是在程序的运...原创 2020-03-26 16:08:00 · 1520 阅读 · 0 评论 -
JVM性能调优
Java从诞生之初就一直被诟病性能不如C/C++。究其原因,最主要是因为Java程序是运行在JVM虚拟机之上,而C/C++是运行在物理机之上。对于Java程序而言,哪怕是最简单的 HelloWorld 程序都需要先运行一个JVM程序。这意味着要它至少要多出一个类加载程序、字节码解析执行程序以及GC程序等。不过,虽然牺牲了一些运行效率,但是Java通过 JVM 实现了其 “Write Once, R...原创 2020-03-18 15:53:01 · 298 阅读 · 0 评论 -
技术管理:从IC到Leader
本文内容源自一次技术管理培训。培训讲师叫刘建国,是一位从百度一线工程师成长为优秀技术管理者的管理咨询师。他以亲身经历总结了从工程师转向技术管理遇到的各种困惑、迷茫以及应对之道,为我们指明了一条清晰的技术人的管理之路。在后来实际的管理工作中,我发现这套方法论对指导实践非常有价值,遇到的许多管理问题都能从中找到解决方案。故此,结合自己的实践心得,将那次培训的几个核心要点梳理一下,与大家分享。...原创 2020-03-04 16:49:28 · 3445 阅读 · 0 评论 -
高并发架构设计
互联网服务相比传统软件的最大的挑战是它需要应对来自网络的无限流量。因此在对互联网应用做架构设计时,高并发是必须考虑的因素。那什么是高并发呢?百度百科的描述如下:高并发(High Concurrency)通常是指通过设计保证系统能够同时并行处理很多请求。通俗来讲,高并发是指在同一个时间点,有很多用户同时的访问同一 API 接口或者 Url 地址。它经常会发生在有大活跃用户量,用户高聚集的业务场...原创 2020-03-01 15:41:08 · 1318 阅读 · 0 评论 -
高可用架构设计
设计高可用的软件架构,是每个互联网软件开发工程师的追求。尤其对于在线交易系统、在线广告系统而言,服务的可用性会直接影响商业变现。随着互联网技术在工业界的广泛使用,各大互联网公司在各自的业务领域内,沉淀了成熟的高可用架构方案。那么究竟什么是高可用?高可用架构该如何设计呢?度量首先需要了解下什么是可用性以及如何度量可用性。对于一个交互式IT产品,是否可用是看用户能否用该产品完成他的任务。...原创 2020-02-25 17:07:53 · 3239 阅读 · 0 评论 -
大数据计算引擎
信息技术和互联网技术的发展,带来了全球数据的爆发式增长。超大规模的数据计算问题成为各大科技公司急需解决的世界级难题。2004年谷歌的MapReduce论文给出了一个可行的大数据计算模型,给大数据并行处理带来了巨大的革命性影响。随后大数据计算取得了飞速发展,针对更细化的大数据应用场景,各种优秀的大数据引擎不断涌现,呈现出百花齐放百家争鸣的景象。在国外一些社区,很多人将大数据的计算引擎分成了四代(如下...原创 2020-02-22 14:35:37 · 3514 阅读 · 1 评论 -
数仓架构设计方法论
数据仓库,英文名称为Data Warehouse,可简写为DW或DWH。数仓之父比尔·恩门(Bill Inmon)在1991年出版的《Building the Data Warehouse》一书中所提出的定义被广泛接受:数据仓库是一个面向主题的(Subject Oriented)、集成的(Integrated)、相对稳定的(Non-Volatile)、反映历史变化(Time Variant)的数据...原创 2020-02-13 20:57:11 · 1515 阅读 · 0 评论 -
内存空间和文件空间的索引设计区别
索引(Index)本质上是一种用空间换时间,提高查找性能的手段。从数据结构的角度看,索引是一种键值(key-value)映射关系表。图书的目录就是一种索引,它的key是章节,value是对应章节所在的页码。在没有索引情况下,想在一个群体中找出个体,需要逐个遍历,其时间复杂度是O(n)。最优解当然是不做任何遍历直接找到个体,时间复杂度是O(1)。但是索引降低查找时间复杂度是以提高空间复杂度为代价...原创 2020-02-11 16:26:34 · 761 阅读 · 0 评论 -
几道有意思的智力面试题
1、考虑一个双人游戏。游戏在一个圆桌上进行。每个游戏者都有足够多的硬币。他们需要在桌子上轮流放置硬币,每次必需且只能放置一枚硬币,要求硬币完全置于桌面内(不能有一部分悬在桌子外面),并且不能与原来放过的硬币重叠。谁没有地方放置新的硬币,谁就输了。游戏的先行者还是后行者有必胜策略?这种策略是什么?答案:先行者在桌子中心放置一枚硬币,以后的硬币总是放在与后行者刚才放的地方相对称的位置。这样,...原创 2020-02-05 20:07:37 · 681 阅读 · 0 评论 -
从软件工程师到程序员
最近看了优快云上的一片文章,叫《软件工程师的衰落与程序技术员的兴起》。这篇文章对软件工程师和程序员作了比较深刻的分析。文章开篇一段话是这样说的我们真正看到的不是软件工程师或计算机科学家的消亡,而是程序员和技术员的崛起也许你会说软件工程师和程序技术员难道不是一回事吗?前者不过是较正式的表述,后者是偏口语化的名词。其实不然,或许看一下这篇文章引用的英文名词更容易理解:软件工程师——Sof...原创 2020-02-04 17:32:56 · 1025 阅读 · 0 评论