使用Delphi 2010进行高级编程的基本技能是什么?

时间:2012-03-23 02:43:21

标签: delphi delphi-2010

就像德尔福编程而言,我是一名中级程序员,他有兴趣解除我的游戏。我需要听取专家的意见。

如果我准备使用Delphi 2010进行Win32应用程序项目,那么我需要精通的基本技能是什么(我会感谢一系列主题,这些主题既不太简短也不像TOC中那样详尽无遗。书)?您可以假设将使用Web服务读取和写入单独的数据库以及与其他系统组件的通信。我知道这一点,请忽略Unicode合规性。另外,使用Delphi进行“最佳实践”编程的互联网上是否有一个很好的来源,或者它总是一个“它取决于你想要做什么”的情况(即在这里询问个人问题)?感谢。

3 个答案:

答案 0 :(得分:6)

首先建议阅读RTL / VCL代码的某些部分。与Classes.pas SysUtils.pas Graphics.pas Controls.pas类似......在Delphi中编码时,这是 引用。代码的其他部分(如SOAP或FireMonkey)可能不是一个很好的参考资料...使用源代码,Luke!

一些主题,可能不是特定于Delphi编程,但我与团队实验和​​项目代码维护相关:

  • Delphi如何处理内存:没有垃圾收集器,但每个类实例都应该被释放,或者拥有一个(TComponent个孩子);
  • 不要忘记处理异常:考虑可能发生的事情(可能更糟),然后使用try .. finallytry .. except块保护您的代码(释放资源/内存+处理错误); < / LI>
  • 如果你有一些pre-Delphi 2009代码,请注意字符串类型从Ansi更改为Unicode:Internet上的某些代码不是Delphi 2010准备好的;
  • 了解单元测试 - 并使用它;
  • 了解n层体系结构,不要滥用Delphi RAD方法(易于点击和编码,但如果GUI,DB和逻辑混合,则需要进行维护) - 真正的OOP编码对于任何严肃的项目都是强制性的

答案 1 :(得分:4)

这不是'你想要做什么'的情况。 ;)

我不认为高级编程与特定知识有关,而是用正确的思维方式来解决问题并提出一个既可靠又可扩展的创造性解决方案。当然,你需要知识来构建它,或者至少能够在必要时自己获得知识,但作为一名(高级)程序员,我认为更多的是看到大局而不是具备特定的编程技能。

答案 2 :(得分:1)

使用界面!

它们比简单对象更安全,因为你不必释放它们,编译器通过使用引用计数来安排它们。

它们的缺点是两次输入相同的方法(在接口和类部分),但这也允许你在实现部分中隐藏类定义:

interface

type
  IJob = interface(IInterface)
  ['{A925F829-60D6-4418-B03A-1655B311D8D9}']
    procedure DoSomething;
  end;

function CreateJob: IJob;

implementation

type
  TJob = class(TInterfacedObject, IJob)
  public
    procedure DoSomething;
  end;

function CreateJob: IJob;
begin
  Result := TJob.Create;
end;

{ TJob }

procedure TJob.DoSomething;
begin
  // do something
end;

请注意,此代码中没有“免费”,但它完全有效。