esri开发大赛项目已经完结,每一次项目的完成,都应该有一次总结,这也一向是我个人的习惯。

对于这次参加比赛的作品开发过程,其实这里我也不确定这能否真正称得上是一个项目,毕竟这其中存在着很多问题以及极其不规范的地方。但在这里我姑且将其称为一个项目吧,只是他可能不完整罢。现在已经大四,面临毕业、择业、就业或者其他的选择,在学校的日子也已经不多了,或许这也是大学期间做的最后一个项目了,严格意义来说应该是在大学最后期间做的最为完整的一个项目了,每一次的实战历练,对自己都是一次很好地提升,在项目开发过程中所遇到的问题更是值得去进行总结和反思,这才是项目实战的意义所在。
三月中旬,四个人的团队组建起来,算是真正开始了开发大赛。但一切都是未知的,很多东西都得打上一个问题。
第一个问题便是选主题的问题。按照软件项目开发流程来说,便是需求分析的问题。选择什么主题内容? 选择什么何种开发? B/S? C/S? 这所有的问题都得解决。好在人多,这个想一个,那个再想个,主题算是确定下来,也没有去仔细地去考虑到选择这个主题后面要面临的东西,更多地去考虑这个主题是否够新颖,觉得很新颖,觉得没见过,好,ok就是这个了!。_  。这个主题在B/S(作品是在B/S下)的开发下是否够有优势?选择这个主题是否具有很好的功能扩展性?按照我们自己现有的想法搞下去是否真的可行?我么搞这个主题在数据收集上是否是存在很大的难度?。。。这些问题,在讨论主题的时候似乎都是没有涉及,或是设计的很少,现在想来,的确觉得当时的我们无知的有点过了。好在人多胆大,这个新颖,这个别人没搞过,我们就搞这个吧,主题这样便是定下来了——“基于GIS的中国近代历史名人事件年谱”。需求分析是一个搞清楚接下来应该做什么的过程,而在整个开发的开始,却将其忽略地那么彻底,这算是项目开发中一个致命错误。需求的不明确,将直接导致后面整个系统设计阶段的全面崩盘。
系统设计怎么搞?数据库该怎么设计,一拖再拖,大家都不知道究竟该怎么搞下去。在这个地方,犯了一个错误——“数据库的设计究竟是应该围绕功能来设计,还是功能应该围绕着现有的数据以及数据库来来设计?”。“数据库与功能谁应该是主导”这个问题其实我一直在思考,
如果把数据库给改了,那之前想的功能又怎么办,功能又实现不了,如果按照功能来,数据库的设计模式好像的得改,怎么办?后来才搞明白数据库与功能之间的关系其实怎么想都应该相互依赖的关系,其实不存在什么主导关系,但如果非要哪个才是主导地位的话,我想是数据。越到后面的开发过程,越会明白这一点的,数据库对数据进行管理,只是作为一个数据的存储管理容器,功能的设计是为了将数据呈现或是在另一个方式下通过数据库的操作来对数据进行管理。所以数据库和功能之间其实不存在什么主导地位,而应该相互依赖的关系。他们两者相互联系的纽带这是围绕着数据来展开的。所以在这一点可见在第一阶段需求分析的重要了,不明确要做什么,不明确系统需要呈现些什么、需要些什么数据,这都直接导致系统设计阶段的数据库设计出现很大的困难。在这里我是搞懂了团队内专门负责数据的伙伴,为什么一直都在说不知道应该怎么找数据了。一切都得归咎于需求的分析不明确。另外,在系统的设计阶段,团队除了一直搞数据库、收集数据库之外,也没有将我们整个系统的各个功能给彻底地细化,尤其是对于做web开发来说,涉及到的东西很多,都没有一个明确的文档性规范,尤其对各个功能实现所要涉及到的大体内容都没一个集体性地讨论,直接导致了开发编码过程中各自为站,进度缓慢,代码风格各异。
编码阶段。对于这个方面,对于系统框架什么的我就不去讨论了,毕竟自己还是个coder ,只能对在这个阶段中自己出现的很多代码规范性上的东西多做下总结。在做这个开发之前,自己也已经自学过了一段时间的web了,但是,终究纸上得来终觉浅,绝知此事要躬行,缺乏实战是不可能把编程学好的,所以这应该是第一次完整的真正动手实战。webgis的开发不像常规的web开发,除了建立常规的属性关系数据库之外,还需要地理数据库,我主要负责属性数据库边的开发,另外一个同学负责与地理数据库的处理,与地图的交互操作。对于属性数据库的操作部分,我最开始采用的是Apache+PHP+mysql的结构,一开始也没什么问题,指导老师也没有说什么,就这样搞了近一个月,老师让数据库换成access,后台用Csharp,没办法,改吧,其实还是有那么一点抱怨,但是还是花了近一个周的时间给换了过来,好在花的时间不多。在后台结构上采用了常规的三层架构,其实后来我发现这对于我们这个小项目有点大材小用了,对数据的操作基本涉及到的是查询操作,多表查询操作有比较多,采用三层结构,又得一个一个去写实体,一层一层往前端传数据,也是将本简单的东西搞得有点过于复杂了。但经过这样一次的实际操作也让自己对三层结构有了更深刻认识,收获挺大。在编码上,代码命名的规范性特别重要,在项目的编码开始初期,还不会发觉,越到后面越会发现,命名的重要性,对于不同方法,都应该严格根据其实际用途来命名,不能随便给个命名,在某处调用了一个方法,到最后可能自己都得去看方法体本身才知道是干什么的,浪费时间,自己看着也不爽,最好是见名知意,比如GetdeventDescById(),见名知意,看着也舒服。另一个方面就是代码的组织上,十分凌乱,功能分析的不彻底,导致做到哪儿写到哪,写一个小功能模块的时候不能想到在另一个地方还会用到相同的代码,直到写到下一个模块,才发现好像是同上一个功能模块一样,赶快有掉头回去改代码,将前面已经写好的功能又拆开来封装写个方法,如此一来明显感觉到整个代码极其的糟糕凌乱,代码的强健性也极其的降低了。极其浪费时间,在系统设计阶段没有对功能进行仔细的剖析和规划,这些都会导致这一系列的问题。
最后就是系统整合版本控制问题,两个人或者几个人同时开发者,集成的时候,由于前端也是我在写,我倒是将我所有的东西都写在一块,前端后台都在一块,倒也不存在什么问题。我拿出第一个版本来让另外的人往上面集成他们写的工能的同时,我又发现我这边的前端界面要改一下,后台代码得改一下,改了之后,产生了一个新的版本,而别人又在之前的那个版本上集成了部分功能,没办法,又让在新的版本上集成,如此一来,又浪费了很多时间。版本控制做的也是不够好。
总结就到这里,仍然还有多需要提高的地方,仍然还有很多需要学习的地方。每一次的历练都是一次提升,每一次提升都来源于点滴的积累。

esri开发大赛项目总结相关推荐

  1. ESRI2007应用开发大赛总结

    我学习编程特别是Web开发是由于一次很偶然的机缘. 因为大一大二是地理学的基础课程,课上老师光是讲一些很基本的概念性的内容.而我高中是学理科的,喜欢物理和数学这一类逻辑思维强的东西.因此,一周下来,我 ...

  2. html5大赛是什么,IE9开发大赛为HTML5打了一针兴奋剂

    尽管HTML5是一种新的网页浏览标准,目前仅有苹果和微软的IE9支持该标准.客观地说,HTML5还是小众用户的标准.对于IE9来说,如果HTML5标准无法普及,IE9的硬件加速和性能优势就无从体现.加 ...

  3. 大赛征集令|首届“万应杯”低代码应用开发大赛报名开启啦!

    探索,寻觅低码边界. 创新,做成未曾有人做过的事. 首届"万应杯"低代码应用开发大赛 报名正式启动啦! 万元现金+奖杯/证书+项目转售收益 丰厚奖励,邀你来战! 大赛时间 低码掘金 ...

  4. 演绎另类黑客马拉松,机智云中国第二届智能硬件36小时开发大赛完美收官

    2016年12月18日由机智云联合华强北国际创客中心举办的第二届中国智能硬件36小时开发大赛决赛在深圳华强北国际创客中心圆满落幕,7支参赛团队在36小时内开发出不同的智能硬件产品,并进行现场技术交流和 ...

  5. 演绎另类黑客马拉松,机智云第二届中国智能硬件36小时开发大赛再现极速开发...

    互联网的蓬勃发展,以硬件开发为内容的创客马拉松在世界范围内兴起,吸引了众多硬件达人参与,智能手机的风行让源自编码潮流的黑客马拉松在全球风靡,堪称程序员的"美国偶像",一群软件开发高 ...

  6. 带来新奇应用的HI! MORFEI 智能家居开发大赛有科大讯飞的什么“秘密”?

    得益于智能家居产业链各方的推动,越来越多的普通消费者不仅认识了智能家居,也开始购买智能家居单品.但我们发现仅仅是单品难以进一步推动智能家居行业发展,因此场景化.生态化成了众多企业推动智能家居发展的新战 ...

  7. 微信小程序开发大赛经验总结

    微信小程序开发大赛经验总结 直接上项目什么的,太肤浅了. 看看可能可以避过很多的不用走的坑哦! 个人经历 最近也是在做微信小程序,玩一玩. 我的微信小程序创造路程可谓是艰辛.我从大一下就开始独自开发, ...

  8. 2019高校微信小程序开发大赛获奖作品——《brain头脑智序》

    目录 前言 交互流程说明图 我的任务 登录授权(login) 首页(tababr分析) 房间准备区(preparing) 便签编辑区 最终方案选择(房主权限) 会议报告页面(report) 前言 今年 ...

  9. 2020年高校微信小程序开发大赛全国三等奖——《重邮指路牌》

    文章目录 前言 证书 比赛流程回顾 开发小程序阶段 提交项目策划书阶段 线上答辩阶段 前言 今年疫情期间由于闲来无事就自学微信小程序并报名5月份的高校微信小程序开发大赛,一方面是锻炼开发能力,一方面是 ...

  10. @你:Next Idea微信小程序开发大赛启动

    灯可以怎么省油? 明朝人有钱到什么程度? 古人没有冰箱,怎么存放食物? 越王勾践剑为什么会出现在楚墓中? -- 对历史,我们总存在多多少少的疑问,<国家宝藏><上新了故宫>等节 ...

最新文章

  1. 大白菜软件常用功能介绍
  2. CSDN博客生成目录
  3. Linux服务器集群系统(二)--转
  4. S5PV210开发 -- 开发板配置
  5. win+apache实现ssl的证书认证
  6. iOS9系列专题三——应用瘦身
  7. 如何高效工作,享受品质生活?看看少数派的经验总结吧
  8. 会声会影编辑面板常用功能介绍
  9. 衔着树枝飞跃太平洋的傻鸟!(童话版)
  10. mysql 删除的sql语句怎么写_mysql教程删除数据sql语句用法
  11. centOS下mysql主从配置
  12. Ubuntu触摸屏校准
  13. 这一周CSDN人都看了些什么?(5.14-5.20)
  14. vmware虚拟机连接usb,显示:无法识别的usb设备,跟这台计算机连接的前一个usb设备工作不正常
  15. vue关闭eslint代码检测
  16. 我的世界服务器修改神兽几率,我的世界神奇宝贝mod神兽刷新率调整方法 神兽刷新率怎么增加...
  17. Excel插件获取单元格批注以及设置批注
  18. 苹果六电池_惊喜还是惊吓?苹果偷偷发布新产品MacBook Pro
  19. word、wps中使用vba删除所有表格指定列
  20. nuke导入序列的方式

热门文章

  1. codematic2连接mysql失败_动软代码生成器Codematic
  2. google翻译自动检测语言翻译成中文
  3. REST Assured 55 - JSON Schema Validation In Rest Assured
  4. [请您去投票]ESRI中国社区2008年度优秀会员评选
  5. NLPIR汉语分词系统
  6. Web前端性能优化优秀文章集锦
  7. 【原创】Web前端性能优化思维导图
  8. 小学生c语言编程入门教程_学生编程语言
  9. 无线呼叫服务器对码设置,无线鼠标对码模式怎么设置
  10. 深入浅出mysql pdf_深入浅出MySQLpdf_深入浅出MySQL下载_深入浅出MySQLmobi