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

“编程基础”文章列表

现实生活中有很多问题,人为不好解决,但利用计算机速度快,不出错的特性,可以很方便的解决这些问题,下面简单说说我在程序设计中解决实际问题的一些常见思想,高手可以忽略掉,我也是无聊了随便写写而已。 1、枚举最优解时的情况 有很多问题初看很棘手,但经过仔细的分析,可以得出一些显然的结论。 比如下...
作者: lxglbk   2013-09-13 16:09:51 阅读:4742 标签:算法
在Stack Overflow上有这样的一个贴子《What’s your most controversial programming opinion?》,翻译成中文就是“你认为最有争议的编程观点是什么?”,不过,在400多个主回贴,以及上千个所有回贴中,好像并不是很有争议,而是令人相当的茅塞顿...
作者: 陈皓   2012-05-20 12:56:12 阅读:4617 标签:编程 程序员
上周做了一次关于Windows异步I/O和完成端口的部门技术分享,着重于理论介绍, 顺带review基于IOCP的网络库代码。 完成端口是异步I/O的一种,将这两个并列作为标题,因为完成端口的复杂性及用途相比其他几种异步I/O加起来还过之。Windows核心编程中关于设备异步I/O介绍的很明白...
作者: 大彭   2014-11-15 10:32:38 阅读:4585 标签:异步IO
diff 是 Unix 系统的一个很重要的工具程序。 它用来比较两个文本文件的差异,是代码版本管理的基石之一。你在命令行下,输入:$ diff <变动前的文件> <变动后的文件> diff 就会告诉你,这两个文件有何差异。它的显示结果不太好懂,下面我就来说明,如何读懂 diff。 一、di...
作者: 阮一峰   2012-08-30 06:46:39 阅读:4416 标签:diff git
排序算法(Sorting algorithm)是计算机科学最古老、最基本的课题之一。要想成为合格的程序员,就必须理解和掌握各种排序算法。 目前,最常见的排序算法大概有七八种,......
作者: 阮一峰   2011-12-28 07:26:37 阅读:4078 标签:快速排序 Quicksort Javascript
英文原文:How a course in operating systems changed me 在普林斯顿大学有很多课程改变了我,就像COS 318(操作系统课程)。它极有挑战,耗时耗力,但是当我学完后回头想想,我很庆幸我选了这门课。 我当初选择这门课程的时候很犹豫,因为周围的人都这么说...
作者: Shubhro Saha   2015-05-29 17:05:55 阅读:3999 标签:操作系统
英文原文:Seven ideas for learning how to program 原文发布于 2010-11-4 中国古代思想家孔子(Confucius)功劳中包括对许多事物发表的见解, 从平凡的幸运饼消息(fortune cookie messages)到明显荒谬的笑话,如“Man...
作者: Chad Perrin   2012-07-07 10:22:30 阅读:3945 标签:学编程
英文原文链接:Why Functional Matters: Your white board will never be the same 为什么我们要学习函数式编程?为获得更好的软件设计技术! 一天,我们设计了一个流程,来校对款项的收支平衡。下面这张图就是我们在几年前设计出的结果: 那...
2013-01-17 11:54:18 阅读:3931 标签:函数式编程
英文链接:Defensive Programming: Being Just-Enough Paranoid 每当程序员突然遇到某个bug并不知道怎么改的时候,他们会添加一些“防御性代码”来使编码更安全并且更容易找到问题的原因。有时这样做可以消除错误。他们加强了数据的有效性验证——检验输入框、...
2012-06-07 17:14:01 阅读:3858 标签:编程 防御性编程
前言 本文是前一篇文章《深入浅出之正则表达式(一)》的续篇,在本文中讲述了正则表达式中的组与向后引用,先前向后查看,条件测试,单词边界,选择符等表达式及例......
作者: sema   2011-10-01 12:22:19 阅读:3798 标签:正则表达式 regex
代码质量随想录(一):可读是王道 代码质量随想录(二):必也正名乎 代码质量随想录(三):名字好,误会少 代码质量随想录(四):排版,不只是为了漂亮 写代码也流行注水了么?不是不是,我说的是注释。其实注释这个东西,历史久远。我们可以宽泛一点儿说,《春秋》就是要配上左传的注解,才能兴发其“...
作者: 爱飞翔   2012-06-20 22:49:30 阅读:3794 标签:代码质量 注释
不必被我的标题吓到哈,孔老夫子时代没有电脑。如果有,估计诸子百家们还得针对软件工程抒发一系列代码质量伦理学的教条。 上回文章说到,代码品质改进应该在三个层面上展开,其中最微观的就是代码段的质量考究了。很多时候我在针对一些项目做工程分析和大规模重构之前,首先希望对大概的工作原理有些了解,这个时候...
作者: 爱飞翔   2012-06-15 18:06:55 阅读:3702 标签:代码质量
作为一个苦逼的程序员,因为种种原因经常需要阅读别人写的代码。您是否有过因代码杂乱冗余而心生厌恶,您是否有过因代码晦涩难懂而抓狂,您是否有过因代码低级的逻辑错误而愤概,您是否有过因代码结构不合常规而需要到处查找,您是否有过因看到几百甚至上千行代码的方法而望洋兴叹,您是否有过因代码缺少注释而猜测以及...
作者: kimylrong   2012-07-05 12:20:26 阅读:3619 标签:代码规范
写完前两篇(一、二)之后,有点小倦怠,因为一方面要整理读书笔记,一方面还要结合自己的思路加以重新表述,颇费周张。不过前两日看到有小朋友过来赞我的文章,说对实际代码有所帮助,还是满欣慰的,本系列随想录的目的之一,就是要营造一个努力改良代码质量的思维环境。 要想让标识符的名称更易理解,就应该多考虑...
作者: 爱飞翔   2012-06-15 18:20:03 阅读:3551 标签:代码质量 代码命名
今天聊一聊电脑和人脑的并发问题。 在计算机发展初期,CPU的计算能力非常有限,计算资源稀缺而昂贵。最早的时候一个CPU只能同时运行一个任务,这简直让人无法忍受。什么叫做只能运行一个程序呢?这就像大学上自习占座一样,一旦一本书、一张纸、一个包或一个活人占有了那个桌子,其他人就再也没法用了,无论是...
作者: 池建强   2013-08-08 21:35:13 阅读:3539 标签:并发
一、概念 软中断是利用硬件中断的概念,用软件方式进行模拟,实现宏观上的异步执行效果。很多情况下,软中断和"信号"有些类似,同时,软中断又是和硬中断相对应的,"硬中断是外部设备对CPU的中断","软中断通常是硬中断服务程序对内核的中断","信号则是由内核(或其他进程)对某个进程的中断"(《Lin...
2014-05-14 16:28:09 阅读:3524 标签:中断
英文原文:Seven Virtues of a Good Object Marin Folwer 说过:“库本质上是一组可以调用的函数,这些函数现在经常被组织到类中。” 函数组织到类中?恕我冒昧,这个观点是错误的。而且这是对面向对象编程中类的非常普遍的误解。类不是函数的组织者,对象也不是数据...
2015-04-19 21:56:38 阅读:3474 标签:面向对象
微内核(Micro kernel)是提供操作系统核心功能的内核的精简版本,它设计成在很小的内存空间内增加移植性,提供模块化设计,以使用户安装不同的接口,如UNIX、DOS、Win......
2011-06-17 13:06:21 阅读:3421 标签:微内核 操作系统
英文原文:The Cost of an Exception 最近在dynaTrace上出现了一场关于异常(Exception)的代价的大讨论。在跟一些客户的接触中,我们经常的发现他们的代码里有大量的异常处理,自己都不知道。在移除了这些异常后,程序的运行速度比以前有大幅度的提高。这让我们产生了一...
2013-01-30 10:32:55 阅读:3255 标签:Java 异常
英文原文:Visualizing Garbage Collection Algorithms 大部分开发者都认为自动垃圾回收器是理所当然的。实际上,这只是语言运行时提供的一项实用功能,旨在简化我们的开发工作。 但是如果尝试着了解垃圾回收器的内部原理,你会发现很难弄明白。除非熟悉它的工作流程和...
作者: Ken Fox   2014-09-28 18:41:46 阅读:3025