应对需求变更的软件的设计——我的想法

简介:   每个人走过来的道路都是不一样的,经历过的项目都是不一样的。虽然我的大学是计算机专业,但是理论上的东西学的不多,也不系统。我主要是实践,就是写代码了。上学的时候很喜欢写代码,把自己的想法变成代码,运行出来,实现自己想要的效果。

 

  每个人走过来的道路都是不一样的,经历过的项目都是不一样的。虽然我的大学是计算机专业,但是理论上的东西学的不多,也不系统。我主要是实践,就是写代码了。上学的时候很喜欢写代码,把自己的想法变成代码,运行出来,实现自己想要的效果。我都是先写代码,做测试然后再去寻找理论依据。一直到现在我也是真么做的。

  上班之后,当老板、客户提出需求的时候,我首先要做到的就是用编码的方式来搞定,而不是理论的方式。毕竟老板、客户要的是能用的程序,而不是漂亮的理论。写不出来代码,实现不了老板、客户要的东西,饭碗不就没有了吗?

  所以我是实践派,就是写代码,用代码来实现。而我又是很懒的,不愿意写那么多的代码,尤其是重复的代码,不愿意做那么多的判断(比如权限判断),所以我就想办法去“偷懒”,于是写了一个大堆的自定义控件、类库,后来整理了一下,自然框架就诞生了。

  如何应对需求变更?首先需求变更也得有点普吧,如果客户想要把石头变成金子,那是传说中的点金术,去看yy小说吧。如果客户想把恐龙变成美女,那么去网聊吧。我们讨论问题要现实一点、实际一点,不要抬杠对吧。

 

  需求变化了,代码势必要进行一些改动,才能应对客户的需求。我所想要做到的就是“代码改动的尽量的少”——很原始的想法。

 

  当需求变化了,我只需要做最少的改动就可以满足客户的需求变化,甚至是不需要我去改代码就可以实现。

 

  我可没有去追求能够把石头变成黄金的方法,也没有去追求“银弹”,我的想法很简单、很原始,也很实际那就是 —— 少改点代码

 

  那么如何少改点代码呢?我的做法有两个:一是写自定义控件,把不变的代码都“提炼”到控件里面,在控件里实现,其他的地方调用一下就可以了。如果要修改的话,也是只需要改控件内部代码就可以了。这样就尽可能的少改代码。

 

  二是根据配置信息实现一些功能。ORM不是有一个XML吗?O和R是如何对应的就靠这个XML里的内容进行对应的,那么如果有什么变动,只需要改XML,而不需要改代码了。我的想法也是这样,只是没有用XML,也不仅仅局限于“持久化”。而是涉及整个项目,不过请注意,不包括业务逻辑。复杂的业务逻辑是不可能配置出来的,简单的业务逻辑倒是可以,不过这个“简单的业务逻辑”如何来定义或者是划分,那就是一个问题了。

 

  那么我能够配置出来什么?数据列表、分页、查询、表单。也就是简单的增删改查。现在的自然框架对于简单的增删改查都是可以配置出来的,就是说不用再写代码了。如果客户有什么这方面的需求,或者变更,那么我就不用再去改代码了!只需要改配置信息。

 

  当然了不可能所有的东西都能够配置出来,我也没有那个打算。我的目的只限于那些简单的、繁琐的、没什么难度的、但是又不得不写的那些烦人的代码。对于复杂的业务逻辑我是根本就没有打算用配置的方式来实现,我也不打算让自然框架去实现这些复杂的业务逻辑,那么怎么办呢?当然是“委托”出去了,交给能够实现的人去实现。做力所能及的事情,不要大包大揽。

 

  对了,最后还有一个权限,权限是很繁琐的,你永远都不知道客户的老板要如何去分配任务、分派人员,尤其是小公司。今天让甲去用A功能,明天就让甲去用B功能,而A功能又和B功能有交集,而且还有其他人也要可以用A功能。今天加一个部门,明天又合并两个部门。今天乙是C部门的经理,明天就是乙是D部门的经理,部门变了,那么做的事情是不是可以跟着部门变呢?如果是的话那还好办点,但是真的是这样的吗?

 

  有首歌唱得好哇,女孩的心思男孩你别猜。所以我想说,领导的分工不要猜。领导愿意让谁去做什么,那么就让他自己去设计权限吧。当然了,领导不必势必躬亲,可以让他的秘书去做,或者找一个“权限管理员”去做。总之,这是客户的事情,程序员把功能(权限管理做灵活)做好了,让客户(权限管理员)自己去玩吧。

 

 

 

 

 

 

 

 

 

 

相关文章
|
4天前
|
云安全 人工智能 自然语言处理
|
9天前
|
人工智能 Java API
Java 正式进入 Agentic AI 时代:Spring AI Alibaba 1.1 发布背后的技术演进
Spring AI Alibaba 1.1 正式发布,提供极简方式构建企业级AI智能体。基于ReactAgent核心,支持多智能体协作、上下文工程与生产级管控,助力开发者快速打造可靠、可扩展的智能应用。
839 24
|
3天前
|
机器学习/深度学习 人工智能 自然语言处理
Z-Image:冲击体验上限的下一代图像生成模型
通义实验室推出全新文生图模型Z-Image,以6B参数实现“快、稳、轻、准”突破。Turbo版本仅需8步亚秒级生成,支持16GB显存设备,中英双语理解与文字渲染尤为出色,真实感和美学表现媲美国际顶尖模型,被誉为“最值得关注的开源生图模型之一”。
409 3
|
12天前
|
数据采集 人工智能 自然语言处理
Meta SAM3开源:让图像分割,听懂你的话
Meta发布并开源SAM 3,首个支持文本或视觉提示的统一图像视频分割模型,可精准分割“红色条纹伞”等开放词汇概念,覆盖400万独特概念,性能达人类水平75%–80%,推动视觉分割新突破。
814 59
Meta SAM3开源:让图像分割,听懂你的话
|
1天前
|
弹性计算 网络协议 Linux
阿里云ECS云服务器详细新手购买流程步骤(图文详解)
新手怎么购买阿里云服务器ECS?今天出一期阿里云服务器ECS自定义购买流程:图文全解析,阿里云服务器ECS购买流程图解,自定义购买ECS的设置选项是最复杂的,以自定义购买云服务器ECS为例,包括付费类型、地域、网络及可用区、实例、镜像、系统盘、数据盘、公网IP、安全组及登录凭证详细设置教程:
169 114
|
5天前
|
机器学习/深度学习 人工智能 数据可视化
1秒生图!6B参数如何“以小博大”生成超真实图像?
Z-Image是6B参数开源图像生成模型,仅需16GB显存即可生成媲美百亿级模型的超真实图像,支持中英双语文本渲染与智能编辑,登顶Hugging Face趋势榜,首日下载破50万。
355 19
|
2天前
|
人工智能 安全 小程序
阿里云无影云电脑是什么?最新收费价格个人版、企业版和商业版无影云电脑收费价格
阿里云无影云电脑是运行在云端的虚拟电脑,分企业版和个人版。企业版适用于办公、设计等场景,4核8G配置低至199元/年;个人版适合游戏、娱乐,黄金款14元/月起。支持多端接入,灵活按需使用。
246 164