自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

码农哈里

做码农,我是认真的。

  • 博客(24)
  • 资源 (1)
  • 收藏
  • 关注

原创 在Ubuntu上安装MariaDB以及初步设置

在Ubuntu上安装MariaDB以及初步设置

2021-11-28 13:38:05 2634 1

原创 将Spring Boot Web应用部署到Tomcat服务器

将Spring Boot Web应用部署到Tomcat服务器

2021-11-21 21:17:18 1486

原创 Java中的Integer类型数字的比较

Java中的Integer类型数字的比较。

2020-02-27 09:53:43 2702

原创 C语言中的转义字符\b的含义

在学习C语言的过程中,我发现转义字符\b的含义容易被误解为backspace,也就是键盘上的退格删除键。但事实并非如此。先来看一段程序。#include <stdio.h>int main(void){ printf("123456789\b"); return 0;}这段程序编译运行的输出是:123456789可以看到末尾的字符9并没...

2019-06-03 14:47:51 104170 35

原创 C语言字符编码问题探究(一):源文件编码导致的问题

一、一个正常的C程序第一步,在Windows 10环境下,使用Notepad++编写如下源代码,并保存到文件main.c当中。#include <stdio.h>int main(void){ puts("China"); puts("中国"); return 0;}这段代码的意思,是在控制台输出两个字符串,一个是China,另一个是中...

2019-05-31 10:07:43 3268 1

原创 欧美客户选择外包开发人员的几个典型模式

 最近两个项目的客户选择开发人员的模式值得总结一下。一个是澳大利亚的客户。这个客户准备在我们公司建立十几个人的开发团队。但是他不是一下子要面试那么多人,而是一个一个地增加人员。最初是只和我们要一个人,他对简历满意之后,这个人先让他免费试用一周。如果客户第一周的工作满意,那么就签一个月的合同。注意他没有直接签长期合同。实际上,这一个月仍然是一个试用期。如果一个月之后客户对这个人的工作仍然满意

2009-10-29 10:33:00 1035

原创 开发人员日常工作之三 - 管理自己的任务

软件项目的开发最终会具体化为每个团队成员的任务。作为开发人员,当新的任务被创建并分配给你的时候,你应当去理解任务的要求,并在规定的时间内作出对任务的时间估计。如果项目的任务是通过工具来管理的,那么你应当在工具当中填写你对每个任务的时间评估。在每天的某个时刻 - 比如每天的早上9点 - 开发人员应当对自己一天工作进行计划,确定当天的工作目标。在每天的某个时刻 - 比如每天工作结束的时候

2009-09-16 15:29:00 1459 1

原创 迭代与需求演化

记得07年我在做一个大型项目的时候,我们的团队对于客户的业务几乎一无所知。后来硬是通过几个月与客户的死磨硬泡,对那个行业的业务才有了一个入门。之后,我们试图在一个月内可以定义high-level的需求,但是终归没有实现。于是,我们只能从当时能够看到的几个特性入手,开始了开发。随着一个一个迭代的进行,通过在每个迭代末我们给客户的演示,客户有了越来越多的想法,我们对系统的概貌和具体特性也看得越

2009-09-14 09:36:00 1456

原创 开发人员日常工作之二 - 确保你的代码在本地可以成功构建

过去常常看到一些开发人员只想着编写代码,也不注意自己编写的代码是否可以成功编译。结果当代码被check in之后,往往会出现不同的人写的代码在合并之后无法成功编译的情况。解决这个问题的有效办法是,当你在check in代码之前,请务必首先将source control上的代码更新到本地,与本地代码一起编译。如果编译成功,则可以考虑check in;否则,要解决完合并编译的问题之后,才可以che

2009-09-09 22:21:00 775

原创 开发人员日常工作之一 - Check In代码

Check in代码是开发人员每天必做的工作。如果当天的代码没有check in,那么别人将无法及时获得你的代码,更不用说继续其他的过程了。所以,请每位开发人员务必每天都要把自己的代码check in.

2009-09-08 15:31:00 3745 1

原创 Code Review的好处和动机

大概总结一下,Code Review至少可以带来以下这些好处。1. 保证代码风格一致性2. 发现注释中的拼写错误3. 保证代码在按照统一的要求使用API4. 提前发现一些缺陷(代码检查者通常比代码编写者更挑剔)5. 保证代码清晰,容易被别人理解6. 提供了相互学习,提高技能的机会在以上这些好处当中,针对具体的项目,Code Review的侧重点可以不同,因此在Code

2009-09-08 11:28:00 2277

原创 第一个因为需求失败的项目

从我(作为一个开发人员)的角度看,是由于我轻视了这个测试项目而导致的合作失败。这个轻视不是说在态度上不重视,而是在具体的需求方法上,没有将已经积累的最好的经验付诸行动。由于看到测试项目规模很小,所以我的想法是只要多沟通几次就可以了。我没有能够在发现客户不会描述需求的情况下用正确的方法去引导客户,从而导致了沟通上的相互误解不断加深。如果再有更深层次的原因,那就是由于长期没有做具体的项

2009-08-13 11:43:00 723

原创 外包团队应当对自己要求高一点

在软件外包领域,有不少客户会选择雇佣Dedicated Team。这样的客户都是基于对外包公司的信任才这么做的。典型的情况是,开始合作的时候团队会非常努力,客户的满意度也很高。但合作时间久了之后,往往会出现团队成员紧张不起来的情形。于是导致了工作质量下降,效率也不尽人意。久而久之,客户会发现产出有问题了,他的外包成本在升高。对团队的期望已经不能像原来一样可以实现。那么他就可能提出批评,或者更换供应

2009-05-22 11:14:00 974

原创 关于固定价格项目的思考

谈到固定价格项目,我想很多人都会深感头痛。尤其是我们这些做外包的公司,一旦有客户想以固定价格的方式来做,很多时候会被认为不是太“好”的客户。而固定价格项目又是如此之多,以致于我们不得不长期忍受这种痛苦。先来谈谈什么是固定价格项目。固定价格项目是这样的一种项目:项目开始时供应商与客户对要交付的结果达成一致供应商与客户就完成项目所需的费用(价格)、时间达成一致在项目合同中对达成

2009-04-18 22:07:00 1229 2

原创 演示敏捷开发的一些特点

关于迭代的讨论,请参考另一篇迭代与创新。

2009-04-17 09:25:00 1083

原创 软件外包公司没有被选为供应商的种种原因

1. 价格(单价或总价)无法接受2. 与客户有不同的开发/管理方法3. 时差太大4. 与客户所在地区的其他客户合作经验太少5. 没有客户本地区的人与客户沟通6. 客户认为本国公司更安全可靠7. 错误地理解客户的外包需求8. 外包公司规模太小或在外包行业经验太少9. 没有合适的资源10. 建议的解决方案没有优势11. 外包公司工作环境不好12. 欺骗客户

2009-04-14 18:02:00 839

原创 圆角矩形的html+css实现

闲来无事,突然又想起了圆角矩形的实现。不过这个话题大家已经谈了太长时间了。各种各样的实现方案在网上都可以看到。这里仅仅是记录一下个人认为比较好的一个。这个方案不使用任何图片,是纯html+css实现。css代码==================================.spiffy{display:block}.spiffy *{    display:block;    hei

2009-04-12 08:15:00 1348

原创 一份糟糕的Proposal的几个特征

前些天在争取一个项目。一位项目经理以及一位工程师一起撰写proposal。完了之后他们让我看有什么问题。结果在我读完之后,我就立即有了结论:客户一定不会选择我们!我之所以有这个结论,是因为这份proposal中有几个重要方面做得很不好。下面是我认为一份糟糕的proposal的几个典型特征。不过这只是我个人的观点,也期待读这篇文章的各位多多指点。一、内容不全面。一份proposal中一定不能

2009-03-13 09:33:00 1468

原创 一次把事情做好

有一个项目,客户在美国,雇佣的开发团队在中国。客户说开发人员的技术能力非常好,但就是提交的代码Bug太多。所以客户每次都要花很多时间来测试和沟通那些Bug。因此客户对那个团队的工作不算满意。下面是我的简单分析和建议。Bug多有两种基本情况:一是开发人员没有弄明白需求是什么;二是需求弄明白了,但是设计和实现的质量有问题。 对于任何一种情况,都可以通过分析以往的Bug的产生原因来提出修正方

2009-01-15 12:10:00 1969

原创 迭代与创新 - 不要指望一次成功

软件的复杂性的一个重要方面的需求的复杂性。只要一个软件稍具规模,就很少有人能把这个软件成型之后的样子一下子想明白。更严重的时候,人们甚至不知道要解决的业务是什么样的。当人们尝试通过软件手段来改善企业流程,提升企业的工作效率,首先需要对现有的业务有清醒的认识。没有这个认识就不可能知道目前的问题是什么。不知道目前的问题是什么,也就无法确定项目要达到的目标。了解了当前的业务以及当前业务中的问题之后,

2009-01-09 09:36:00 1828

原创 从关于用例规约与详细设计的讨论看待对规范的采纳

前几天看到有人在论坛里问“系统用例的详细描述是在需要分析阶段还是在详细设计阶段完成”。当时感觉这个问题很奇怪。在我的概念里,似乎很少谈分析阶段,概要设计阶段,详细设计阶段这些“阶段”了,因为这些阶段的界限在实际项目中已经比较模糊,或者说,清晰地区分这些阶段其实意义没那么大。我的回答是:“通常的项目不必写那么详细。如果项目是瀑布模型,那么肯定是要先把use case写详细的。但是如果项目是迭代式

2009-01-05 12:27:00 1375

原创 TDD的目标、原则和关键步骤

TDD的目标是Clean code that works。TDD的两个原则是:仅当测试失败时才编写新代码重构以消除重复代码TDD的五个关键步骤是:添加一个小的测试运行所有测试并且失败做一点修改运行所有测试并且成功重构以消除重复  

2008-12-03 15:41:00 1667

原创 玩瓶子的老头

 刚刚搬到新家的时候,我发现我家对门住的是一对50多岁的老夫妇。当时正在装修,我去他们家看看他们是什么样的风格。 给我印象很好的是,老头很热情。发现我进去,他赶忙给我端茶。他们的家具是古典中式的。虽然作为年轻人我不太喜欢那样的风格,不过那些家具看上去很优雅。他们的地板是竹地板,也让我很喜欢。我心里就想,这个邻居看起来有些档次。 不过过了半年之后,有一天晚上我偶然在路上遇到邻居的老头

2008-10-20 18:14:00 783

原创 一个项目的原型开发策略(EN)

One of my new customers is trying to get VCs investment at the moment. The basic way is to develop a prototype of the  target product. I suggested the following alternatives. These different prot

2008-10-07 15:30:00 1062

BPMN 2.0 by Example

业务流程管理(Business Process Management)示例。

2010-11-24

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除