事实证明,代码与文字不可得兼。在悠悠闲闲地写产品文档时,写一点文字也是很正常的事情。但真正开始写起代码来时,即使有写文字的想法,也绝对不会在敲了几百行代码后,还会有摆弄键盘的想法了。
我是一个极其没有时间概念的人,写完系统分析后,我在悠闲中度过了几周的时间,每周只是在周末写一点程序,但也只是适可而止,我还要看看电视、听听音乐、玩玩游戏……
到五月的最后一个周末时,我才开始紧张起来,当时我对在6月12日前能否完成已经不报太大的希望了,按以前的进度,三周才写了30%的功能,两周的时间不但要写完,还要完成简单的测试、发布,这些活看起来很琐碎,但实际上都是极耗费时间的。
不过事后我发现,按照功能点来估算项目进度也存在一些问题。尽管当时我只完成了30%左右的功能,但系统的架构和技术点的尝试我都已经完成了。也就是说,在我以后70%的路途上,已经不存在技术难点了。而且随着我对C#的掌握,开发进度也比以前要快了许多。所以,我认为在估计项目进度时,不应该忽略技术难点对进度的影响,还有程序员对技术的熟练程度是一个动态的过程,我们不应该把一个人的开发效率看成一个定值,熟练程度、身体状况,甚至心情对开发效率的影响都很大,甚至可以达到倍数关系。
接下来的两周炼狱之旅还算是比较顺利,由于公司里的事情也比较多,我除了压缩自己的睡眠时间外,已经没有其他时间可以利用了。但睡眠时间与工作效率是有很大关系的。大脑疲劳的情况下,逻辑思维很容易混乱,而程序员逻辑思维的混乱、噢,或者说不清晰,给软件带来的可能就是致命的缺陷。所以我十分同意XP中的观点,每周只工作40个小时,我甚至觉得程序员如果每周编程时间不应该超过30个小时,除非是最后一周。如果给大家树立一个伸手可及的目标,大家会想只是一周,一周之后我们就可以享受假期、给客户演示程序、暂时告别枯燥的编码生活了,所以大家会放下很多事情,将生产率提高到一个很高的程度。但如果一周之后完不成,程序员受到的打击是来自生理与心理两方面的。
程序开发中Deadline前的冲刺很像战争中的冲锋,如果第一次冲锋,所有的士兵都会发挥最好的状态,一鼓作气撕破对方的防线,但如果一次冲锋失败,那就会再而衰,三而竭了。所以,项目经理选择冲锋的时机很重要,有时候,一个项目的成败也许就在一念之差。
整个程序是让我比较满意的,因为我用了四周的时间进行了产品设计,很多逻辑问题都在那个时候考虑清楚了。整个架构在后来的开发过程中是坚固而且有弹性的,我相信如果再在上面添加或者修改某些功能,我们的改动会很小。逻辑代码与界面的分开最大的好处是重复的代码大量减少了,也便于理解了。唯一有些麻烦的是,由于我没有采用单元测试,为了完成一个功能,我可能要一起修改三个类——界面、逻辑、Service调用或者数据库操作。
让我不满意的是,对Web Service接口的定义并不好,由于对接口缺乏认识,我按照程序的需要定义了大量似是而非的接口,比如说,我要得到一组数据,有一个接口返回DataSet,而我需要得到其中一个数据,那么就需要另一个接口了。这是让我很不满意的一点。
另外一点是安全性,我把密码明码直接存到了数据库里,这是极其危险的做法;还有就是使用者的验证只是在登陆时起作用,而在调用Web Service的方法时,并不去验证调用者的合法性,这在无线环境下也是极其危险的,任何一个人都可以通过无线设备调用你的Web Service,获取一些数据,或者修改数据。对于安全性的考虑是下一阶段的重点。
在力所能及的范围内,我还是对一些已知的攻击方式做了防范,比如SQL注入,我用自己的方式做了防范,一旦察觉到可能的SQL注入攻击,Web Service会抛出一个异常。
说到值得夸耀的地方,我最欣赏的还是界面的风格,.net Compact Framework是不支持渐变背景色的,我用比较古老的方法实现了界面背景的渐变,但同时将对执行效率的影响降到了最低。还有多行显示的ListView控件,是我很早就想实现的,这次终于借助第三方的代码实现了。
这次开发的心得就这么多了,这次是我一个人从产品定义、设计、编码实现、数据库、测试、发布这样一路走过来的。很多地方都按自己的想法做了,效果还不错,有些地方也突现出自己的幼稚,不过咬牙一路走过来之后的幸福感却是什么都替代不了的。
无论如何,我要给自己放个心灵的假期了。刚才dearbook送来了《敏捷软件开发》,呵呵,终于可以放松一下了。
分享到:
相关推荐
### 互联网的饕餮盛宴——理解“饕餮盛宴”及其在互联网投资领域的含义 #### 饕餮盛宴的含义 “饕餮盛宴”一词来源于中国古代神话中的怪物“饕餮”,它象征着贪婪与无度的食欲。在这里,“饕餮盛宴”用来形容...
饕餮工具包,目的是询问集成后渗透的相关技术饕餮工具套件饕餮工具包,目的是需要的集成后渗透的相关技术,添加的普及功能参考了很多表哥的作品,列已在后面致谢部分,由于抄袭的项目有点多,所以可能有些忘记填写了...
CAD_CAM饕餮盛宴.pdf
在嵌入式系统设备驱动程序开发领域,根据给定文件内容,以下知识点得到了详细阐述: 1. 嵌入式系统基础:嵌入式系统是一种专用的计算机系统,其设计目的是完成特定应用,与通用计算机系统最大的区别在于应用的特...
交锋2015百人会——新能源客车饕餮盛宴.pdf
其中,王乔乔的经历颇为典型,她用实际行动告诉我们,美食体验师是如何在享受饕餮盛宴的同时,不断提升个人职业能力和影响力。 王乔乔自幼对美食情有独钟,然而,因为经济条件的限制,她难以频繁地光顾那些高消费的...
从CAD/CAM饕餮盛宴的内容可以得知,CAD/CAM软件在不断演进,软件功能的完善和优化在制造业中扮演着至关重要的角色。软件功能的更新不仅体现在提升用户的操作体验上,更重要的是在缩短制造周期、提高生产效率以及保证...
报告标题“20121119-招商证券-基础化工行业:进口替代正当其时,饕餮盛宴业已开启”揭示了2012年11月19日招商证券发布的一份关于基础化工行业的研究报告。报告的核心议题是讨论在当时的市场环境下,基础化工行业如何...
《饕餮之路_2015年货大数据报告》是由百分点数据科学与研究中心于2016年1月发布的研究报告,该报告主要聚焦于2015年中国春节期间的年货消费情况,通过大数据分析揭示了消费者的购买习惯、偏好以及市场趋势。...
电力设备行业深度分析报告以“泛在深度解码之三:共享万亿饕餮盛宴,重塑行业未来发展”为主题,揭示了电力设备行业的未来发展趋势和潜在机遇。这篇报告详细探讨了电力设备行业的变革,以及如何通过泛在电力物联网...
在本实验教程中,重点是利用ArcGIS Engine进行GIS的二次开发。ArcGIS Engine是Esri公司提供的一款强大的GIS开发工具,它允许开发者构建具有专业GIS功能的应用程序。 ArcGIS Engine提供了丰富的API和控件,支持多种...
gulosity 饕餮 基于Laravel4 开发的移动点餐系统,支持微信或者作为独立的wap站点。 (目前支持微信公众号作为入口的功能,包括下单、微信支付、后台订单管理等等) ###Usage clone gulosity到你的服务器 cd www #...
2019年作为启动元年,将通过统一组织、专项试点、创新探索三类组织模式,由总部统筹安排,基层单位主体参与设计、试点和建设工作。到2021年将初步建成泛在电力物联网,实现涉电业务线上率70%;到2024年将建成泛在...
这篇文档实际上是一份高中语文考试试题,主要涉及的是对古代文化、艺术的理解,特别是对中国古代青铜器上常见的饕餮纹饰的解读。试题中的文章部分探讨了饕餮形象在青铜器上的盛行及其背后的历史和美学意义。 饕餮,...
虽然标题和描述提及的是"年会的邀请函3篇.docx",但根据提供的部分内容,我们可以提炼出以下几个与技术相关的知识点: 1. **电子邀请函的使用**:现代企业越来越倾向于使用电子邀请函,这反映了数字化趋势在日常...
根据提供的文件内容,我们可以提炼出以下知识点: 1. 光学薄膜行业分析: - 光学薄膜是平板显示产业链中关键部分,尤其在TFT-LCD显示器件中,光学薄膜负责提供均匀的光面光源,并控制光线的透过。...
根据给定文件的信息,本文将围绕“中秋不回家Q+自制过节拼盘也出彩”这一主题,从出游篇、饕餮篇、宅居篇三个方面详细介绍如何利用Q+平台提供的丰富应用,来打造个性化、多元化的中秋节庆祝方式。 ### 出游篇:驴行...
Unity官方年度巨献,基于5.X新版本,为游戏开发者带来一场饕餮盛宴 <br/>本书基于Unity 5.0软件及以上版本,对Unity 5 中的大量图形改进和扩展的编辑器功能集进行讲解。另外,对Unity Cloud Build的使用进行详细...