实用总是胜过理论概念。创建模型是了解该技术是否合适的唯一方法。一旦您有了可行的 POC(概念证明),您就可以从那里启动项目。这是创造性的部分,随后的发展就更加可预测了。
我建议同时开发多个版本,并在尝试不同的框架时删除一些版本。我不会把所有赌注都押在一种语言或生态系统上,我会选择 3-4 种。时间范围由你决定,但最好不要超过两周。等待的时间越长,你对某项技术就会越厌倦或越着迷。结果应该是一个冷静、计算的估计。
开发 POC 相当于评估解决方案的可行性。这是决定预算的时刻。它还评估了可能长期破坏产品的风险。
一旦概念验证稳定下来,就开始进行MVP 澳大利亚电报数据 (最小可行产品)的工作。不同之处在于,后者必须是可以向感兴趣的各方或客户展示的产品。其主要目的是获得反馈并在必要时进行更正。 PMV 最多需要几个月的时间。
请记住,它只是一个基本功能子集。错误就在于试图实施太多的事情。解决方案呈现给消费者,因此必须实施可观察性解决方案。有时您需要路由流量以进行A/B 测试。
一些公司需要不断改变并适应新趋势。它们通常是研究和工程边界上的项目。
理想的语言应该:
提供一种抽象事物的方法
能够灵活适应大型图书馆生态系统
促进快速发展
获得框架所有者的良好支持
新语言占据了其中大部分特征,但尚未找到自己位置的最新语言却占据了其中大部分特征。
JavaScript:它非常适合Web开发。它非常灵活,拥有良好的社区支持,并且能够实现非常快速的开发。
Go:由于其简单性,适合构建可扩展的系统。它也非常强大并且专为系统编程而设计。
Kotlin:由于它在 JVM 上运行,因此它具有强大的生态系统。它用途非常广泛,并且是静态类型。这对于移动开发很有好处。
Python:简单、易懂。它拥有丰富的图书馆藏书和强大的社区。
关键部件的稳定工具
如今软件进化的速度相当快。特定工具的生存只需要几年的时间,这段时间之后我会认为它在未来是安全的。
大多数软件都有分层的架构,中间有一个核心。它在应用程序的生命周期内不会发生太大变化(如果它发生变化的话)。因此,我们所追求的并不是快速的发展。更好的是,语言应当是可预测的并且能够持续到未来。
标准化你所拥有的
一些公司制定内部标准来鼓励团队沟通和效率。标准化可以涉及相同的语言、流程和工具。例如,Netflix 最初是 Java,后来转向 Spring。
问题是,什么技术最适合您的项目?答案一如既往,这取决于具体情况。
成本与生态系统之间的概念距离成正比。将一些 Java 服务重写为 Kotlin 是一回事。而用 Java 为微服务重写本机的汇编器解决方案则是完全不同的事情。
另外还有协同效应的概念:团队的综合力量大于团队单独力量的总和。过多的沟通和调试问题无助于协同作用。当您的解决方案中融入大量技术时,这就是您所要求的。这就是为什么标准化在全球范围内更好。
我个人的观点是,你应该有一个很好的理由将一门新语言引入到你的项目中。其中一些可能是因为它更容易吸引人才,使工作更容易,或者旧的解决方案已经变得商业化或被忽视。
结论
我们做出的任何决定都充满一定程度的风险,这是事实。但我们不应该仅仅避免它,而应该主动管理它。