architecture - 如何理解现有项目

标签 architecture dns

我是一名实习开发人员,并且已经编写 .NET 应用程序大约一年了。我所做的大部分工作都涉及从头开始构建新的应用程序(主要是 Web 应用程序),并且我或多或少地完全控制了软件设计。

然而,这是一次很棒的经历,作为一名实习开发人员,我对我所采取的方法是否最好的信心很小。理想情况下,我希望与更有经验的开发人员合作(我发现这是我学到的最好的),但是在我为开发人员工作的公司中,我倾向于孤立地工作(这对我来说是一种耻辱)。

最近,我决定探索一些开源项目是了解更多有经验的开发人员如何处理他们的设计的好方法。我发现自己对我所看到的项目有些不知所措。以我的经验水平,很难理解我面对的代码体。

我的问题有点模糊。开发人员如何处理理解一个新的中大型项目的任务。我发现自己倾注了大量代码,并努力只见树木不见森林。任何时候我都觉得我可以理解系统的一小部分,但看不到它们是如何组合在一起的。其他人有同样的感觉吗?如果是这样,你采取什么方法来理解这个项目?关于如何学习设计最佳实践,您还有其他建议吗?

任何建议将不胜感激。谢谢你。

最佳答案

这是一个非常有趣的问题。我也想知道其他开发人员是如何做到这一点的。到目前为止,我没有按特定顺序使用这些可能性:

  • 阅读源代码,它的优点是它始终是最新的。这也是
    最困难的任务,但这是可能的。
  • 如果可用,请阅读单元测试,它们通常会显示类、库或框架的预期用途。
  • 重构部分源代码。当你提高源代码的质量时,你会增加对代码的理解,或者我应该说只有当你确切地知道它的作用时你才能改进源代码。
  • 调试应用程序,在使用调试器的同时逐步执行程序。
  • 使用 NDepends、JDepends、Lattix、Visual Studio 等工具对应用程序的架构或设计进行逆向工程,并将其用作起点。
  • 阅读文档。任何使您能够理解应用程序的文档都可以(用户文档、设计文档或架构文档)。
  • 正如布鲁诺所说,与原始开发人员交流也是一个不错的选择。
  • 关于architecture - 如何理解现有项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2872345/

    相关文章:

    dns - 使用子域和 CNAME 是否会影响 DNS 查找时间?

    heroku - Multi-Tenancy Web 应用程序的自定义域

    PHP 数组从 <option value ="text"> 获取值

    php - 验证未验证的电子邮件地址?

    iphone - 与设计优秀的 iPhone 应用程序架构相关的书籍

    c - 使用 "core clock cycles"的 Intel CPU 上的时序代码?

    java - SOA 中的 Orchestration 和 Choregraphie 是已弃用的架构吗?

    hibernate - 如何在 Grails 中创建 "view"域对象

    dns - Kubernetes GKE-DNS传播非常缓慢

    database - 保持本地缓存在分布式系统中看到相同的 "version"数据的策略