文章分类 - 技术思考
术中有道,将技术转为思想,将技术炼至化境。这里是关于技术的思考,是对技术/理论学习与应用相关的宏观认识
摘要:XXX: Douglas McIlroy: 《The Art of Unix Programming》:
阅读全文
摘要:遇到一个现实问题,如何建模并程序化解决? 万物皆数,数是物质及其运动的形式化(符号化)表示。 ADT ={ D,S,P } 其中D是数据对象,S是D上的关系集,P是对D的基本操作集。 1.如何看待问题? 面向对象的基础:一切皆是对象。 对象是什么? 在现实世界中存在的客体是问题域中的主角,所谓客体是
阅读全文
摘要:万物皆数,数即符号、信息。 上帝说要有光,于是便有了光。光即电,电即信号。 信号&信息
阅读全文
摘要:编程是一种创造性的工作,是一门艺术 一:反复推敲代码 反复提炼,剔除垃圾 二:写优雅的代码 枝丫分明,树状代码 三:写模块化的代码 避免写太长的函数 制造小的工具函数(编译时会内联/inline) 每个函数只做一件简单的事情 避免使用全局变量和类成员(class member)来传递信息,尽量使用局
阅读全文
摘要:Lisp之魅 长久以来,Lisp一直被许多人视为史上最非凡的编程语言。它不仅在50多年前诞生的时候带来了诸多革命性的创新并极大地影响了后来编程语言的发展,即使在一大批现代语言不断涌现的今天,Lisp的诸多特性仍然未被超越。当各式各样的编程语言摆在面前,我们可以从运行效率、学习曲线、社区活跃度、厂商支
阅读全文
摘要:诗性在迭代与递归中展现 创世的秘密就在A->B的深处 反向的工程等同于所有的努力 扩展的逻辑让美丽落实为历史 历史就是现实 梦境中有你有我 REM重构着记忆 时流和情境在一起 原文:https://www.douban.com/group/cs_literature/
阅读全文
摘要:译者:qinjian623 原文作者:Steve Yegge 说明 存在另外一个中文翻译版本:https://code.google.com/p/windows-config/wiki/TourDeBabel 但是由于文章内容比较和我胃口,还是决定再翻译一个版本。 巴别塔 这是我自己混乱的编程语言之
阅读全文
摘要:学习程序语言是每个程序员的必经之路。可是这个世界上有太多的程序语言,每一种都号称具有最新的“特性”。所以程序员的苦恼就在于总是需要学习各种稀奇古怪的语言,而且必须紧跟“潮流”,否则就怕被时代所淘汰。 作为一个程序语言的研究者,我深深的知道这种心理产生的根源。程序语言里面其实有着非常简单,永恒不变的原
阅读全文
摘要:简述: reactor 监听读取就绪事件然后读取; proactor 监听读取完成事件然后读取缓存 综述 这篇文章探讨并比较两种用于TCP服务器的高性能设计模式。 除了介绍现有的解决方案,还提出了一种更具伸缩性,只需要维护一份代码并且跨平台的解决方案(含代码示例),以及其在不同平台上的微调。 此文还
阅读全文
摘要:如果目标还是代码“简短、优雅、易理解、易维护”,那么代码优化是否有一个理论极限?这个极限是由什么决定的?普通代码比起最优代码多出来的“冗余部分”到底干了些什么事情? 回答这个问题要从程序的本质说起。Pascal语言之父Niklaus Wirth在70年代提出: 随后逻辑学家和计算机科学家R Kowa
阅读全文
摘要:逻辑结构有四种基本类型:集合结构、线性结构、树状结构和网络结构。 集合结构:集合结构的集合中任何两个数据元素之间都没有逻辑关系,组织形式松散。 线性结构:数据结构中线性结构指的是数据元素之间存在着“一对一”的线性关系的数据结构。 树状结构:树状结构是一个或多个节点的有限集合 网络结构:每个节点都有任
阅读全文
摘要:1.CSAPP - 深入理解计算机系统 Computer Systems: A Programmer's Perspective 2. SICP -计算机程序的构造和解释 Structure and Interpretation of Computer Programs 3. TAOCPP -计算机
阅读全文
摘要:这个列表包括了 100 多本经典技术书籍,涵盖:计算机系统与网络、系统架构、算法与数据结构、前端开发、后端开发、移动开发、数据库、测试、项目与团队、程序员职业修炼、求职面试 和 编程相关的经典书籍。 计算机系统与网络 《图灵的秘密:他的生平、思想及论文解读》 《计算机系统概论》 《深入理解Linux
阅读全文
摘要:面向切面编程(AOP是Aspect Oriented Program的首字母缩写) ,我们知道,面向对象的特点是继承、多态和封装。而封装就要求将功能分散到不同的对象中去,这在软件设计中往往称为职责分配。实际上也就是说,让不同的类设计不同的方法。这样代码就分散到一个个的类中去了。这样做的好处是降低了代
阅读全文
摘要:0.硬件越好越快 1.量级越小越快 2.路径越短越快 3.并行越多越快 4.性能不是唯一 求推荐求补充!!
阅读全文
摘要:1. Webbench Webbench是一个在linux下使用的非常简单的网站压测工具。它使用fork()模拟多个客户端同时访问我们设定的URL,测试网站在压力下工作的性能,最多可以模拟3万个并发连接去测试网站的负载能力。Webbench使用C语言编写, 代码实在太简洁,源码加起来不到600行。下
阅读全文
摘要:软件系统的本质是复杂的,开发团队的任务就是制造出简单的假象。 软件的复杂性是其根本特征,表现在: 1.问题域的复杂性:软件系统一般都是处理逻辑或业务规则比较复杂的问题。 2.管理开发过程的困难性:不存在标准的流程,且现有的各种流程都只适合特定的团队、项目或者产品。 3.软件实现的灵活性:软件的实现是
阅读全文
摘要:在C/C++中,内存分成5个区,他们分别是堆、栈、自由存储区、全局/静态存储区、常量存储区。 1.栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清楚的变量的存储区。里面的变量通常是局部变量、函数参数等。 2.堆,就是那些由new分配的内存块,他们的释放编译器不去管,由我们的应用程序去控制,
阅读全文
摘要:原文地址:http://www.c-sharpcorner.com/UploadFile/rmcochran/csharp_memory_401282006141834PM/csharp_memory_4.aspx 绘图(Graphing) 让我们从GC的角度来看这个问题。如果我们的目标是“移除垃圾
阅读全文
摘要:原文地址:http://www.c-sharpcorner.com/UploadFile/rmcochran/chsarp_memory401152006094206AM/chsarp_memory4.aspx A Copy Is Not A Copy 为了清楚的说明这个问题,我们来校验以下两种情形
阅读全文