项目开发设计理念

# 项目开发设计理念 Author wangjun,2019年终技术总结,给自己一个交代,编者自行理解,非专业 ## 公共模块的基本动作 - 【业务运算】:对请求的数据进行基础的清算和结算,包括校验 - 【数据抽取】:生成抽取动作和语句从DB取值,包括异常 - 【接口返回】:生成固定好用的返回格式,和状态判定方便,前端使用 - 【效果展示】:由前端生成特定效果 建议1:优秀的功能的开发者应该止步于前3步,第四步只写Demo版仅供参考 建议2:在前3步必须预留待实现的[方法]和[接口],虽然会降低效率,但可应对自定义拓展 ## 优秀的模块的特性 - 【热插拔性】:模块可以被轻松的[引用]或[移除],而不需其他额外的[引用]或[配置] - 【更新可拓】:功能业务不能听别人的写死,必须预留以后的[功能更新]的可能性和空间 - 【向下兼容】:新更新的功能必须[向下兼容],以前引用者可以继续使用旧功能,新的引用者稍微的配置不同可以使用新功能 - 【预留接口】:依据实际业务不同可以[自定义拓展],基本动作的前三步都可以拓展 ## 想要实现的热插拔JAVA模块 - 【文件服务器】:代理文件上传的功能,他人业务只用调用官方方法维护文件表ID,考虑[大文件]和[文件]预览功能,图片OK,OFFICE预览 ★★★★☆ - 【日志服务器】:[私用,多皮肤],利用云DB或者是其他DB技术,加密存储,支持H5效果阅读★★★★☆ - 【消息服务器】:免费的短信,邮件服务器,并考虑[群发],[定时发送]预警等功能,包括推定[TD]★★★★☆ - 【流媒体服务器】:抗[压力]的视频播放服务器,支持[点播],能集成到富文本中★★☆☆☆ - 【在线文档服务器】:MD编写快速生成在线,SVN存储,多人编辑,快速形成交付WORD,PDF★★★★★ - 【云配置服务器】:按照母版生成配置,配置存取简单,支持数值和字符判定,没想好★★★☆☆ - 【JEECMS发布平台】:[私用]找官网的非篡改的,设计好用模版和UI,自己设计★★★★☆ - 【统一身份认证平台】:[代码优化]功能更强的认证平台,看不懂代码★☆☆☆☆ - 【自动写代码的模版】:[私用]快速增删改查代码页面代码模版★☆☆☆☆ - 【好用的Excel导出控件】:[私用]快速开发效果好用★★★★☆ - 【好用的Excel导入控件】:加校验接口,几乎,ZAW版部分可[私用]☆☆☆☆☆[还行] - 【自定义工作流模块】:公用,基本上不可能,还想随时可改已部署的[惹不起中国人]☆☆☆☆☆☆☆[不可能] - 【优质的自定义表单模块】:解决字典项,外键,联动性的,字段类型,可编辑问题☆☆☆☆☆☆☆[不可能] - 【数据交换平台】:JAVA在线UI的技术性平台基本上不可能☆☆☆☆☆☆☆[不可能] ## 想要实现的热插拔JS控件 - 【优质选择器控件】:页面注入SQL配置,单选返回更多数据,EasyUI做的选择器无法大数据★★★★☆ - 【系统帮助控件】:如同JEECMS单页的[抽取原理],凭借KEY获得帮助,帮助支持富文本和MD2种模式★★★★☆ - 【优质富文本控件】:优质好用的[轻量级,好拓展]富文本控件,支持拓展,平台兼容★★☆☆☆ - 【通用弹出层】:我已经找到Layer已经很好除了对苹果浏览器的部分不支持★★★★★ - 【通用JS核心控制】:Ajax全局配置,Ajax错误类配置,对票据失效的自动跳转,RestFul风提交的[遮罩]控制,对移动端的识别,获取项目地址,弹出层的大小过滤器★★★★★ - 【font-awesome图标库选择器】:选择图标就是这么简单,复制粘贴系统★★★★★ - 【背景色选择器】:选择背景就是这么简单,复制粘贴系统★★★★★ ## 其他思考 - 写PY脚本自己抓取网站资源 - 代码规范和实际思想学习 - 数据和逻辑分离,表格驱动法 - 平台已有的问题下手,皮肤 - JS功能集合的复用只能通过JS构造对象中封装函数,写起来麻烦,例如文件上传 - EasyUi本身有部分BUG和局限性,TreeTable先天对大数据不好用和解析效率BUG,combotree的ids解析很慢 - EasyUi做选择器无法大数据 - 前后端分离,方便控件变多,安全性下降 - Jeecms很强大,但使用门槛很高,需要专业学习总结 - 写代码一定要考虑抗压性变更(前后端不要写死),黑哨功能(平均结果不是最终结果,实际A说了算),出BUG逻辑(做完就不留痕迹撤回,修改到满意为止),注意引用模式和复制模式(很不好写) - 多个Tab的保存模式,1全局一个DIV一次性保存,写简单,单Tab抽取难,列表数据必须先保存1此2多个Ifream,可单独用,内嵌样式控制不了 - 排序功能一律用排序值(Jeecms风格),不要写置顶功能,追加微调功能,菜单交换位置(使用换排序,最好不要开发这样功能,不好做) - 不要向基础项目添加功能,加入前必须考虑是否真的需要和必须是热插拔和向下兼容,防止系统越来越臃肿 - MyBatis复杂分页BUG,版本4的增量保存机制不错,jdbcUtil.getPage仅仅无参分页是对的 - ## 存储思想 浏览器存储 localStorage 浏览器存储 sessionStorage 浏览器存储 cookie 项目配置文件存储 .yml .properties 数据库存储 db ## 前端的开发思想 1 方法归方法,调用归调用,低耦合便于拆解 2 功能,特效使用2次以上,建议JS多一个方法封装,方便一次性修改全局生效 3 JS和CSS一个文件封装,注意方法名和CSS名的全局冲突,形成热插拔 4 全局功能的自定义特效,单独维护效果差(Pass) 5 表格驱动,数据和逻辑分离 ## 优秀的开发的待遇 1 代码写的好,效率高 == 高工作量又不得好处 2 代码有注释,思路清晰 == 代码技术含量低,人员可替代 3 代码写的水,逻辑差 == 风风火火改BUG,解决线上重大问题,公司核心人才 ## 公司优点 -- 工作环境,人文环境舒适 -- 地点近,后门划水,玩耍或游戏 -- 有自己的显示器 -- 可以穿休闲鞋 -- 喜欢在公司用雷神编辑我的文档