各位说说年软件开发中什么最重要?说说理由

laorer 2004-12-05 10:05:00
语言是基础,如果没语言的话,实现就难了,但语言却不是最重要的,只会语言的话,那就摸不着头尾了,
但什么最重要呢?
...全文
364 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
prosadn 2004-12-19
  • 打赏
  • 举报
回复
其实对于做项目和做产品都熟悉业务和思想。
对于有些不是很大的项目就是熟悉业务再加上有项目经验就行了。
如果比较大的项目,如果没有比较深厚的思想,做第一个项目的时
候很辛苦,做第二个项目是轻松一点,但很多东西还是要想,很多东西
还是要重写,而且有些时候看到有些东西好像有点相同又有点不相同,老是在
那里想,我要这样做好还是那样做好,想了好一段时间后。还是不知道怎么
下手,只好重新再写过一个,开发中期有什么业务变动,都不知道要怎么改系统,
大多数情况之下,都是因为没有经验和没有深厚的思想和理论。有思想就不同了,
就算开发中期如果业务有什么变动,改起来就不是很痛苦,有些时候只需要用一个
父类继承一下问题就解决了,而且以前那的那些代码,完全都不用再改,
对于做产品嘛,也在比较懂业务和思想,特别是行业软件,如果不懂业务的话
还不知道要做什么样的软件呢。

to laorer(laorer)
我在上面所说的
把人家的架构,设计模式等全部搬过来
可能你们会认为是把人家所写的东西直接引用(说白了就代码复用)或者是继承一下
就行了?呵呵,我所说的可不是这样,是复用但不是代码复用,而且是架构思想复用。
不知道大家有没有研究过Delphi的VCL框架,里面有十几万行的公开源代码(这个也是
我为什么喜欢学Delphi的原因)。里面有TDBEdit、TFieldDataLink、TDataSource和
TTable,Delphi公司那些高手写好这几个类,然后让我们只是简单的选择了一下
TDBEdit和TDataSource两个类属性就可以把TTable类的数据显示出来给用户,而且用
户也可以修改TDBEdit里面的数据来修改TTable里面的数据。那些高手是怎么样封装来
来实现这个效果的呢?
1.首先定义一个局部变量FDataLink: TFieldDataLink;在TDBEdit类的private部分可以
看到这个变量的定义。
2.在TDBEdit类的Create方法里这样写法

constructor TDBEdit.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
inherited ReadOnly := True;
ControlStyle := ControlStyle + [csReplicatable];
FDataLink := TFieldDataLink.Create; //解释1
FDataLink.Control := Self; //解释2
FDataLink.OnDataChange := DataChange; //解释2
FDataLink.OnDataChange := EditingChange; //解释2
FDataLink.OnUpdateData := UpdateData; //解释2
FDataLink.OnActiveChange := ActiveChange; //解释2
end;

解释1:
在VCL框架里,一般类A里面有定义局部变量B(B为一个类)的时候,都会在类A的
Create方法里面创选B的实例然后在Destroy方法里面Free变量B。这样做在很时候
都会少很多大麻烦,所以我们也要学着他们这样说。这里算是复用1

解释2:
在TDBEdit类里面有定义DataChange、EditingChange、UpdateData和
ActiveChange同时也会在TFieldDataLink里面定义OnDataChange、OnDataChange、
OnUpdateData、OnActiveChange方法属性,然后在这里进行赋值。然而人家为什么
要在TFieldDataLink里面定义OnDataChange、OnDataChange、OnUpdateData、
OnActiveChange这几个方法属性?我们如果想清楚,别人为什么要这样做,这样做
有什么好处?然后我们就可以在我的写程序的时候用上这个思想,也和他这样定义,
这样命名。

3.在TDBEdit类里定义DataSource方法属性定义如下:
property DataSource: TDataSource read GetDataSource write SetDataSource;
又要SetDataSource里这样写:
procedure TDBEdit.SetDataSource(Value: TDataSource);
begin
if not (FDataLink.DataSourceFixed and (csLoading in ComponentState)) then
FDataLink.DataSource := Value; //解释1
if Value <> nil then Value.FreeNotification(Self); //解释2
end;

解释1:
这里为什么要在这里对FDataLink.DataSource进行赋值?为什么在这个时候赋值?
在这里,我们想通他这样做的思想的,然后也学他。

解释2:
这里是为了解决当TDataSource对象Free后,TDBEdit也能正确运行。

3.在TDBEdit类里定义DataField方法属性
property DataField: string read GetDataField write SetDataField;
又在SetDataField方法里这样定义

procedure TDBEdit.SetDataField(const Value: string);
begin
if not (csDesigning in ComponentState) then
ResetMaxLength;
FDataLink.FieldName := Value; //凝问1
end;

凝问1:在这里为什么人家要这样定义?其中改变TDBEdit的DataField属性也会改变
TDBEdit里面的Text值,人家会让这个工作放给FDataLink.FieldName来解决。然而为
什么要这样说?我们如果了解他们的思想然后在我们写程序的时候也是这样做,这样的
话我们就少了很多烦恼。

好像如果要说VCL的话,可能也要和深入深浅MFC那本书那么多字,还是只是说说MFC的一
点点皮毛。在这里不多了,如果有机会的我再写出一些我对VCL的感想,大家可以分享一
下。

如果我们把VCL这个框架一部分思想了解后,然后就学着它这样定义的我们的系统架构,
开发软件起来一个定轻松自如,当然能够了解它的全部思想的话,那更加好,那一定
很牛。

//注:可能有错别字,大家帮忙看一下。哪里有什么不对,请大家指教一下。
laorer 2004-12-18
  • 打赏
  • 举报
回复
to prosadn(热血青年)
照你的意思,思想和重用不差不多啊.我不赞同直接把别人的架构和设计模式全部搬过来,很多时候,能完善结合的两个项目的架构,很少吧
不过我还是赞同第二点,要懂业务,看现在比较成熟的软件中,赚钱的还是那些对于某一领域的软件,但是如果是一个软件公司的话,如果是接项目的话,他就不得不再深入去学其它领域的东西了,或者可以说,一个好的软件,是业务与开发人员共同作用的结果
htw_qq 2004-12-18
  • 打赏
  • 举报
回复
对于项目来说:清晰的目标最重要;
对于产品来说:坚定的理念最重要;
无可厚非,人无疑是最重要的。
prosadn 2004-12-16
  • 打赏
  • 举报
回复
其实做软件最重要就是懂业务,不懂业务的话,你就不知道要做什么系统!!什么的系统对用户才是有价值的.什么样的系统才能够买得到很好的价钱.如果你不懂的话,我上面说的也没有什么用.
prosadn 2004-12-16
  • 打赏
  • 举报
回复
思想最重要.如果思想好的话,做一个系统就好像抄写别人的文章一样.如果思想不好的话,开发起来就痛苦了.不知道怎么下手,而且,在开发期间如果业务有什么变动,而因为思想不过关,在前期还没考虑到这个问题,所以不知道怎么下手好,就算知道怎么下手,因为前期是用比较烂的方法,所以后期做出来的系统也是很不灵活.很死版那种.
思想好就不同了.做一个系统就是直接把人家的架构,设计模式等全部搬过来,对于系统的中的那类和方法和属性的名字都是用别人的这样连起名的时间都不费时想了,对于整个系统的实现,就根据业务流程,做一些简单的界面类和业务类就行了,而且做界面类和业务类也根据相对应该的业务定义一些变量保存业务的信息和处理问题所要保存的信息和状态就行了.
ssq_td 2004-12-14
  • 打赏
  • 举报
回复
架构,开发好比建房,首先要有个好的框架,然后补砖和装修!所以一个好的框架决定你的工程!
laorer 2004-12-10
  • 打赏
  • 举报
回复
楼上说得好是好,但,什么叫做适当的技术,适当的管理?我想对于不同的项目来说是不同的,但就是对于一个项目来说,适当却真的好难把握
laorer 2004-12-06
  • 打赏
  • 举报
回复
无可厚非,人无疑是最重要的,但对于单个人来说呢?

这样说吧,一个开发组的组长,他如何来安排一次软件的开发呢
zhf_karen 2004-12-06
  • 打赏
  • 举报
回复
对于项目来说:清晰的目标最重要;
对于产品来说:坚定的理念最重要;

如果要说技术上什么最重要,没有太多感觉。既然没有感觉,就不说了。
platform 2004-12-06
  • 打赏
  • 举报
回复
技术只是从属于人的一个方面,人不同,载的技术也不同,技术层次和水平,理解能力都不相同
aboush 2004-12-06
  • 打赏
  • 举报
回复
重要的是满足,满足了什么都好,适当的技术,适当的管理,只要你有这个称,你就有成功的机会
jokerjava 2004-12-06
  • 打赏
  • 举报
回复
一个开发组的组长,他如何来安排一次软件的开发呢

这不可能有定论的
瞧瞧N多的方法论就知道了

golongfly 2004-12-06
  • 打赏
  • 举报
回复
最重要的就是有把软件开发出来的决心吧。
有点水,呵呵。
laorer 2004-12-05
  • 打赏
  • 举报
回复
呵呵,技术上呢?技术不可能只是指语言
platform 2004-12-05
  • 打赏
  • 举报
回复
人是最重要的
管理的人,沟通的人,客户,做事的人
最重要的是还有PPMM

1,265

社区成员

发帖
与我相关
我的任务
社区描述
软件工程/管理 管理版
社区管理员
  • 研发管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧