互联网公司与团队的技术选型 --新技术、成熟技术和小众技术

2023-11-21 23:48

本文主要是介绍互联网公司与团队的技术选型 --新技术、成熟技术和小众技术,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

现在同一个问题,解决的方式有很多种。同样是应用层开发,有数不尽的语言和框架可以选择。这虽然有好处,但也带来了诸多麻烦。比如,团队成员对技术选型意见的不一致;解决同一问题工具选择周期的增长;很难客观完整的对比可选方案;社区对哪个语言、哪个框架更好争论的永不休止。究竟如何做技术选型是困扰很多人的问题。

之前我也有很多疑惑和思考,最近整理如下。

效率:开发效率优先还是运行效率优先

选择开发效率还是执行效率是个老生常谈的问题。对于不同阶段的公司和项目会有不同的选择。新的商业项目更趋向于选择开发效率优先。因为商业模式的尽早验证比其他因素更重要。

但是假如是成熟的商业模式,预见规模会很快扩大到很大,则可以选择运行效率优先。另规模化项目比如云服务平台、大公司的基础组件更趋向于选择运行效率优先。

成熟和常见技术优先

成熟和常见技术指那些被大部分人知道并学习很多年的技术,比如网页编程语言 PHP 、关系型数据库 MySQL 、Web 服务语言 Java 。好处在于招聘成本、沟通学习成本会很低。大部分问题已经被很多人解决过很多次。很容易找到相关的技术文档。这样带来的是开发效率的提升。

小众技术不等于新技术

很多人会混淆小众技术和新技术。虽然有时候他们之间交叉很多。

小众技术指那些? 小众技术一般针对特定领域问题设计。比如 Erlang 针对软实时控制系统设计;Rails 针对快速 MVC Restful 互联网应用开发而设计;Grunt、Gulp 针对前端自动化设计。

成熟的小众技术

有一些小众技术及时诞生了很多年,由于适用性比较窄,也不广为人知。但是这不意味着这种技术不成熟。Erlang、Lisp、Lua、Node.js 都是成熟的小众技术。成熟的小众技术解决特定领域问题非常高效。

适度尝试新技术

一般情况,新技术都是在借鉴了所有已有技术基础上的重新设计和创新。一部分新技术会成为未来的主流技术,虽然这个过程比较缓慢,需要很多推广才能吸引很多开发者使用。并且技术本身由于越来越多的人使用,不断自我迭代,修正优化。所以,需要根据自我情况思考是不是有更好的新技术解决现有问题,提升开发和运行效率。

避免重造轮子

对于工程师或者手工艺人,创造东西给他们带来成就感、或者会对自己的业绩、绩效有影响。所以,很多新出技术并没有明显的创新和优势。只是把轮子重新制造一遍。这常发生在资源充足、人员冗余的大公司。试问哪个大互联网公司没有几套 RPC 框架?

团队大小对技术选型的影响

1 人团队、10 人以下团队、10 人以上团队对于技术选型有很大区别。

  • 1 人团队几乎不需要考虑技术选型的问题,选择喜欢的即可。
  • 10 人以下团队则可以更多尝试新技术和小众技术,因为招聘培训成本还不会很高。
  • 10 人以上团队则需要更多考虑团队扩展成本,而不单单是开发效率和执行效率问题、尽量少引入不成熟的新技术。

在大公司的技术选型和创新过程类似,可以是自上而下,也可以是自下而上。

团队成员经验对技术选型的影响

团队技术选型自然会选择团队所有成员熟悉的技术,否则会出现开发节奏问题。比如所有人熟悉 Java,小部分人熟悉 Scala 的情况下,需要忍痛割爱选择即使从其他层面考虑更适合的 Scala 语言。一般情况下,某项技术至少需要 1 – 2 位高级工程师解答遇到的所有相关问题,这位工程师需要从源码级别理解这项技术。优先选择成熟技术。

技术帮派之正视技术的优点和缺点

技术爆炸和开发者社区的增长必然会导致一个问题,技术帮派。需要注意的是需要正视某项技术的优缺点和使用场景。尽量避免“技术帮派”对正确优化技术选型的影响。

没有银弹

没有任何一项技术可以适用在所有场景,所以不同场景下的技术没有可比性。没有银弹和最好的语言和框架。

这篇关于互联网公司与团队的技术选型 --新技术、成熟技术和小众技术的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/405935

相关文章

Java中的登录技术保姆级详细教程

《Java中的登录技术保姆级详细教程》:本文主要介绍Java中登录技术保姆级详细教程的相关资料,在Java中我们可以使用各种技术和框架来实现这些功能,文中通过代码介绍的非常详细,需要的朋友可以参考... 目录1.登录思路2.登录标记1.会话技术2.会话跟踪1.Cookie技术2.Session技术3.令牌技

Web技术与Nginx网站环境部署教程

《Web技术与Nginx网站环境部署教程》:本文主要介绍Web技术与Nginx网站环境部署教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、Web基础1.域名系统DNS2.Hosts文件3.DNS4.域名注册二.网页与html1.网页概述2.HTML概述3.

Java使用WebView实现桌面程序的技术指南

《Java使用WebView实现桌面程序的技术指南》在现代软件开发中,许多应用需要在桌面程序中嵌入Web页面,例如,你可能需要在Java桌面应用中嵌入一部分Web前端,或者加载一个HTML5界面以增强... 目录1、简述2、WebView 特点3、搭建 WebView 示例3.1 添加 JavaFX 依赖3

SpringBoot3实现Gzip压缩优化的技术指南

《SpringBoot3实现Gzip压缩优化的技术指南》随着Web应用的用户量和数据量增加,网络带宽和页面加载速度逐渐成为瓶颈,为了减少数据传输量,提高用户体验,我们可以使用Gzip压缩HTTP响应,... 目录1、简述2、配置2.1 添加依赖2.2 配置 Gzip 压缩3、服务端应用4、前端应用4.1 N

Java利用JSONPath操作JSON数据的技术指南

《Java利用JSONPath操作JSON数据的技术指南》JSONPath是一种强大的工具,用于查询和操作JSON数据,类似于SQL的语法,它为处理复杂的JSON数据结构提供了简单且高效... 目录1、简述2、什么是 jsONPath?3、Java 示例3.1 基本查询3.2 过滤查询3.3 递归搜索3.4

Python中随机休眠技术原理与应用详解

《Python中随机休眠技术原理与应用详解》在编程中,让程序暂停执行特定时间是常见需求,当需要引入不确定性时,随机休眠就成为关键技巧,下面我们就来看看Python中随机休眠技术的具体实现与应用吧... 目录引言一、实现原理与基础方法1.1 核心函数解析1.2 基础实现模板1.3 整数版实现二、典型应用场景2

java如何分布式锁实现和选型

《java如何分布式锁实现和选型》文章介绍了分布式锁的重要性以及在分布式系统中常见的问题和需求,它详细阐述了如何使用分布式锁来确保数据的一致性和系统的高可用性,文章还提供了基于数据库、Redis和Zo... 目录引言:分布式锁的重要性与分布式系统中的常见问题和需求分布式锁的重要性分布式系统中常见的问题和需求

【专题】2024飞行汽车技术全景报告合集PDF分享(附原数据表)

原文链接: https://tecdat.cn/?p=37628 6月16日,小鹏汇天旅航者X2在北京大兴国际机场临空经济区完成首飞,这也是小鹏汇天的产品在京津冀地区进行的首次飞行。小鹏汇天方面还表示,公司准备量产,并计划今年四季度开启预售小鹏汇天分体式飞行汽车,探索分体式飞行汽车城际通勤。阅读原文,获取专题报告合集全文,解锁文末271份飞行汽车相关行业研究报告。 据悉,业内人士对飞行汽车行业

金融业开源技术 术语

金融业开源技术  术语 1  范围 本文件界定了金融业开源技术的常用术语。 本文件适用于金融业中涉及开源技术的相关标准及规范性文件制定和信息沟通等活动。

AI(文生语音)-TTS 技术线路探索学习:从拼接式参数化方法到Tacotron端到端输出

AI(文生语音)-TTS 技术线路探索学习:从拼接式参数化方法到Tacotron端到端输出 在数字化时代,文本到语音(Text-to-Speech, TTS)技术已成为人机交互的关键桥梁,无论是为视障人士提供辅助阅读,还是为智能助手注入声音的灵魂,TTS 技术都扮演着至关重要的角色。从最初的拼接式方法到参数化技术,再到现今的深度学习解决方案,TTS 技术经历了一段长足的进步。这篇文章将带您穿越时