德尔福 - 我如何改进

Sim*_*mon 11 delphi language-concepts

好吧,所以我已经在Delphi中编程了3到3年了,并认为自己是一个对概念有充分理解的中级应用程序设计师.但我怎样才能变得更好?我一直在寻找我经常使用的几个组件的来源(virtualtreeview,asynccalls),那里的代码只是让我感到困惑.是的,我可以理解它的一部分,但其他的事情就在我的头上.

那么哪些是提高编程能力的最佳资源呢?书籍,博客或其他信息来源?

Mas*_*ler 11

编程技巧就像肌肉; 改善它们的最好方法是锻炼它们.如果你想学习成为一个更好的程序员,那就做一个比以前更难的项目.想出一个你想写的东西的想法,但不知道该怎么做,并开始写作.一旦你遇到了你不理解的概念,研究它们,你最终会为你的曲目添加新的概念和技能.

  • 但就像肌肉训练一样:重要的是要做正确的项目.只是做更多同样的事情并不能让你改进 (5认同)

Dav*_*vid 10

理解使用您不熟悉的概念的代码很难.我的建议:

  • 选择一个或两个您不理解的项目,然后重新实现它们.根据您的问题,尝试编写自己的树(或列表)组件,并尝试编写一个简单的线程框架,您可以在其中调度作业并在某个时刻恢复其工作.这些是您提到的两个项目的简化版本.

    作为程序员,您可以边做边学.没有多少理论可以弥补解决和解决问题的经验.[*]

    当您解决这两个问题时,您将遇到Virtual TreeviewAsyncCalls的作者所遇到的一些相同问题.(如果你遇到麻烦,可以问这里!)你不仅会学到他们所学到的东西,而且你可能会回来重新阅读他们的代码,并了解他们正在做的一些事情.

    不要被你对周围概念(原始项目)和复制代码的工作实现这一事实所诱惑 - 随意查看它的灵感,但不要复制它.自己写吧.

    请记住,Mike Lischke和Andreas Hausladen都是非常聪明的人.如果努力工作,请不要灰心.许多程序员只是在他们整个职业生涯中都很有能力(听起来像你这样)而没有让自己去尝试或者更难学习(所以如果你不介意我这么说,那么对你提出问题很有帮助!)

其他一些想法:

  • 学习另一种语言.德尔福很棒,但你会用语言"思考",所以如果你学好另一种语言,你就会接触到其他概念或思维方式,或者做同样事情的不同方式.这真的打开了你的想法.

    例如,C++非常适合使用RAII,模板元编程(这比Delphi的模板允许的更强大),在各种额外的库中有一些相当惊人的东西,比如boost,并且自己在脚下拍摄:)功能语言将会完全改变你的想法(我不得不承认在这里有点虚伪:我已经接触过他们,但我不知道'我自己.我想.) 目标C可能对不同的看法有好处.什么是面向对象的意思(它和C++都是面向对象的基于C语言,但非常不同.)你明白了.

  • 查看这些特定项目:本页的一个答案建议逐行完成.我发现要理解我之前没用过的代码,这可能是压倒性的.我曾经在Embarcadero工作人员的博客上阅读了一些使用剖析器的建议,因为它将为您提供(a)程序的所有类/方法/部分以及(b)最常见的高级视图.使用过的,可能是最重要的部分,以及它们如何挂钩在一起.我不能赞同这个建议,但我认为这是一个很好的建议.我建议使用AQTime.

    正是因为这个原因,我发现像'找到Foo,研究来源'这样的答案是无益的:你是一个程序员,当然你会看到来源! 如何看待来源,这是一个更有趣的问题.

  • 最后,如果你到了"你正在查看几个[项目]的来源并且那里的代码只是残留[你]",或者如果你做了上面的一些并且不理解某些东西,请问这里!

[*]脚注:我不主张不了解潜在的理论,只是通过自己做一些必不可少的事情来获得知识/信心.


RRU*_*RUZ 7

你必须阅读Steve Trefethen的这些文章:

它提供了Delphi中一位优秀开发人员应该处理的主题的精彩摘要