ITPub博客

首页 > 数据库 > 数据库开发技术 > 程序员到底要不要在写代码前先设计技术方案

程序员到底要不要在写代码前先设计技术方案

原创 数据库开发技术 作者:灸哥漫谈 时间:2024-03-15 17:16:37 0 删除 编辑

点击上方蓝字,关注灸哥聊程序员职场



程序员,你必须写技术方案!


先来回答标题中的问题:程序员到底要不要在写代码前先设计技术方案?答案是非常肯定的:肯定必须需要!请在写代码前一定设计技术方案!!!

技术方案的设计在软件开发过程中起着至关重要的作用,好的技术方案为程序员提供了一个清晰的技术实现路线图,可以指导他们在编写代码之前更好地思考如何实现项目的功能和需求。本文中,灸哥一起和大家聊聊关于程序员的技术方案相关的内容。欢迎大家留言交流!

我们先一起来谈谈究竟什么是技术方案?

技术方案是指在软件开发过程中,根据项目的需求和目标,程序员在编写代码之前制定的技术解决/实现方案、详细计划。它可以包括项目的架构设计、模块划分、数据结构设计、算法选择、技术选型等多方面的内容,它的目的是要确保软件开发过过程的顺利进行并最终实现项目目标。

一般,一份比较详细完整的技术方案包括以下部分:

  • 需求分析:对项目需求要进行详细分析,明确好项目目标、功能模块期望、性能指标等方面内容

  • 技术选型:根据项目需求和现有的技术栈体系,选择合适的技术栈和开发工具

  • 系统架构:设计系统的整体架构,包括模块划分、数据流、接口定义等部分

  • 数据库设计:根据业务需求,设计合理的数据库表结构和存储方案

  • 算法与优化:针对项目中的关键技术问题,制定算法策略和优化方案

  • 安全性设计:确保项目在安全性方面的需求,包括数据加密、访问控制策略等

  • 测试与运维:制定测试策略和运维方案,确保项目的稳定运行

  • 技术风险与应对措施:识别项目中的技术风险,制定响应的应对措施

  • 任务拆解以及具体的执行计划

在现在这个超级敏捷的时代,没有时间做出一份特别完整的技术方案的时候,至少在编写代码之前要有以下内容:

  • 有涉及技术组件选型的,需要有完整详细的选型结果分析报告

  • 有涉及到架构改动的,需要有完整详细的架构改进方案

  • 有涉及到数据库表变更的,需要有完整详细的数据库表结构设计方案

  • 有涉及到核心流程的,需要有完整详细的流程图设计方案

  • 有涉及到特殊的测试和运维策略的,需要有完整详细的测试策略和运维方案

  • 技术风险与应对措施,必须有

  • 任务拆解以及具体的执行计划

此外,设计完技术方案之后,要把技术方案整理成结构化的文化,同时要在团队内部进行详细评审哦!同时,技术方案也是测试制定测试用例的依据,而且还是进行 CR 的依据哦!


上面就是从我的从业经历以及对程序员的要求上,总结出一份详细的技术方案应该包括的内容。作为程序员的你,写过技术方案吗?你如果写过技术方案,你的技术方案内容是这些我所说的内容吗?如果有不一样的,欢迎留言交流!

接下来,我们一起谈谈在程序员的工作中为什么一定需要做技术方案的设计呢?

首先,做完整详细的技术方案,首要目标就是为了确保我们要做的任务或者需求的目标是明确的,设计技术方案是为了帮助技术团队明确项目的目标和需求,在评审的过程中,基于技术方案这个载体同时拉齐产品、测试、运维等相关干系统的认知,避免在开发过程中出现方向不明、功能不清晰的情况出现。

其次,有完整详细的技术方案,有对开发效率有极大的辅助提升作用的。你可以想想,现在很多程序员,拿到需求就按照产品需求 PRD 开始写面条代码,写着写着就开始出事,开始返工,开始重写,先别说效率了,你的质量都不行,你的代码不出 BUG 谁的代码出 BUG 呢?所以说,通用提前规划和设计技术方案,是可以避免在编码过程中的频繁修改和调整代码,从而节省开发时间和成本。

再次,有了完整详细的技术方案,并且多角色评审通过,是可以帮助发现和解决潜在的难题和风险的,这也是为了减少后期开发过程中出现的问题和 BUG。

最后,在技术方案中要明确每一个成员的工作任务和计划,通过技术方案也有利于团队成员之间的协作配合,提高团队的集体工作效率和项目的整体质量。

那程序员们,看到技术方案的这么多好处,你觉得技术方案有没有必要呢?

上面和大家一起谈了什么是技术方案以及一定要做技术方案的原因,那这部分我们一起谈谈没有技术方案的危害吧!看看作为程序员的你,是不是已经深受其害或者是深受其多害了。

首先,没有技术方案的项目或者需求任务是很容易出现方向不明确、目标不清晰、需求理解不一致等情况的,这种情况一旦出现,就会导致开发过程中频繁变更需求,增加项目开发周期和成本,我就这么说吧,如果你的产品经理做的产品方案是有问题的,你也没有对应对技术方案,更没有发现,当前上线了,这个破产品根本用不起来,产品推翻方案重新再来一遍,你啥感觉?

其次,没有技术方案的辅助支持,程序员是很容易在编码过程中遇到困难和障碍的,是无法很好地完成任务的,他的开发效率能高才怪呢。我就说一个简单的,如果你没有一个核心流程的流程图,你就凭着理解开始敲代码,你的 if/else 不漏点边界场景就奇了怪了。

再次,没有技术方案的项目或者需求任务是很有可能存在很大的技术风险隐患的,这些风险隐患可能会导致你的无法按时保证质量交付,也有可能还没有上线就出现严重的质量问题,更有可能上线发现不了没过多久很大的一个坑就出来了,扑通掉下去可能都没有声音哦,小心,现在这个行业,程序员容易背锅的!

最后,没有技术方案的团队协作成员之间也是很容易产生沟通和合作上的障碍,影响团队的协作效率和项目的进度。我曾经带领过这样一个团队,这个团队中有一位小哥俨然一种“老子天下无敌”(其实能力一般而且看不到成长)、“满嘴业务驱动”(我可能觉得他可能都不清楚什么叫真正的业务),在需求评审的时候自以为理解透彻,和他要进行接口和数据交互的同学被他一通说,他就按照自己的理解去写代码了,结果发现怎么交互出问题了呢?上来先教育别人一顿,最后发现自己理解错了。交互最基本的协议标准、接口格式不事先约定能不出问题吗?我不觉得这是沟通问题,这是对程序员的基本做事方式和心态浮躁的问题,难救除非自救。作为程序员的你是这样的人吗?你身边有这样的人吗?


技术方案设计是软件开发过程中不可或缺的一环,它为项目的顺利进行提供了重要的保障。程序员应该重视技术方案设计,充分理解其重要性,并采取有效的方法和技巧进行方案制定。只有做好了技术方案设计,才能更好地实现项目目标,提高开发效率,降低开发风险,实现团队协作的最大化。




原文作者:灸哥漫谈;如有侵权,请联系管理员删除。

请登录后发表评论 登录
全部评论

注册时间:2023-11-26

  • 博文量
    368
  • 访问量
    173406