开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

12
返回列表 发新帖
楼主: wang8679506
收起左侧

[完成] 请教各位大佬开发软件时是如何规划软件布局、结构和

 关闭 [复制链接]
结帖率:88% (7/8)
 楼主| 发表于 2023-12-6 21:30:18 | 显示全部楼层   山东省青岛市
无风不起浪 发表于 2023-12-6 21:11
多写注释  比如为什么要这样写 都记下来 否则指不定过两个月就不知道了

是的是的,现在看去年写的软件再增加功能就要看半天才能回想起软件逻辑和流程,虽然我每一行代码都会注释,都已经达到这种地步了还是会乱,就像写小说一样不知道故事的大纲和时间线了,甚至每个人会什么武功都要回头再看一遍小说才能想起来
21.jpg
回复

使用道具 举报

签到天数: 11 天

发表于 2023-12-6 21:39:56 | 显示全部楼层   山东省滨州市
第一个,软件的设计方面不是仅限于易语言,各种语言约定俗成的东西会有区别,但大同小异。
一般来说一个稍微有点体量的软件会考虑体系结构设计、界面设计、数据设计三部分,当然也可以更加细分。
体系结构设计是按功能区分代码区域,按照功能将代码拆分成n个功能模块,规划各个模块之间的数据交互和调用关系。一般区分功能模块可以区分成业务功能模块、资源模块、权限控制模块、公用模块等等,这个要看软件具体需要什么,
公用模块一般是一些自己封装的公用的功能函数、一些通用的数据结构等等,
业务模块就是你软件具体的功能,这些功能也能进一步细分,比如简单的erp来说:订单模块、排产模块、销售模块等等。
资源模块就是你需要用到的图片资源等等,易语言中有资源表,但也会有一些需要动态加载的资源文件,看到时候软件的设计。
权限控制模块就是登录鉴权方面的逻辑
---
另外就是界面设计方面,布局方面具体的你可以参考web前端项目的布局方式,论坛里也有做了布局模块的[url=完美的窗口布局模块,动态布局控件 https://bbs.125.la/forum.php?mod=viewthread&tid=14707438 (出处: 精易论坛)]窗口布局模块[/url],窗口资源这些代码也可以放到前边所说的资源模块中,把界面代码和业务逻辑代码分离
---
再就是数据设计方面,如果你用到了数据库,你可能需要学习数据库设计的三大范式,了解数据库方面的东西

----
----
----
这些是设计软件大框架方面的东西,你另外也提到了有很多人的代码中用到了“全_”、“集_”等前缀,这些是因为易语言本身以面向过程为主,对全局变量、程序集变量、子程序变量不能有很好的区分,所以会有人有这种写法,这种写法并不强求,也基本上都是从其他语言过来用易语言带过来的习惯。易语言本身还有易语言生态没有针对这一块形成规范,主要看个人习惯。同样的,还有常量的命名尽量以全大写+下划线命名,这个也是从其他语言带过来的约定俗成的东西。
----
再就是代码一多了难以维护方面的,一个函数尽可能不要超过50行,这个主要也是看个人习惯,30、50、80、100的都有,超过了你心理预期的行数,你可能就得考虑拆分代码,这一块是考虑到代码的可读性和可维护性来说的,也是不强求,但毕竟一个函数几百行,看的都眼花。
---
另外就是代码方面的问题,不要嵌套多个循环,两层以上的循环就让代码难以阅读,尽可能的优化掉这种代码,如果是必要的,那就把多层循环拆分到不同的函数中。
总的来说,分层分模块设计,将不同的功能放到不同的模块,保持良好的代码规范,养成良好的命名风格,代码尽可能的精简、精炼,不要有过于冗长的代码段。
再简单点,借用面向对象的一句:高内聚、低耦合

评分

参与人数 1精币 +2 收起 理由
wang8679506 + 2 很赞同,谢谢!

查看全部评分

回复

使用道具 举报

结帖率:0% (0/1)
发表于 2023-12-6 22:32:16 | 显示全部楼层   新疆维吾尔自治区伊犁哈萨克自治州
思路: 先画原型图,在按照开发好一点
回复

使用道具 举报

结帖率:88% (7/8)

签到天数: 7 天

 楼主| 发表于 2023-12-6 22:46:33 | 显示全部楼层   山东省青岛市
禁回忆 发表于 2023-12-6 21:39
第一个,软件的设计方面不是仅限于易语言,各种语言约定俗成的东西会有区别,但大同小异。
一般来说一个稍 ...

十分感谢大佬这么耐心的解答,受益匪浅,像您说的分模块设计是在当前程序中添加程序集然后设置公开函数吗?如果我的功能需要频繁对表格或者控件操作的话时用虚拟控件吗?(就是在变量的类型里写对应的控件类型,不知道描述的对不对)
回复

使用道具 举报

结帖率:88% (7/8)

签到天数: 7 天

 楼主| 发表于 2023-12-6 22:48:18 | 显示全部楼层   山东省青岛市
17Nice 发表于 2023-12-6 22:32
思路: 先画原型图,在按照开发好一点

原型图是流程图吗还是思维导图?能给个例子或者给个关键字让我自己去百du吗?谢谢!
回复

使用道具 举报

结帖率:0% (0/1)
发表于 2023-12-6 23:21:43 | 显示全部楼层   新疆维吾尔自治区伊犁哈萨克自治州
wang8679506 发表于 2023-12-6 22:48
原型图是流程图吗还是思维导图?能给个例子或者给个关键字让我自己去百du吗?谢谢! ...

https://modao.cc/team/sploq1nu8vhq46bt
回复

使用道具 举报

结帖率:96% (44/46)

签到天数: 11 天

发表于 2023-12-7 09:13:28 | 显示全部楼层   广东省中山市
wang8679506 发表于 2023-12-6 21:03
你这做的很厉害了,我目前其实是软件结构不太熟悉,比如现在写的一个软件商品出库,单个出库很简单,客户 ...

了解一下递归,代码量就会少很多。
回复

使用道具 举报

签到天数: 4 天

发表于 2023-12-7 09:20:55 | 显示全部楼层   江苏省苏州市
wang8679506 发表于 2023-12-6 21:03
你这做的很厉害了,我目前其实是软件结构不太熟悉,比如现在写的一个软件商品出库,单个出库很简单,客户 ...

如果有需要可以找我,加我图上的扣,具体可以指导你怎么操作,共同学习,也可以接项目
回复

使用道具 举报

结帖率:70% (14/20)

签到天数: 17 天

发表于 2023-12-7 10:05:47 | 显示全部楼层   河南省郑州市
那就对了呀,多重构几次,就定下来了
回复

使用道具 举报

签到天数: 11 天

发表于 2023-12-8 00:40:08 | 显示全部楼层   山东省滨州市
wang8679506 发表于 2023-12-6 22:46
十分感谢大佬这么耐心的解答,受益匪浅,像您说的分模块设计是在当前程序中添加程序集然后设置公开函数吗 ...

QQ20231208-002945.png
易语言上你可以这么建文件夹来分模块,函数是否公开是你在调用交互上需要设计的。
另外你如果经常改动列表框一类的,可以直接用已经有人开发好的虚表模块,大概原理就是内存处理数据,列表框的hk滑到哪就渲染哪,而不是每次有数据更新就重新渲染。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
网站简介:精易论坛成立于2009年,是一个程序设计学习交流技术论坛,隶属于揭阳市揭东区精易科技有限公司所有。
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表