您的位置:知识库 » 编程基础

“编程基础”文章列表

前言 由于工作需要,最近重新开始拾掇shell脚本。虽然绝大部分命令自己平时也经常使用,但是在写成脚本的时候总觉得写的很难看。而且当我在看其他人写的脚本的时候,总觉得难以阅读。毕竟shell脚本这个东西不算是正经的编程语言,他更像是一个工具,用来杂糅不同的程序供我们调用。因此很多人在写的时候...
作者: Myths   2017-08-05 16:39:32 阅读:6299 标签:Shell Linux
摘要 本文尝试一步步还原HTTPS的设计过程,以理解为什么HTTPS最终会是这副模样。但是这并不代表HTTPS的真实设计过程。在阅读本文时,你可以尝试放下已有的对HTTPS的理解,这样更利于“还原”过程。 我们先不了聊HTTP,HTTPS,我们先从一个聊天软件说起,我们要实现A能发一个h...
作者: 翟志军   2017-03-27 21:16:03 阅读:9521 标签:HTTPS
最近想复习一下JVM的知识。然后发现网上不少文章在写JVM的垃圾回收算法时,都比较偏向于具体实现,而少有站在更高角度来看垃圾回收算法的文章。而我本人想对垃圾回收算法有个全景的认识,所以,就找到了这本《垃圾回收的算法与实现》(以下简称《垃圾回收》)。本篇博客就是尝试对“全景”的总结。 以下为方...
作者: 翟志军   2017-02-26 14:05:33 阅读:20637 标签:垃圾回收
原文发表于2008年 其实下文的绝大部分内容对所有学习都是同理的。只不过最近在正儿巴经地学算法,而后者又不是好啃的骨头,所以平时思考总结得就自然要比学其它东西要多一些。 问题:目前几乎所有的算法书的讲解方式都是欧几里德式的、瀑布式的、自上而下的、每一个推导步骤都是精准制导直接面向目标的。...
作者: 刘未鹏   2016-07-23 18:41:10 阅读:35697 标签:学习方法 算法
湾区日报上分享的一篇文章,文章的作者在Google设计Dart语言,就变量命名方面给了4点建议,文中也列出了好变量名、坏变量名的对比。不管作者的看法与你实际中的命名习惯是否一致,看完这篇文章,相信可以在变量命名方面有一些新的思考。 英文原文:Long Names Are Long 译/...
作者: Bob Nystrom   2016-07-13 22:41:45 阅读:39292 标签:命名
来自:码农翻身(微信号:coderising) 作者:IBM刘欣 我是一个线程,我一出生就被编了个号: 0x3704,然后被领到一个昏暗的屋子里, 这里我发现了很多和我一模一样的同伴。 我身边的同伴0x6900待的时间比较长, 他带着沧桑的口气对我说: “我们线程的宿命就是处理包...
作者: 刘欣   2016-04-02 23:16:36 阅读:27171 标签:线程
背景 之前做日志收集模块时,用到flume。另外也有的方案,集成kafaka来提升系统可扩展性,其中涉及到消息队列当时自己并不清楚为什么要使用消息队列。而在我自己提出的原始日志采集方案中不适用消息队列时,有几个基本问题:1. 日志文件上传过程,有个基本的生产者-消费者问题;2. 另外系统崩溃...
2016-01-28 12:14:01 阅读:38071 标签:消息队列
有限状态机FSM思想广泛应用于硬件控制电路设计,也是软件上常用的一种处理方法(软件上称为FMM有限消息机)。它把复杂的控制逻辑分解成有限个稳定状态,在每个状态上判断事件,变连续处理为离散数字处理,符合计算机的工作特点。同时,因为有限状态机具有有限个状态,所以可以在实际的工程上实现。但这并不意味着...
2015-09-13 13:22:45 阅读:28675 标签:状态机
状态机的概念 状态机是软件编程中的一个重要概念,比这个概念更重要的是对它的灵活应用。在一个思路清晰而且高效的程序中,必然有状态机的身影浮现。 比如说一个按键命令解析程序,就可以被看做状态机:本来在A状态下,触发一个按键后切换到了B状态,再触发另一个键后切换到C状态,或者返回到A状态。这就是最...
作者: 张俊   2015-09-13 12:20:15 阅读:10390 标签:状态机
一、状态机描述 状态机理论最初的发展在数字电路设计领域。在数字电路方面,根据输出是否与输入信号有关,状态机可以划分为Mealy型和Moore型状态机;根据输出是否与输入信号同步,状态机可以划分为异步和同步状态机。而在软件设计领域,状态机设计的理论俨然已经自成一体。Moore型状态机的输出只和当...
作者: cppexplore   2015-09-13 11:03:57 阅读:5451 标签:状态机
英文原文:Give your code some space! 最近在几个不同的团队中发现他们的编码规范中对空格的用法大不相同。这激起了我的好奇心,因为我一直觉得,对于代码格式中的空格的使用,应该有一个大家都公认的最好的习惯。但是在现实开发中,似乎没有出现这样的统一。 现状 首先,我们看看...
2015-06-03 20:10:51 阅读:5383 标签:代码风格
英文原文:How a course in operating systems changed me 在普林斯顿大学有很多课程改变了我,就像COS 318(操作系统课程)。它极有挑战,耗时耗力,但是当我学完后回头想想,我很庆幸我选了这门课。 我当初选择这门课程的时候很犹豫,因为周围的人都这么说...
作者: Shubhro Saha   2015-05-29 17:05:55 阅读:3438 标签:操作系统
笔者从事开发多年,有这样一种感觉,查看一些开源项目,如Spring、Apache Common等源码是一件赏心悦目的事情,究其原因,无外两点:1)代码质量非常高;2)命名特别规范(这可能跟老外的英语水平有关)。 要写高质量的代码,不是一件容易的事,需要长年累月的锻炼,是一个量变到质变的过程,但...
作者: Johnny.Liang   2015-05-28 17:48:28 阅读:8511 标签:命名
摘要 序列化和反序列化几乎是工程师们每天都要面对的事情,但是要精确掌握这两个概念并不容易:一方面,它们往往作为框架的一部分出现而湮没在框架之中;另一方面,它们会以其他更容易理解的概念出现,例如加密、持久化。然而,序列化和反序列化的选型却是系统设计或重构一个重要的环节,在分布式、大数据量系统设计...
作者: 刘丁   2015-04-23 17:01:20 阅读:75083 标签:序列化 反序列化
尾调用(Tail Call)是函数式编程的一个重要概念,本文介绍它的含义和用法。 一、什么是尾调用? 尾调用的概念非常简单,一句话就能说清楚,就是指某个函数的最后一步是调用另一个函数。function f(x){ return g(x);} 上面代码中,函数f的最后一步是调用函数g,这...
作者: 阮一峰   2015-04-22 09:25:10 阅读:2078 标签:函数式编程 尾调用
英文原文:Seven Virtues of a Good Object Marin Folwer 说过:“库本质上是一组可以调用的函数,这些函数现在经常被组织到类中。” 函数组织到类中?恕我冒昧,这个观点是错误的。而且这是对面向对象编程中类的非常普遍的误解。类不是函数的组织者,对象也不是数据...
2015-04-19 21:56:38 阅读:3112 标签:面向对象
引言 微博是一个很多人都在用的社交应用。天天刷微博的人每天都会进行着这样几个操作:原创、转发、回复、阅读、关注、@等。其中,前四个是针对短博文,最后的关注和@则针对的是用户之间的关系,关注某个人就意味着你成为他的粉丝,而他成为你的好友;@某个人意味着你想要他看到你的微博信息。 微博被人们认为...
作者: 张雨石   2015-04-15 20:19:41 阅读:4550 标签:机器学习 社交网络分析 算法 微博
代码就是程序员的孩子,给“孩子”取个好听的名字很重要! 我们在项目开发中,接触到的变量、函数、类多数都是项目自己定义的,往往都是为了解决一些特定的领域的问题,引入了各种各样的概念,代码里面的名字就对应着问题领域或方案领域的这些概念。所以,对于一个命名良好、代码规范、设计简洁的系统,要想非常快的理解...
2015-03-27 22:49:52 阅读:6669 标签:命名
先来看一张本文所有概念的一个思维导图 为什么要有CPU Cache 随着工艺的提升最近几十年CPU的频率不断提升,而受制于制造工艺和成本限制,目前计算机的内存主要是DRAM并且在访问速度上没有质的突破。因此,CPU的处理速度和内存的访问速度差距越来越大,甚至可以达到上万倍。这种情况下传统的C...
作者: 卢钧轶   2015-03-17 07:24:55 阅读:7130 标签:CPU Cache
英文原文:Parsing Raw Data 平时习惯了在某些特定的数据集合上做实验,简单的tokenization、预处理等步骤就足够了。但是在数据越来越大的年代,数据清洗越来越重要,也越来越复杂。看到Philip J.Guo 的这篇英文文章《Parsing Raw Data》觉得不错,学习并...
作者: Philip Guo   2015-02-10 11:03:58 阅读:4823 标签:数据清洗 编程