文章分类 - 他山之石
见识了,可以攻错,更可以攻玉!
摘要:[原文链接]本文的作者Martin Fowler本文的作者是著名的技术作家、敏捷软件开发宣言的编写人Martin Fowler,本文是他在编写一本关于NoSQL的新书《NoSQL Distilled》时附带写出的一篇博客。当我们开始着手写《NosqlDistilled》的时候,我们遇到了一个棘手的问题——要写什么?究竟什么是NoSQL数据库?对这个概念我们没有发现一个很权威的定义,没有任何商标注册,没有标准化组织,甚至没有一个宣言。NoSQL这个术语最初出现在2009年6月11日在旧金山由Johan Oskarsson组织的一个非正式的会议上。与会人员来自Voldemort,Cassandra
阅读全文
摘要:[原文链接]在 “SQL 数据库的终结? (第一篇/共三篇)” 里我简要介绍了一下关于SQL语言和关系型数据库的背景知识,包括它的过去和将来,介绍了一些以隐藏数据库编程的复杂度为目的模式框架的流行和NoSQL 数据库的兴起。在 “SQL 数据库的终结? (第二篇)” 里,我将介绍一些现有的开源的或非开源的NoSQL数据库。在本篇里,我将会告诉大家一些因特网上关于 NoSQL 的资料,过去和将要发生的事件,以及一些关于本文前两部分的相关评论。如果你想收集更多的关于 NoSQL 和 非关系型数据库的信息,请参考下面的一些网站,博客和文章:No to SQL? Anti-database movem
阅读全文
摘要:[原文链接]在 “SQL数据库的终结? (第一篇/共三篇)” 里我简要介绍了一下关于SQL语言和关系型数据库的背景知识,包括它的过去和将来,介绍了一些以隐藏数据库编程的复杂度为目的模式框架的流行和NoSQL数据库的兴起。在本文的第二篇里,我将介绍一些现有的开源的或非开源的NoSQL数据库。之后,在第三篇里,我将引导你去发现网上的关于NoSQL的资料,告诉你一些跟NoSQL相关的已经发生的和即将发生的一些事件,给软件开发者提供一些这方面的指导。你想象不到,如今竟然有了那么多开源的/非开源的NoSQL数据库产品。而同时,每天都有新的品种出现。如果我的列举中遗漏了你喜爱的NoSQL数据库,请发评论告
阅读全文
摘要:[原文链接]SQL 的发展起始于 E.F.Codd 博士1970年六月发表于计算机协会的“通信”上的一篇论文, “大型共享数据库的关系模型“。当时他和他的在IBM工作的同事 Donald Chamberlin 和 Raymond Boyce 正在研究一种查询语言(最初叫做SQUARE, Specifying Queries As RelationalExpressions 的首字母缩写),并于1974年以论文”SEQUEL:A Structured English Query Language“将此成就推向顶峰。从此以后,SQL就成了关系数据库系统的最主要的语言。近些年,软件开发业内出现了一些
阅读全文
摘要:[原文链接]如果你认为风急火燎的做事是好的现象,认为一天工作超过12小时并周末加班是值得赞扬的表现,那你很可能会对这个由一些公司和一些科学研究针对这个问题所做的报告感兴趣。工作效率定律:8个你不需要再重演的关于工作效率的试验(英文)举其中一个例子,Ford公司发现,每周工作60小时的员工的工作产出量会有小幅度的提升,但这样下去的第四周开始,工作效率会骤降。除此之外,每周工作超过40小时的人创造力会大量下降,设计出来的作品会很糟。一个有趣的事情是看那些每周工作超过40小时的人如何认为自己比正常情况下完成了更多的任务的。37Signals公司的Jason Fried在他的《重来(Rework)》这
阅读全文
摘要:[原文链接]又一次情绪激动、气氛高度紧张的会议,这一次是商议如何让目前这个重要项目“重回正轨”——计划的完工日期早已超了几个星期。所有的这些场景听起来都很耳熟吗?我想说的是,项目超期在任何行业里都是常见的事情。然而,软件行业里看起来更容易出现这种情况。我们怎么会走到这种地步的?这还要从我们梦开始的地方说起。所有的开始都是精神抖擞、干劲十足。一个漂亮的创意,这次我们发誓绝不会重蹈上次的覆辙,不会犯上次的错误。这次我们告诉自己,这次的计划将会“正确”的执行,不会图省事,也不会中途变更。经常有时候我们会感觉梦想正朝正确的方向前进,设计很成功,每个人都很乐观,外界评论也很好。然后,噩梦开始降临,因为各
阅读全文
摘要:[原文链接]ACME公司的Widgets系统出了点问题。这个系统被他们用来管理器材的库存,当初设计时没考虑到如今这样大量的数据的增长。他们的员工因为这个问题备受折磨。很显然,需要想办法解决这个问题,让系统恢复正常。经过对本地软件公司的一番筛选,ACME联系到了Hamster软件公司,看看他们能否解决这个库存系统中的问题。他们很喜欢Hamster软件公司的网站,他们没有任何软件开发的经验,但根据网站的外观,他们估计这个软件公司能解决他们的问题。这件事上他们并没有做错,但也不是很对。于是,ACME公司和Hamster软件公司开始讨论如何解决他们库存系统中的问题。私底下,Hamster软件公司的开发
阅读全文
摘要:[原文链接]这个问题是我最常碰到的一个,也是我最难回答的一个。对这种问题最好的回答方式是用全职员工来推算天数。这非常容易,你只需要找出有多少个不重叠的功能特征,然后每个人负责一个。一旦各个功能块被分成了不能再分的任务,你计算需要多少人天,这就是你的答案。你无论如何都不可能用比这更少的时间开发完这个项目。“一个女人生一个孩子要10个月,不论你再增加多少个女人来做这事,都不会缩短这个时间”“只有当一个任务的完成可以分配多人,并且不需要他们之间相互交流合作的情况下能完成时,人和月才能互相替换。”“往一个已经延迟的项目里添加程序员只会使项目进一步延迟”(因为项目中现有的人需要培训新来的人)-《人月神话
阅读全文
摘要:[原文链接]一种态度认为,应该对程序员在软件开发中的行为进行约束(DirectingAttitude)。持这种态度的人认为大部分的程序员水平都不高(谣传说有50%的人低于平均水平),所以应该对他们所做的事情进行管教约束。要防止他们做一些可能会给他们正在开发的系统带来危害的事情。通常,这种态度体现在一些系统设计和工具中时,你会发现它们会试图阻止程序员去做某些事情,限制程序员的一些做法,以此避免他们陷入过于复杂的境况。另一种态度认为程序员都是可以信赖的专业人员,应该给他们做自己任何想做的事情的自由。秉持这种态度的软件设计以好用易用为目标,但前提假设是程序员必须知道自己在做什么。所以,遵循这种态度的
阅读全文
摘要:[原文链接]长期从事编程活动的程序员都期望在50多岁时能爬到一个足够高的职位,或者能顺利的退休。但我在这里讨论的可能是一个你还没有想过的问题:如果到那时你失业了呢?50多岁时你的职业仕途会成为一个问题。如果你有很好的技术,有人雇你,你会有一个很高的职衔,或你是一个专家,或有很好的人际关系,你都有可能找到一个新的职务。否则,你会从衣食无忧沦落为无家可归。这是真的。我55岁,我的简历会让你感觉非常优秀,10年前我能挣到多达100万美元。现在我是一个流浪汉。我身体不是很好,没有医险,没有牙医。能找到的工作只是一些基本不需要技术的体力劳动,我也干不了。我在试着做家教。然而,这点钱基本上不够付燃气费的。
阅读全文
摘要:[原文链接] --- 摘录于维基百科目录1常规1.1函数功能比较1.2操作系统支持2图形计算器常规系统作者开始开发第一次发布最近的稳定版发布价格 (USD)开源许可注释AlgebratorNeven Jurkovic198619992009(4.2)$58.99否专有初等代数;分步解答AxiomTi...
阅读全文
摘要:[原文链接]--- 摘录于维基百科苯的最低未占分子轨道X-43A试验机于7马赫速度时的计算流体力学(CFD)等值线图计算科学,又称科学计算,是一个与数学模型构建、定量分析方法以及利用计算机来分析和解决科学问题相关的研究领域。在实际应用中,计算科学主要应用于:对各个科学学科中的问题,进行计算机模拟和其...
阅读全文
摘要:[原文链接]--- 摘录于维基百科计算机系统计算机系统可划分为软件系统与硬件系统两大类。冯·诺伊曼结构哈佛结构输入/输出和数据通信数字逻辑逻辑设计集成电路计算机系统组织计算机系统结构计算机网络分布式计算网络安全计算机系统实现软件系统软件操作系统编译器应用软件计算机游戏办公自动化网络软件CAD软件计算...
阅读全文
摘要:[原文链接]--- 摘录于维基百科计算机科学用于解决信息与计算的理论基础,以及实现和应用它们的实用技术。计算机科学(简体:计算机科学;繁體:電腦科學;英语:Computer Science,有时缩写为CS)是系统性研究信息与计算的理论基础以及它们在计算机系统中如何实现(英语:Implementati...
阅读全文
摘要:[原文链接] --- 摘录于百度百科学科代码:0812,下属三个二级学科,本专业培养具有良好的科学素养,系统地、较好地掌握计算机科学与技术包括计算机硬件、软件与应用的基本理论、基本知识和基本技能与方法,能在科研部门、教育单位、企业、事业、技术和行政管理部门等单位从事计算机教学、科学研究和应用的计算...
阅读全文
摘要:[转,原文链接]点阵字库数据,使用时,字库数据中的data,都是反的。也就是当遇 0,画白点;遇 1,画黑点;都画到纸上后,形成的汉字,是反的。(也就是拿着正常汉字照镜子,在镜子中看到的汉字那样)为了后期运算符合正常思维,就想把数据调成正常的样子(从左到右)。就要把数据翻转过来。例:16bit 数据...
阅读全文
摘要:[原文链接]结构体的自引用(self reference),就是在结构体内部,包含指向自身类型结构体的指针。结构体的相互引用(mutual reference),就是说在多个结构体中,都包含指向其他结构体的指针。1. 自引用 结构体1.1 不使用typedef时错误的方式:1 struct tag_...
阅读全文
摘要:[原文链接]重构代码很危险,它会给测试工作增加巨大的负担。除非你的程序需要重构,一定不要轻易重构代码。我这里所说的并不是把一个for循环改成while循环,或把一个StringBuffer改成StringBuilder,我说的是大动作,例如重写一个方法,一个函数,甚至整个类或包。如果你缺乏对一个方法...
阅读全文
摘要:[原文链接]1.- 所有的程序都写的很烂,除了我的。我要告诉你一个坏消息,兄弟,所有的程序都写的很烂,包括你的。无论你在上面花多少功夫,其他大多数程序员总是会认为你写的代码很烂、他们能写出比你好10倍的程序。我在前几篇文章里已经讨论过了这个问题,你可以读读这篇文章和这篇文章,从中你可以理解我所说的所有的程序都写的很烂究竟是什么意思。如何纠正:不要挑剔别人的程序,有一天也许你的程序会被人放在聚光灯下挑剔。要保持客观和专业的评论,不要轻易判断。要谦虚,从周围人哪里学习经验,警戒自己不要写出这么糟的程序。2.- 我几秒钟就能把它改好,不用走变更流程了。homer-simpson-doh抄捷径充满诱惑
阅读全文
摘要:[原文链接]我最近想明白了一些事情。最好的写程序的地方不是在你的计算机前,不是使用你的编译器、IDE或其它一些工具。这最好的地方是一个远离这些工具的场所 —— 是某个能让你认真的思考的地方。对于一个你很熟悉的编程语言,你很容易把你脑子里已经构思好的程序转换成编译器/解释器可以编译/解释的程序 —— 难就难在如何在脑子里先把程序编好。有一天我乘火车旅行。我带了笔记本,但没有网络。不幸的是,我使用的是一种商业编程语言(IDL,真不巧),这种语言需要使用我大学网站上的许可证。因为不能连上互联网,我拿不到许可证,于是我的编译器和IDE就跑不起来。你可能会喜欢使用一个需要昂贵的许可证的商业编程语言,但它
阅读全文