摘要: 前言: 比较贴切一点,是给IT类相关专业大一新生的一些建议。写这篇文章的起因是老家几个亲戚的小孩今年高考,而且都是IT类相关专业。我是从一位大学毕业生及程序员的角度提的这些建议。类似这样的文章很多,权作一些补充,希望对他们的大学生活有所帮助。 我的建议: 1、 首要任务,找到自己的理想,方向,兴趣,人生规划。 我认为这才是大学的首要任务。从高中到大学,一下子没有人管了,很容易失去前进的动力... 阅读全文
posted @ 2011-09-12 13:25 常高伟 阅读(2997) 评论(16) 推荐(16) 编辑
摘要: 同步于我的CSDN博客:http://blog.csdn.net/chgaowei/article/details/6754855#reply “设计良好的函数往往比较小,而过大函数的设计往往一塌糊涂,或者存在很大的优化空间。”也许你认为讨论函数的大小没有必要,原因是函数设计的本质是内聚,它的大小只是它的表现形式。而上面的原因有必要让我们讨论一下函数的大小问题。我对函数的核心思路:我提出代码最小处理单元的概念:一个基本操作(赋值,比较等),一个函数调用(包括调用后判断返回值进行判断)都看成一个最小处理单元。那么,一个函数,最小处理单元合理的个数范围在7以内。如果超过了7,你就要考虑把他们... 阅读全文
posted @ 2011-09-07 20:56 常高伟 阅读(3178) 评论(15) 推荐(7) 编辑
摘要: 下面是最近对公司研发管理的一些思考,和大家一起讨论。一:关于敏捷:1)敏捷是否适合电信行业?对于想互联网这样“小而快”的行业,敏捷开发无疑是适合的。但是对于电信行业这种“大而笨”的行业,是否也适合?我一直有这样的疑问。电信行业有他自身的特点,比如,需求变化一般不大,相对比较稳定;对稳定性的要求比对快速发布的要求要高,如果稳定性有问题,影响一般很严重;一般采用更底层的语言(比如c)来进行开发。将敏捷理解成“裸奔”,通过牺牲质量来达到快速交付也许有些狭隘,但是在快速的交付的同时保持高质量,这对开发人员和开发工具(特别是自动化测试工具)的要求较高,我们很难满足这个要求,一般小公司也很难满足这个要求。 阅读全文
posted @ 2011-08-21 09:53 常高伟 阅读(2933) 评论(6) 推荐(3) 编辑
摘要: 前几天为新员工写一个简单的测试框架,可让他们方便的写测试用例并且执行。期间遇到一个问题就是如何让他们增加测试用例而用不影响测试框架的代码?c++的单件模式可以解决这个问题,但是其中一个难点是要在main之前注册单件。c++可以通过构造函数来实现注册,c如何注册?最后查了下资料,原来可以定义在main之前调用的函数!有了这个特性可以改善c的模块化设计。特性介绍:如果想定义在main函数之前调用的函数,可以在函数的声明之后加上一句“__attribute__((constructor))”,如下:intbefore()__attribute__((constructor));如果想定义在main函 阅读全文
posted @ 2011-08-18 12:44 常高伟 阅读(4078) 评论(1) 推荐(2) 编辑
摘要: 前言: 最近在学习《Unix编程艺术》。以前粗略的翻过,以为是介绍unix工具的。现在认真的看了下,原来是介绍设计原则的。它的核心就是第一章介绍的unix的哲学以及17个设计原则,而后面的内容就是围绕它来展开的。以前说过,要学习适合自己的资料,而判断是否适合的一个方法就是看你是否能够读得下去。我对这本书有一种相见恨晚的感觉。推荐有4~6年工作经验的朋友可以读一下。 正题: 作者在介绍Unix设计原... 阅读全文
posted @ 2011-08-03 22:22 常高伟 阅读(17773) 评论(17) 推荐(10) 编辑
摘要: 最近在学习《unix编程艺术》。第一章非常不错,讲了很多Unix的历史,哲学基础,其中最重要的是提到的十七条设计原则。很多原则自己也知道,但是从来没有总结的如此详细深刻。 下面的内容大部分来自《unix编程艺术》这本书,少部分是我的一些理解。这是我读书的一个习惯,对于我认为重要的,我会把它打出来,在打字的过程中我会根据深入的思考理解。所以,笔记对我来说是一个思考和记忆的辅助手段。 1、模块原则:... 阅读全文
posted @ 2011-07-26 21:02 常高伟 阅读(3209) 评论(0) 推荐(1) 编辑
摘要: 管理的技巧就是通过其他人实现你的工作目标。 写作的技巧就是创造一个能够激发其他人进行思考的环境。 需要有一个激发人们创造力的体系。 团队成员优势无补带来的威力。 让成员认为他所做的是他想做的事情。 雕塑就是把隐藏在石头里的形象挖掘出来。 阅读全文
posted @ 2011-07-24 14:16 常高伟 阅读(404) 评论(0) 推荐(0) 编辑
摘要: 之前发表过一篇文章,也是谈如何学习一门新的语言《如何学习一门新的语言》,这篇文章主要的关注点是心态。 今天这篇文章主要的关注点是具体的方法和步骤,是我学习C++和python的一些经验,整理出来和大家一起讨论。另外,我主要针对的已经掌握了一门编程语言,再学习一门新的语言的情况。 先简要介绍下我是如何学习c++的。 出发点:工作两到三年内,我的主要开发语言是c。后来由于工作的需要,要实现一个流程引擎... 阅读全文
posted @ 2011-07-24 13:24 常高伟 阅读(2870) 评论(8) 推荐(7) 编辑
摘要: 为什么需要简单的设计?我想这和人的特点有关。我不止在一个地方看到过,人同时能够处理的信息不超过7个。我想这应该就是人们追求简单设计的根本原因,人需要用一个简单的设计去解决现实中的问题。如果真的存在完美,也许简单的东西就是完美的东西。很多人都崇尚简单设计的思想,那么什么是简单设计?下面谈谈我的理解:1、首先要能够解决实际问题的;这是所有设计要达到的目标,虽然实现的手段和方法,效果不同。简单的设计也必须达到这个目标。2、易于理解的;易于实现的;易于维护的;我认为这是简单的设计最吸引人的地方,也是它最有价值的地方。3、把握问题的本质的设计;物体运动的表现形式很复杂,但是它的本质:牛顿定理却简单。所以 阅读全文
posted @ 2011-07-16 18:28 常高伟 阅读(2553) 评论(5) 推荐(5) 编辑
摘要: 软件领域一个非常大的特点是流程和技术变化相当的快。作为一个软件企业,面对日新月异的开发流程和开发技术,何时、如何选择及引进新的流程和技术变得十分重要。这篇文章主要讨论的是进行选择和引进时的出发点,我称之为“缺陷驱动”。 什么是缺陷驱动? 这涉及到引进新技术的根本原因。其实很简单,就是为了解决软件开发过程中遇到的问题。但是实际操作时,面对外界的宣传和影响,人们往往会偏离这个初衷——从追求问题的解决到... 阅读全文
posted @ 2011-06-27 22:14 常高伟 阅读(2331) 评论(2) 推荐(1) 编辑