Project management 您如何在不同的新兴技术之间做出选择?

Project management 您如何在不同的新兴技术之间做出选择?,project-management,Project Management,我将在未来开发一个新的web应用程序,我想知道如何决定使用哪个框架。我已经决定选择Python作为我的语言。但是仍然有很多框架可供选择!更一般地说,您如何在与最新一轮web框架一样仍在开发中的不同类似技术之间进行选择?我很好奇,你决定使用你从未使用过的技术的过程是什么。认识到没有选择是完美的,甚至不是很好的 不管你选择什么,总有人会提出一个建议,他们声称这会更好 无论你选择什么,你的技术堆栈中的某些部分都会辜负你的期望 最重要的是“不共享”,这样就可以更换组件 之后,下一个最重要的事情是自动生成

我将在未来开发一个新的web应用程序,我想知道如何决定使用哪个框架。我已经决定选择Python作为我的语言。但是仍然有很多框架可供选择!更一般地说,您如何在与最新一轮web框架一样仍在开发中的不同类似技术之间进行选择?我很好奇,你决定使用你从未使用过的技术的过程是什么。

认识到没有选择是完美的,甚至不是很好的

不管你选择什么,总有人会提出一个建议,他们声称这会更好

无论你选择什么,你的技术堆栈中的某些部分都会辜负你的期望

最重要的是“不共享”,这样就可以更换组件

之后,下一个最重要的事情是自动生成功能,以减少或阻止编程


看看Django。许多自动管理功能使生活非常愉快。

您可以做很多事情:

  • 下载这些框架并构建与之类似的东西以供比较
  • 寻找其他人的比较,但尝试理解评论者的偏见
  • 观察工作中的社区,了解人们在构建什么,以及他们在使用该技术时遇到的问题。论坛、博客、邮件列表等都是查看的好地方
  • 参加会议,会见志同道合的感兴趣的开发人员
您还可以采用使用稳定版本而不是alpha位的方法。一段时间后,你可能会靠近出血边缘。与该项目相关的人通常比从其他平台接近的人更有偏见,小心你信任的人

考虑使用前沿框架与现有框架的影响。有时候,对你的客户来说,你站在一个被认为稳定的位置上是很重要的。在其他时候,这并不重要。您对修复框架本身有多满意?优秀的开发人员将学习内部结构,或者至少了解足够的知识,以便在bug被发送到框架邮件列表时保持运行


考虑在python平台上构建抽象和可重用代码的一些一般最佳实践。在移动到另一个平台时,您可以节省一些工作。但是,不要成为一个重用迷,因为这会限制您使用框架的有效性。37Signals的人说得对,他们说的是从工作代码中提取框架,而不是从头开始构建框架。

经验胜过道听途说。我发现原型设计是一个巨大的帮助。制作一个原型,使用您认为对各种框架最重要的特性。这有助于找出任何可能无法“如广告所示”工作的功能


不过,总的来说,愿意研究新技术是值得称赞的。

我知道这是一个老帖子,但我(再次)遇到了类似的情况,我认为还有其他人可能希望寻求不同的意见,并听到(某种程度上)成功的经验

由于baudtack提到了Python,我将尝试按照我使用Python的经验来回答这个问题。以下是我一直在做的事情:

  • 确定项目的范围-概述应用程序在不引入任何编程或设计说明的情况下应该能够做什么,这将极大地澄清您的目标
  • 确定您希望如何使用代码、堆栈和数据:

    a。您希望使用哪种编程范式?i、 面向对象、函数式等。您是想按照自己的编程风格行事,还是想遵循其他人的编程风格

    b。是否使用语义网?您希望对URI及其设计有更大的控制吗?(顺便说一句,我发现web.py在这方面非常好——我选择用Python创建RESTAPI)

    c。您是希望被框架需求所束缚,还是希望更好地将应用程序与web组件分离,例如,使用框架将应用程序作为一组模块使用。我对Django的问题是,我最终没有编写Python,而是不得不学习比我需要更多的Django。如果这对你有效,那么这就是出路

    d。数据存储。。。某种类型的SQL与非RDBMS(xml数据库,如完全支持xquery的eXist db)与OODBMS,还是上述两者的组合?你需要多复杂?在应用程序中存储和调用数据的方式上,您需要多少控制/分离

    e。测试:单元测试。。。谢天谢地,python!如果你的web应用程序有发展的潜力(就像他们经常做的那样),那么拥有一个健全、连贯的测试平台将在未来有很大帮助——我希望我早一点就知道这一点。哦,好吧。。。迟做总比不做好

    f。您需要对服务器进行多少控制?托管注意事项?您需要对Apache实例拥有多少控制权?操作系统特定需求?我发现使用像webpartion这样的共享主机提供商非常棒。我最终发现我需要更大的灵活性和带宽需求。换句话说,你的预算能得到什么?如果你有50美元每月花费,最好考虑一个虚拟的主机解决方案,比如Link……p>

  • 最后,我赞同S.Lott的观点,即没有一个解决方案的选择是完美的,而且会被淘汰。

    我有一套不同类别的标准:

    活动和文档

  • 是否有活跃的用户群
  • 是否有积极的发展基础
  • 支持是否响应要求,信息是否可访问
  • 是否有用户和开发指南以及参考资料
  • 这些都是必要的,需要对