`
ds3783
  • 浏览: 5208 次
  • 性别: Icon_minigender_1
最近访客 更多访客>>
社区版块
存档分类
最新评论

项目开发的一点经验

阅读更多
20?80?
    一直自诩为“打杂的”,简单的说,就是什么都干:项目相关文档、架构实现、自动构建、设计文档、编码,包括现在的项目在内,一直都是这样做的……
人的精力是有限的,即使天天加班也只能抓住那目前致命的20%时,剩下80%谁来做?低年级同学凭借能力和自信只能完成整个任务的50%,并且做的漏洞百出的时候,导致的结果只能是不得不推迟发布期。
结论是,虽然只做了20%,但需要检查验证的是100%。


代码的价值?
    有人说代码是不值钱的,又有人说代码是很值钱的。前者说随便找个程序员都能弄出来一堆代码,后者说那些代码都是程序员用血汗写出来的。结论是完美无误的代码才值钱,代码中有一点瑕疵都有可能导致整段代码作废。
    曾经看到过青年导报的一篇文章报道公司老员工能够创造不止3倍于新员工的价值,最根本的原因在于老员工懂得把事情做到位,回想很长一段时间来做的事情都不是很到位,忏悔。


文档、约束与时间
    阅读文档被很多人当成是浪费时间的事情,因为之前读过了。但是当事情出了问题却在抱怨文档中没有说明。
认真反复阅读软件工程上一级甚至上N级流转下来的文档,只会带来无比巨大的好处,而不会影响任何的进度问题。一个项目经理或者测试人员能够把需求文档熟读到倒背如流的程度,无疑这个项目是成功的。


可怕的测试
    曾经有两天出差时间,于是让A同学根据设计做编码,让B同学根据设计写单元测试代码,并且特地对B同学强调“你觉得A会出什么错误你就怎么写测试,但你不要问A这个错误会不会出现”。出差回来了解到情况是,编码完成,并且所有测试都通过了。打开IDE一看,而测试代码仅仅针对每个接口的每个方法做了相应基本流的一般测试(测试数据基本上没有代表性)。找到B同学问:“写了这么多对CRUD的测试有没有测试出什么问题?”答曰:“有,比如保存之后没有flush……”当时拿刀杀人的心都有了。
测试应该从需求出发,按照每个需求中描述的特性进行针对性的测试,针对领域模型的测试应该是对领域层中实现的每个用例进行测试。测试代码也需要从需求出发,好好设计一番。PS:真的很佩服B同学那么有耐心的写了好多new XX()然后调用了每个setXXXX方法,仅仅为了测试两行代码:
getHibernateTemplete().saveOrUpdate(obj);
getHibernateTemplete().flush();


文档?文档!
    某日,正在紧张编码中,突然MSN上A同学找我:
引用

同学A:XXX功能的保存方法出错了
我:什么错误?
同学A:是个空?
我:空是什么东西?
(1分钟后)
同学A:这是抓图(抓图中错误信息是null)
我:看看什么异常?
同学A:……NullPointerException
我:堆栈呢?
同学A:java.lang.NullPointerException:null
at com.company.xxxxxxxx……

    上述问题了解问题花了3分钟,解决问题花了1分钟,整理回原来的思路花了5分钟。
    另一次,与测试组讨论中:
引用

同学B:XXXX流程走不通。
我:怎么走不通?
同学B:XX操作的时候出了一个错。
我:我刚刚测试是好的啊,你那边出了什么错?
同学B:那是个什么什么错,一串英文。
我:那串英文是什么?
同学B:你看发给你的错误报告文档,那里面应该有。
(转到错误文档,找了半天发现一句“XXXXXX,上报出错”,汗……)
同学B:(很不好意思地)我机器上有抓图。
我:你机器IP是?
同学B:192.168.0.XXX
我:?远程桌面连不上?
同学B:哦,我远程桌面没开。
我:文件共享呢?
同学B:我也给关了。
我:那我怎么访问到你的机器?
同学B:好像访问不到
(沉默……)
同学B:(更不好意思地)我下楼把图片发给你把
(于是,勤劳的B同学就在19楼和13楼中又跑了一个来回)
PS:公司测试部门在13楼,会议室在19楼

    文字比语言更能够达到有效沟通的目的,我们的客户能够在反馈问题的时候把错误屏幕截图和堆栈异常粘贴出来,我们为什么不能呢?

分享到:
评论

相关推荐

    项目开发经验总结

    ### 项目开发经验总结 #### 一、引言 项目经理是一项充满挑战的职业,尤其是在IT行业中。成功的项目经理不仅要具备丰富的技术背景,还需要拥有出色的管理和沟通能力。本文基于多年的项目管理经验,分享了一些重要...

    Java开发经验及技巧集大汇总.pdf

    Java 的主要应用领域就是企业级的项目开发!要想从事企业级的项目开发,你必须掌握如下要点: 1、掌握项目开发的基本步骤 2、具备极强的面向对象的分析与设计技巧 3、掌握用例驱动、以架构为核心的主流开发方法 ...

    C#工控上位机项目开发(1)

    大家在做项目的过程成长不需要重新开发可以直接调用,同时大家有什么需要后续可以联系有关工控行业的资料这里都有,现在先将C#上位机开发以及前期课程准备的整套完整体系课程更新完成,一点一点学习相信大家学完本...

    android初学者入门开发经验

    标题《android初学者入门开发经验》和描述提到了Android开发中几个重要的概念,包括多线程、activity以及Android开发的基础知识。同时,给出了标签“android 多线程 activity handler gridview”。根据这些信息,...

    Java开发个人简历和项目经验.pdf

    这是我面试公司的用过的版本,写的不好,但是项目经验不少,你们可以改改,模板挺好,就是有些字面没大写,技术上面写的有一点问题,但可以用。

    pb项目开发

    根据给定文件的信息,我们可以提炼出以下关于“pb项目开发”的相关知识点: ### 一、PowerBuilder项目开发的基础流程 1. **框架设计**:在项目开始之初,开发者需要确定项目的整体架构,包括应用程序的基本结构、...

    Java项目开发初体验.pdf

    在学习项目开发时,不必太关注细节,写这个项目可能会用到一些以前没有接触的类、方法,不用太关注它,不用非得这个方法明白得不得了,不用太关注细节,你记得一点,要把项目写出来这是最重要的。 项目的注意事项 ...

    c#开发项目-扫雷游戏

    在本项目中,"c#开发项目-扫雷游戏"是一个使用C#编程语言实现的经典电脑游戏扫雷的实例。扫雷游戏是一个深受用户喜爱的益智游戏,它锻炼玩家的逻辑推理能力和空间感知能力。下面我们将深入探讨C#语言在开发扫雷游戏...

    项目功能大全,让你的项目一天搞定(给新手们一点干货) | iOS开发 - CocoaChina CocoaChina_让移动开发

    本资源主要讲述iOS开发中项目功能的全局介绍,旨在帮助新手开发者快速掌握项目开发的各种功能。这里涵盖了从基础的UISearchBar、UISearchController到swift语言、OS X开发、App Store发布等多方面的知识点。 知识点...

    swift-HTML转原生HTN项目开发记录

    在项目开发过程中,描述中提到的“项目结构不完善,不易扩展”可能指的是早期版本的代码组织方式不够模块化,不利于代码复用和后期维护。为了改进这一点,开发者可能引入了软件设计模式,如MVC(Model-View-...

    web项目,实战经验

    Forward机制: 这种方式是在服务器端作的重定向。服务器往client发送数据的过程是 这样的:...如果在之前有很多输出,前面的输出已使缓冲区满,将自动输出到客户端,那么这种重定向方式将不起作用,这一点应该特别注意。

    Eclipse是一个开放源代码的软件开发项目,专注于为高度集成的工具开发提供一个全功能的、具有商业品质的工业平台。它由Eclipse项目、Eclipse工具项目和Eclipse技术项目三个项目组成,每一个项目由一个项目管理委员会监督,并

    Eclipse 软件开发项目是开放源代码的工业平台,专注于提供高度集成的工具开发环境。它由 Eclipse 项目、Eclipse 工具项目和 Eclipse 技术项目三个项目组成,每一个项目由一个项目管理委员会监督,并使用 Common ...

    Android 项目开发实战:图案解锁

    综上所述,"Android项目开发实战:图案解锁"涵盖了Android自定义视图绘制、事件处理、数据存储、用户认证以及用户体验优化等多个方面,对于深化Android开发技能和理解移动应用安全机制具有重要意义。通过实践这个...

    Visual C++项目开发案例精粹-光盘源码(1-10)

    《Visual C++项目开发案例精粹-光盘源码(1-10)》是一部针对Visual C++编程语言深入实践的资源集合,包含了从基础到高级的多个项目案例,旨在帮助开发者提升在C++环境下利用Microsoft Visual Studio进行软件开发的...

    php开发流程和经验

    作者在项目开发过程中采取了一种逐步推进的方法,具体步骤如下: **初始阶段:** - **混合编码**:将PHP代码与HTML混合编写,这样可以帮助更快地上手。 - **熟悉PHP语法**:通过实践了解PHP的特性及其一些怪癖。 *...

    前端项目经验怎么写.docx

    首先,项目经验可以按照以下方法试试:可以做几个意义性强一点的案例,可以证明你在这些方面有造诣,并且让人可以看到的 demo,列举几个站点,并注明参与了哪些部分,学到了哪些知识。方便的是可以传到共享之类的...

    svn 多个人共同开发项目工具

    SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。...说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。

    BACnet 开发经验总结

    BACNet资料太少了,有用的高效的资料更是少! 资料太少,摸索着实在太辛苦,这是BACnet项目完成之后的一点开发经验,希望对正在摸索的各位同仁,有所帮助。

    Android项目-谁是歌手

    【Android项目-谁是歌手】是一款专为初学者设计的猜歌应用,旨在帮助开发者学习和掌握Android项目开发。这个项目对于那些希望踏入Android开发领域的人来说,无疑是一个理想的起点,因为它不仅提供了实际的代码实现,...

Global site tag (gtag.js) - Google Analytics