Time 编写额外代码以避免学习新框架

Time 编写额外代码以避免学习新框架,time,frameworks,Time,Frameworks,我在我工作的地方是一家一人商店,当我开始在那里工作时,我没有任何经验,并且获得了低于标准的计算机科学学院的学士学位。最重要的是,我在该公司的第一个项目不仅涉及到制定好的设计原则,还涉及到学习一门新语言。不用说,我的代码一开始就很糟糕,从那以后我添加的所有新功能都是在那些糟糕的代码之上被黑客攻击的。令我惊讶的是,我的软件工作得如此之好 我在工作期间学到了很多东西,我渴望重构我的代码,使其更具可读性,以便未来的新员工能够潜心帮助我。我还真的想让添加新功能变得更容易,而不必把东西拼凑在一起。我认为学习

我在我工作的地方是一家一人商店,当我开始在那里工作时,我没有任何经验,并且获得了低于标准的计算机科学学院的学士学位。最重要的是,我在该公司的第一个项目不仅涉及到制定好的设计原则,还涉及到学习一门新语言。不用说,我的代码一开始就很糟糕,从那以后我添加的所有新功能都是在那些糟糕的代码之上被黑客攻击的。令我惊讶的是,我的软件工作得如此之好

我在工作期间学到了很多东西,我渴望重构我的代码,使其更具可读性,以便未来的新员工能够潜心帮助我。我还真的想让添加新功能变得更容易,而不必把东西拼凑在一起。我认为学习一个类似Prism的WPF/Silverlight框架会很有用,但我有一个庞大的待办事项列表(因为我是一个人的商店),看起来学习如何使用它需要相当长的时间

现在我读了一些关于棱镜的书,我知道了棱镜背后的基本原理。此外,编写我自己的代码来完成Prism的某些功能也不难。事实上,我已经在一定程度上做到了这一点,我在使事情更加模块化方面取得了良好的进展


我的问题是:我是否应该继续编写更多的基础架构代码来满足我的需求,还是应该花时间学习类似Prism的东西?或者可能会这样问:我应该花时间编写自己的简单定制解决方案,还是应该花时间尝试掌握一个可能比必要的更复杂的丰富、广泛的框架?在做出决定时,我应该考虑哪些因素?

如果您编写的应用程序将存在一段时间,并且必须维护,特别是由其他开发人员维护,那么花在学习和集成标准框架上的任何时间都是值得的


它将提供应用程序编写方式的文档,任何熟悉该框架的开发人员都可以更快地了解它。它可以减少您必须编写的代码量,帮助您专注于特定的业务问题,而不是编写应用程序的管道。

我为最近的一个项目编写了自己的PHP MVC框架,正好满足了我的需要。这是一次非常有趣的经历,教会了我很多东西,也是一次非常好的经历,我再也不会这样做了。虽然这是一个很好的第二个分散注意力的项目,但它大大降低了我在主项目上的工作效率


实际上,这在很大程度上取决于需要开发多少基础设施。如果只是一点点,不会超过一两个小时,那就去做吧。如果需要花费大量时间,请使用其他人的工作,继续前进,完成您的项目。

核心问题是,您将重复使用该框架多少次,从而节省您每次重新实现类似内容的工作?记住,你从头开始写的东西,如果它被认为是好的,就必须在不同的环境(客户机和c)下进行测试、验证和维护——所有这些东西都将通过使用一个好的、积极维护的框架“免费”提供给你


如果您只打算使用该框架几次,那么净回报可能仍然有利于从头开始重写——但是如果该框架涵盖了一个您需要的领域,而不仅仅是几个案例,那么学习使用该框架的投资回报(假设它是好的!)vs从头开始重做将是非常积极的

我大学毕业时也遇到过类似的情况。我在这家小公司工作大约1.5年后,收到了一家大公司的录用通知。我学到的是(对你和其他人来说可能不同):

  • 一毕业就在一家小公司工作是个很棒的主意。我这样说是因为你必须戴很多不同的帽子。例如,您将编写代码、测试代码、部署代码、编写存储过程等。最终结果是您熟悉从概念到任何内容的整个过程。我认为这种经历是至关重要的
  • 我喜欢写代码。我记得我开车回家的那些日子,想起我处理生产支持问题的那一天。我花了更多的时间支持客户和编写“一次性”代码,而我并不是在编写代码
  • 在大公司工作对大学来说是个坏主意。当你在一家大公司工作时,他们对你有特定的角色,你有特定的界限。如果您是一家大公司的开发人员,很可能您没有将应用程序部署到生产环境中,也没有调整存储过程
  • 在小公司工作之后,为大公司工作是个好主意。这是因为如果你在一家小公司工作,它将迫使你学习更多的东西,而不仅仅是编码。如果你明白,你将是一个更好的开发人员
  • 与优秀的开发人员合作会让你变得更好。当你和一群优秀的人一起工作时,你会变得更好。这是因为每个开发人员都有他们带给团队的特定历史记录,并且你们都可以互相学习。在我目前主要与之合作的团队中,有:一位MSBuild专家、一位Silverlight专家和一位F#专家,以及其他好人。所以有些人向我学习MSBuild,我也向他们学习。只是和好男人聊天可以让你变得更好

  • 所以如果我是你,不要在那里花太多时间。也许1年或2年后,找一份有一些有才华的开发人员的工作。你将在5年内成为一名更好的开发人员。我知道我之所以如此,是因为我搬家了。

    以你提供的背景——大部分是自学成才,没有同龄人讨论你目前的发展状况——你应该绝对地检查你自己