我带旅游ERP管理系统开发的经历
前言
不怎么会写博文的我也不知道怎么写,但是有冲动让我去记录下我做项目的经历。
项目背景
某旅行社需要一款内部业务管理系统,找了一家外包来开发但最终不是她们想要的,上线的时候很多问题,首先酒店和票务资源管理起来时麻烦,业务部价格库存维护麻烦,人性化操作方面不理想,同时新来的员工学习不容易上手、财务报表有时正确,有时不正确,让做账的同事苦不堪言,反正就是种种原因,已经严重影响到他们旅行社的业务上升。
项目开始
我们进去调研的时候发现,业务功能挺多,逻辑也不简单,要做好这些功能需求、非得半年方可完成,当时的人力评估3个人左右(老板已说过他的预算)。旧代码review后台底层用的三层架构,模型与字段之间用key/value去对应(这里其实可以用映射和反射技术去做System.Reflection),如果新增了一个字段就需要在dal层加参数对应好第几个然后在赋值,跟数据库打交道的是ADO.NET,没有借用其他的ORM框架开发,扩展性差,前端用服务器控件,基本是面向sql编程,C#后端只是用于传递个参数到数据库然后处理数据,当然也不能说面向sql编程是错的,但是sql的发展没有C#后端的快,如果要切换个不同的数据库时那就麻烦大了,各有千秋,但是本人还是热衷于用C#的ORM技术去处理sql的问题,譬如 Dapper,EF优秀的框架,前端的话现在有比较流行的jquery+boostrap、vue-element、布局简单,数据后端传递好就完美数据呈现,想必大家也知道我后面的技术选型,肯定是jquery+boostrap来做前端,用dapper来处理数据持久化,redis来做缓存、mongodb存日志,消息队列也是用的redis、消息推送用园子里面开源的一个轮子用于后端与后端通信、后端与前端通信,框架了之后就开始写业务代码
码代码阶段
一开始就写代码(全栈)一个,写需求一个,测试一个、发现代码写不赢,需求沟通同事一沟通回来一看大功能,这边的功能还没有开发完成,又来了个新的功能需求,这时没有休息时间是肯定的,恨不得手头上的功能立马写完交互给业务员用,一个功能的开发从需求沟通到页面设计,在到功能的开发整体要开发一个功能大概一天,复杂的功能有的时候要5到7天,功能做完之后不是立马就能用,而且做完之后找干系人看的时候又有各种想法,还好拒绝了一些,不然一个功能可以让你开发半个月,有种感觉就是在楼上说 你们立字据我才肯下来的场景当然没有这么夸张,开发大概耗时半年了第一个版本出来了,印象最深的是在2019-4-8号发版的,当时发布之后感觉世界都清净了,要好好休息下,但是事实并非如此,业务同事在用的过程中发现之前的需求有点不妥,技术部同事来稍微在改下,好的,您要改哪里 ,说完之后才发现掉坑了,变化好大,表结构要变动,计算的字段也要变化,一时我忍住了,好改,于是动手变动,一不小心一周过去了,于是叫业务同事来开发电脑看下结果,好的话在测试下看有没有其他的幺蛾子,测试通过就发版,业务员一看,这回对了,就是这样子,这时内心才舒服了很多。技术部在一个传统的旅行社行业,没点本事带队搞开发项目估计很难推进,因为各种原因会让你捉襟见肘,譬如业务同事对系统需要的东西有时表达不清,或者有时只是为了解决自己这块领域而没有站在公司的整个业务高度去思考,导致设计出来的功能就会有缺陷,对公司整个业务发展来说老板是最熟悉但是老板最忙真正有时间去理会系统的事情时间真是少之又少,还好本人在做旅行社行业软件系统也帮助过几家做系统有过这样的经验才得以Hold住需求,经过一年多来代码基本跑起来了公司现在用这套系统也节省了不少人力的投入,节约了公司内部开支,每一个业务部同事产出也开始直线上升,这就是技术与资源的结合产生的1+1大于2的效果,我为这个项目成功的开发到投入使用的整个过程都感到成长无所不在而感到自豪,开发的阶段在不断的总结,如何提高开发效率,如何才能很好的高效的按时完成任务,鄙人还在总结,这次的总结是开发一定要有很好的后端和前端的开发轮子,越多越好,不会遇到一个特殊的功能重新去构建组件,要知道构建一个组件的时间是很难评估的,简单点的话估计也得要2到3天,复杂点的估计要半个月甚至更长,我们搞开发的在开发时遇到好的轮子,可以封装到自己的项目中重复利用,让开发者专注于业务场景的开发,提高项目的交货能力这是很有必要的
总结:
当我们接到一个需求的时候不着急去写代码,搭框架,而是要思考需求本身,如果需求不是非常复杂的话,不需要搭建一个很庞大的框架来开发,很浪费开发时间,项目的交货时间对于不懂软件开发的甲方爸爸来说,我只关注有没有按照你自己规定的时间来完成任务,如果有拖延的情况在甲方来说影响就会不好,甚至会对你的技术能力产生怀疑,做项目一定要做好需求分解,了解客户的问题,从而通过我们的技术去帮助企业提高内部管理的效率
我带旅游ERP管理系统开发的经历的更多相关文章
- Java,面试题,简历,Linux,大数据,常用开发工具类,API文档,电子书,各种思维导图资源,百度网盘资源,BBS论坛系统 ERP管理系统 OA办公自动化管理系统 车辆管理系统 各种后台管理系统
Java,面试题,简历,Linux,大数据,常用开发工具类,API文档,电子书,各种思维导图资源,百度网盘资源BBS论坛系统 ERP管理系统 OA办公自动化管理系统 车辆管理系统 家庭理财系统 各种后 ...
- 2015腾讯暑期实习生 Web前端开发 面试经历
[2015腾讯暑期实习生 Web前端开发 面试经历] 好吧,首先声明,我被刷了,应该是跪在二面 微信查到的面试状态一直呈现复试中 .. 整整四天了.. 看来是没希望了 不过也是一次经历,记录一下还是可 ...
- 程序员带你学习安卓开发-XML文档的创建与解析
这是程序员带你学习安卓开发系列教程.本文章致力于面向对象程序员可以快速学习开发安卓技术. 上篇文章:程序员带你学习安卓开发系列-Android文件存储 因知识连贯性推荐关注头条号:做全栈攻城狮.从头开 ...
- 5分钟快速部署PESCMS TEAM 团队任务管理系统开发版
所在的公司也经历过小团队的发展,为了高效率,通常都是面对面交流,很多时候事情谈论过后不久就已经淡忘了.而且工作任务不能全局观察,成员之间基本上都要主动去询问,效率反而低下.所以今天就介绍一款中小团队的 ...
- 仓库ERP管理系统(springboot)
查看更多系统:系统大全,课程设计.毕业设计,请点击这里查看 01 系统概述 基于SpringBoot框架和SaaS模式,非常好用的ERP软件,目前专注进销存+财务功能.主要模块有零售管理.采购管理.销 ...
- [入门级] 基于 visual studio 2010 mvc4 的图书管理系统开发初步 (二)
[入门级] 基于 visual studio 2010 mvc4 的图书管理系统开发初步 (二) Date 周六 10 一月 2015 By 钟谢伟 Category website develop ...
- 带你使用h5开发移动端小游戏
带你使用h5开发移动端小游戏 在JY1.x版本中,你要做一个pc端的小游戏,会非常的简单,包括说,你要在低版本的浏览器IE8中,也不会出现明显的卡顿现象,你只需要关心游戏的逻辑就行了,比较适合逻辑较为 ...
- 简易版CMS后台管理系统开发流程
目录 简易版CMS后台管理系统开发流程 MVC5+EF6 简易版CMS(非接口) 第一章:新建项目 MVC5+EF6 简易版CMS(非接口) 第二章:建数据模型 MVC5+EF6 简易版CMS(非接口 ...
- 程序员带你学习安卓开发系列-Android文件存储
这是程序员带你学习安卓开发系列教程.本文章致力于面向对象程序员可以快速学习开发安卓技术. 上篇文章:.Net程序员快速学习安卓开发-布局和点击事件的写法 主要讲解了布局和点击事件的写法. 上篇文章补充 ...
随机推荐
- Java--垃圾回收【转载】
一:垃圾回收机制的意义 java 语言中一个显著的特点就是引入了java回收机制,可以有效的防止内存泄露,有效的使用空闲的内存. 内存泄露:指该内存空间使用完毕后未回收,在不涉及复杂数据结构的一般情况 ...
- Ubuntu18.04中安装Python3.7教程
Ubuntu18.04中安装Python3.7教程 链接https://blog.csdn.net/weixin_42056625/article/details/82970358
- PHP内存管理-zendMM
ZendMM 是zend memory manager zendMM可以分为三层: 1.存储层 维护者不同体量内存的hash表,已提供堆层使用,负责向os申请和释放内存 2.堆层 PHP内存管理的核心 ...
- fiddler笔记:主菜单栏
主菜单可以启动几乎所有的fiddler功能.菜单系统通过FiddlerScript或Extensions进行扩展和增强. 1.File菜单 File菜单主要是用来启动和停止web流量的捕获,也可以加载 ...
- Ubuntu12.04 root登陆方法【保证有效】
su -取得root权限后,gedit /etc/lightdm/lightdm.conf ,里面的内容全部改为 [SeatDefaults] greeter-session=unity-greete ...
- OpenCl入门——实现简单卷积
现在的卷积实现无非是那么几种:直接卷积.im2col+gemm.局部gemm.wingrod.FFT.如果直接卷积的话,其实kernel函数是比较好实现.以下代码参考至<OpenCL Progr ...
- 命令行工具--LLDP
目录 命令行工具--LLDP 一.场景引入 二.什么是LLDP? 三.在CentOS上安装LLDP 四.命令详解 五.脚本 命令行工具--LLDP 一.场景引入 有的时候,我们需要知道服务器上联交换机 ...
- 前端基础(十):Bootstrap Switch 选择框开关控制
简介 Bootstrap Switch是一款轻量级插件,可以给选择框设置类似于开关的样式 它是依赖于Bootstrap的一款插件 下载 下载地址 在线引用 导入 因为它是依赖于Bootstrap的一款 ...
- DATASNAP双缓存下载文件
原文链接:http://www.cnblogs.com/hnxxcxg/archive/2012/12/29/2839358.html procedure TFrmMain.btnUpdateFile ...
- eclipse安装Bug检查工具
第一步:下载spotbugs工具 打开eclipse>Help>Eclipse Matketplace 打开 Eclipse Marketplace 搜索 spotbugs,点击Insta ...