CnPack Forum


 
Subject: 从事软件开发工作前应该做好哪些准备
bahamut8348
灌水司司长
Rank: 6Rank: 6


UID 4743
Digest Posts 14
Credits 337
Posts 79
点点分 337
Reading Access 10
Registered 2007-1-18
Status Offline
Post at 2008-3-20 00:20  Profile | Blog | P.M. 
从事软件开发工作前应该做好哪些准备

闲来无事,所以就有了这篇文章,当然我只是写出我的个人看法而已,欢迎大家指教~~~~呵~~

    这几天,总有人问关于界面美化的问题,诸如:“怎么改变按钮的颜色?怎么改变DBGrid指针的形状”等等;问他为什么,一般都是“我觉得不好,我觉得……”;而过几天,同一个人的问题就变成了:“谁能帮帮我,没时间了作业快要交了!”。我只想说一句,你早干什么去了?

    当然,不是说界面美化不好,界面的美化确实是项目流程里的一部分。当然,抱着置疑的态度去看待问题也不是什么坏事,我曾经就因为感觉我一个工程里的核心部分有问题而避免了一些非常大的问题(虽然在修改核心代码上用了大概1周的时间)。但是请注意,我注意的是我的核心功能部分,而不是在界面部分。

    我这里有一份流程图,大致如下:(PS:不一定对,请大家补充)
一、提出问题(以用户的语言来提出用户最关心的东西,比如:XX地方效率太低要花太多时间。)
二、需求分析(分析用户的需求)
三、系统架构(定制软件的核心功能、数据库的设计)
四、系统构建(完成软件的构造,即编写代码)
五、系统测试与优化(软件测试,BUG修补,功能模块的优化)
六、系统维护与扩展(BUG修补,软件功能扩展,软件版本的升级)
    对于从来没有项目经验的朋友,其实在所有的步骤开始之前还应该学会如何规划自己的开发周期。

    其中软件开发的准备工作一般是前三步,第四步(系统构建)才开始写代码。一般关于美化界面是放在第五或第六步来做的。应该要确保在你考虑界面问题的时候,核心功能不说无BUG,最少应该大致功能应该已经完成了。

    当然,上面的流程只是用于商业软件(因为我只做商业软件),但是不管是商业的,非商业的,功能最优先实现出来应该都是一样的。

    其实我们也可以想一想,一个连基本功能都不全的东西,就算你做成世界上最漂亮的软件,那又怎么样?那只是一堆好看但无用的窗口而已,如果你只要这样的效果,你完全不需要选择C++、DELPHI这种开发工具,可以去选择FLASH、PHOTOSHOP等等更专业的软件,那出来的图片可以说更漂亮、更快速。而且,在DELPHI中有非常多的SKIN系列的组件包,我们完全可以发挥一下“拿来主义”。

    工作环境毕竟和学习环境不同,举个非常简单的例子,假如老师给学生一个作业,那么学生在完成后交了就已经结束了,如果你碰到这样的情况呢:老师今天给了一个作业,明天学生门刚刚完成,老师又把题给改了,到后天学生把作业修改完成后、发现题目又改了,或许你这个时候会非常气愤,但是在工作中这样的事情是经常的;而且在企业中的规章制度有的时候你可能都完全不能理解:统一不准使用i++这样的语句,只能写成i=i+1;诸如此类的规矩在有些企业中会有很多。例如我公司在书写DELPHI代码的时候就会绝对要求代码的书写风格(说白了就是代码的缩进,我现在看到那种所有代码行都顶头写的,不管你的代码多么优秀,我是绝对不会使用你的代码的),并且绝对不允许使用WITH语句。

    为什么?不要问我,到时候就明白了!

    在学校,没完成作业或者说没完成毕业设计吧,顶多是分得低点,最惨的是当年拿不到毕业证,但是毕业证没长腿,今年拿不到明年还有机会。如果在工作中呢?一般没有按时完成进度会怎么样?轻的扣你薪水,严重点的让你卷铺盖走人了。对于那些家庭条件好点的人来说可能无所谓,在家休息几天就当放假,但是一般来说,技术工人本身属于比较穷的,而且家庭条件好的也不会来做这种工作,这可是和生存有关的啊。如果什么时候人可以把“进食”戒掉又另说了。当然,有人说:“我可以马上找到第二份、第三份工作……”,那么你的第N份工作呢?现在我们总不好意思天天在家靠父母养吧!当然假如你在国企的话,那就无所谓了,但是毕竟在国企的还在少数吧。

    或许有人会说我太现实,我会说:“人生在世上就要吃、穿、住……这些都要钱,我家庭条件很差,所以不得不现实!”

    当然,关于如何更好的去进行手上的工作,如果去管理自己的项目,有很多书籍可以看,就不多说了。我只想说一下,软件开发前的准备工作是必不可少的,没有听过任何一个项目是因为准备的太充足而失败的……

    当然如果你是搞科研的话,我说的就彻底无用了!
    好了,就这样吧,或许我有用词不当的地方,也或许你会有反对的意见,没关系,大家交流下心得嘛。^_^




做人要厚道,看帖要回贴
Top
abcdman
新警察
Rank: 1



UID 35317
Digest Posts 0
Credits 8
Posts 4
点点分 8
Reading Access 10
Registered 2008-1-3
Status Offline
Post at 2008-3-21 14:05  Profile | Blog | P.M. 
支持一下,呵呵,我已经习惯用with了,呵,并且在一个with语句块中写很多东西,哎
Top
Passion (LiuXiao)
管理员
Rank: 9Rank: 9Rank: 9


UID 359
Digest Posts 19
Credits 6750
Posts 3551
点点分 6750
Reading Access 102
Registered 2004-3-28
Status Offline
Post at 2008-3-21 14:39  Profile | Blog | P.M. 
with的缺点在于:
1. with体太长时,内部的可读性会变差。
2. 嵌套的with更会影响理解。
Top
bahamut8348
灌水司司长
Rank: 6Rank: 6


UID 4743
Digest Posts 14
Credits 337
Posts 79
点点分 337
Reading Access 10
Registered 2007-1-18
Status Offline
Post at 2008-3-21 19:01  Profile | Blog | P.M. 
至于为什么不用WITH语句,那是因为WITH语句极其影响代码的可读性。我看过的最多的有嵌套5层WITH的,以至于在维护这段代码的时候碰到一个标识符就需要用DELPHI的IDE跟踪一下到底它是定义在什么地方的。

WITH语句的确可以稍微提高点效率,但是在协同开发的时候,这种以增加维护量、降低可读性的代码来换取这少少的效率是得不偿失的。

其实提高效率也不在这一点上;选择合理的语句块,优化代码都可以明显的提高执行效率,举个例子:
for i := 0 to 100 do
  a[ i ]:= ...;

for i := 0 to 100 do
  begin
    value:= a[ i ];
    for j := 0 to 100 do
      ....
  end;

这样浪费的执行效率我想不是一个WITH可以弥补回来的,如果可以写成:
for i := 0 to 100 do
  begin
    value:= ...;
    for j := 0 to 100 do
      ...;
  end;

这样大家可以算一下可以节省多少个运算周期;

关于更多的提高执行效率的内容,其实可以整理出一份文档,这里就不多说了

[ 本帖最后由 bahamut8348 于 2008-3-21 22:00 编辑 ]




做人要厚道,看帖要回贴
Top
Passion (LiuXiao)
管理员
Rank: 9Rank: 9Rank: 9


UID 359
Digest Posts 19
Credits 6750
Posts 3551
点点分 6750
Reading Access 102
Registered 2004-3-28
Status Offline
Post at 2008-3-21 19:58  Profile | Blog | P.M. 
贴数组的代码时记得去掉UBB的符号,否则方括号中的I会变成斜体,哈哈。
Top
bahamut8348
灌水司司长
Rank: 6Rank: 6


UID 4743
Digest Posts 14
Credits 337
Posts 79
点点分 337
Reading Access 10
Registered 2007-1-18
Status Offline
Post at 2008-3-21 21:59  Profile | Blog | P.M. 
俺晕哦,我怎么说[    I     ]不见了,字体也边斜了呢




做人要厚道,看帖要回贴
Top
Passion (LiuXiao)
管理员
Rank: 9Rank: 9Rank: 9


UID 359
Digest Posts 19
Credits 6750
Posts 3551
点点分 6750
Reading Access 102
Registered 2004-3-28
Status Offline
Post at 2008-3-21 22:22  Profile | Blog | P.M. 
改过来了?不错不错。
Top
kendling (小冬)
高级版主
Rank: 8Rank: 8
MyvNet


Medal No.1  
UID 703
Digest Posts 5
Credits 978
Posts 580
点点分 978
Reading Access 101
Registered 2005-2-18
Location 广东
Status Offline
Post at 2008-4-20 17:30  Profile | Site | Blog | P.M.  | QQ | Yahoo!
我有时也很喜欢用with




小冬
http://MyvNet.com
Top
 




All times are GMT++8, the time now is 2024-3-29 10:28

    本论坛支付平台由支付宝提供
携手打造安全诚信的交易社区 Powered by Discuz! 5.0.0  © 2001-2006 Comsenz Inc.
Processed in 0.009421 second(s), 7 queries , Gzip enabled

Clear Cookies - Contact Us - CnPack Website - Archiver - WAP