在软件行业内,有一句关于技术实用性的名言:“过早优化是万恶之源。”
但是,在一些小公司中,技术过早优化的现象又是很常见的。当小公司为了追求技术的先进性和高效性,往往会采用一些不适合自己的技术方案,导致开发成本增加,维护难度提高,甚至影响业务的稳定性和发展。
公司在做技术选型和决策时,更需要足够的理性和慎重思考。
- 直接上容器k8s
- 多种开发语言
- 自己造基础设施的轮子
直接上容器k8s
容器和k8s是目前非常流行的技术,可以提供高度的可扩展性,可移植性和自动化。然而,对于一些小公司来说,直接上容器k8s可能并不是一个明智的选择。因为容器和k8s的部署和管理需要一定的专业知识和经验,如果没有足够的人力和资源来支持,可能会带来很多问题,比如:
- 容器镜像的制作和维护;
- 容器网络的配置和安全;
- k8s集群的搭建和监控;
- k8s资源的调度和优化;
- k8s服务的发现和负载均衡;
多种开发语言
在软件开发中,有很多种不同的编程语言可以选择,每种语言都有自己的优势和特点。有些小公司为了追求技术的多样性和创新性,会使用多种开发语言来开发不同的模块或服务。这样做可能会带来一些好处,比如:
- 提高开发效率和质量;
- 满足不同场景和需求;
- 增加团队的学习和交流;
- 增加沟通和协作的难度;
- 增加代码库和依赖的管理;
- 增加测试和部署的复杂度;
- 增加维护和更新的成本;
对于一些小公司来说,可能更适合使用一种或少数几种开发语言来保持技术栈的统一和简洁,这样可以减少沟通成本,提高协作效率,降低技术风险。
自己造基础设施的轮子
- 自己开发或修改数据库引擎;
- 自己实现或封装缓存服务;
- 自己设计或改造消息队列系统;
- 自己搭建或优化日志平台;
这样做可能会带来一些好处,比如:
- 提高系统的性能和稳定性;
- 满足特定的功能和需求;
- 增加系统的可控性和安全性;
- 增加研发和测试的难度;
- 增加运维和监控的压力;
- 增加兼容性和可移植性的问题;
- 增加技术债务和迭代成本;
对于一些小公司来说,可能更适合使用一些成熟的开源或商业产品来作为基础设施,这样可以节省时间和精力,利用社区或厂商提供的支持和服务,避免重复造轮子。
总结
虽然技术过早优化和先进性,可能会带来一些短期的收益或满足一些个人或团队的兴趣或需求,但是从长远来看,技术过早优化可能会给小公司带来很多问题和风险。
正所谓,学霸两支笔,差生文具多。用最简单的工具,是可以解决掉大部分的问题的。
技术只是解决问题的工具,技术的先进性和自主型不是业务类公司初期的关键。