如何管理和优化日益增长的代码复杂度?

随着时间的推移,软件项目会变得越来越大,项目中组件之间的依赖关系也会变得越来越错综复杂,项目的维护也会变得越来越困难。

Plumbr(Java内存泄露检测器)开发团队的一篇博文揭示他们这个项目在开发过程中,其代码复杂性是如何演变的。[......]

阅读全文

Web开发者易犯的五大严重错误

无论你是编程高手,还是技术爱好者,在进行Web开发过程中,总避免不了犯各种各样的错误。

犯了错误,可以改正。但如果犯了某些错误,则会带来重大损失、遗憾。令人惊讶的是,这些错误往往是最普通,最容易避免。下面将列举最需要注意的五大错误。 [......]

阅读全文

新时代民谣

“救护车一响,一年猪白养;住上一次院,三年活白干;十年努力奔小康,一场大病全泡汤;小病拖、大病扛、病危等着见阎王。种豆子,种高粱,天天都为子女忙;上个学,买个房,儿女潇洒苦爹娘。”你说,这民谣真实反映了老百姓生活了吗?

布隆过滤器

        布隆过滤器(Bloom Filter)是1970年由布隆提出的。它实际上是一个很长的二进制向量和一系列随机映射函数。布隆过滤器可以用于检索一个元素是否在一个集合中。它的优点是空间效率和查询时间都远远超过一般的算法,缺点是有一定的误识别率和删除困难。[......]

阅读全文

PL/SQL Developer报错Dynamic Performance Tables not accessible

在使用PL/SQL Developer工具登陆一个新创建的用户进行查询时,报出以下错误(PL/SQL Developer版本:7.1.5 1403):
Dynamic Performance Tables not accessible,
Automatic Statistics disabled for this session

You can disable statistics in the preference menu, or obtain select
priviliges on the V$session,V$sesstat and V$statname tables

这个报错信息在不同的PL/SQL Developer版本都会出现,从上面详细的报错提示信息中我们可以判断得到,报错原因不在工具本身。[......]

阅读全文

软件产品发布版本

alpha版,指得是内部测试版本,它所面向的参与测试的是公司内部的测试人员,可以面向用户,只不过是面向少量用户。
beta版,指得是外部测试版本,它将面向公司外部用户发放,并通过各种渠道收集反馈信息,这样可以在更多的环境下册是该软件产品。

其实可以这样理解,Alpha是内测,可以邀请部分用户参加;Beta是公测;Release是正式发布。一般来说,Alpha和Beta都要申明有BUG可能会影响使用。

全球著名互联网企业背后的开源力量

开源软件正在逐步改变全球软件开发的格局,越来越多的企业开始使用开源软件,并反过来为开源项目贡献力量。

一提到开源,大部分人首先想到的是免费。但其实价格并不是开源软件唯一的优势,其他优势还包括:

  • 避免重复造轮子:对于企业来说,有现成的工具可用,节省了重新开发的成本;
  • 质量更高、更安全:由于源码开放,其他开发者可以参与共享,安全漏洞的发现和修复将会更加及时;
  • 自由、可定制:企业可以摆脱软件厂商的束缚,并可以根据自己的需求很方便地进行定制。

[......]

阅读全文

思考软件开发中的快与慢

本文作者Michael Dubakov从事软件开发方面的工作,他在读了Daniel Kahneman的《思考,快与慢》后,思考了软件开发中的快与慢,并且把书中的一些思想应用到实际的软件开发中。下面是笔者对原文的翻译:

最近,我在阅读Daniel Kahneman的《思考,快与慢》,这本书非常令人着迷。里面拥有大量的真知灼见,给读者带来一场思维之旅。目前,我在一家软件公司工作,书中所学到的部分自然而然地可以应用到我们的工作中。下面,我将分享自己从这本书的所感、所知。[......]

阅读全文

中国iOS开发者薪资报告

        根据苹果第三季度财报的数据显示,这个季度大中华地区收入为46.5亿美元,和前一季度相比暴跌了43%,和去年同期相比也暴跌了14%,尽管销售业绩有所下滑,这个季度苹果中国区营收占到苹果公司总营收的14%,几年前仅为几亿美元,苹果中国业务的进步是令人瞩目,进步的背后拥有数量庞大的50万中国 iOS开发者,而美国仅有30万iOS开发者。[......]

阅读全文

Struts自爆漏洞利用代码为哪般?

  近日,很多安全公司和互联网公司安全部门的工程师们都没睡好觉,通宵达旦地在加班。

  Struts 这个漏洞这次来势之所以这么凶猛,直接导致国内的很多银行、政府机构、几乎所有的大中型互联网公司,国外的包括苹果的开发者网站都被黑掉了,和 Struts 官方不负责任的态度有很大关系。Struts 这次在自己的漏洞公告中直接把漏洞利用代码给贴出来了,这是一种很罕见的做法。[......]

阅读全文

程序员的工作不能用“生产效率”这个词来衡量


几乎正如10年前 Martin Fowler 发现的,用生产效率来衡量软件开发工作没有任何意义。原因就在于,它们不属于同一范畴。换句话说,生产效率不具有作为衡量软件开发工作的适用性。“今天创造了多少代码/软件?”这是一个没有意义的问题。即使可以这样测量,软件开发工作上的生产效率也不能以任何有意义的方式估计出它的商业价值。[......]

阅读全文

移动应用发展的8个趋势

        如果说智能手机和智能设备现在被认为是个人和办公方面的科技标准,那么这种描述就过于简单了。几乎没有人能否认一个事实,就是每个人都需要这种智能 技术。尽管每个人拥有智能手机或其他智能设备的理由不尽相同,但它是必须的。无论从个人或者商务的角度看,智能科技已经成为我们生活的一部分。

        现在,智能科技无处不在,开发商不得不为智能手机用户设计出更加方便的移动应用程序。我可以肯定的说,最新潮最特别的移动应用程序会不断出现。实际上,总有一款移动应用达到某种用途,并适合于每个人。你会在新入手的iPads里发现令孩子们激动的游戏,还有一些程序则可以促进人们之间的交流。移动应 用不再是 消磨时间的手段,它们总会在某种程度上令使用者受益。由于移动应用程序的需求量增加,移动应用变得更加美观,更加多功能,更加促进人们之间的交流。未来仍然有漫长的路要走,我可以说这几个移动应用的趋势实际上变得非常明显,引领着其他移动应用程序的脚步。[......]

阅读全文