当前位置: 首页 > news >正文

中国建设工程造价网站仿站源码

中国建设工程造价网站,仿站源码,wordpress整站模板,小程序开发 深圳一、规格历史 最初的程序设计是直接面向机器的#xff0c;代码编写困难、可读性差#xff0c;当时对于软件开发的需求并不多。随着对于程序规模的需求#xff0c;出现了面向过程的设计思想#xff0c;开发者开始忽略底层实现#xff0c;进行程序设计。对于面向过程设计思想… 一、规格历史 最初的程序设计是直接面向机器的代码编写困难、可读性差当时对于软件开发的需求并不多。随着对于程序规模的需求出现了面向过程的设计思想开发者开始忽略底层实现进行程序设计。对于面向过程设计思想的变革goto语句成为讨论的热点。Dijkstra于1968年发表著名的《GOTO有害论》引起了广泛的关注结构化的设计思想也在此时应运而生。面向对象设计是一种软件设计方法是一种工程化规范。面向对象设计模式解决的是类与相互通信的对象之间的组织关系包括它们的角色、职责、协作方式几个方面。程序设计的模块化体现的更为明显各个部分更加独立相应地各个模块之间的交互也更加重要。 ​正因如此程序规格化设计越来越被人们重视对于代码编写的规范能够让程序变得更加易懂能让使用者轻松地学会如何正确使用这段程序。通过规格的抽象和总结使用者能够直接使用这段程序而免去浪费大量时间来看懂代码的痛苦过程代码的维护也变得更加简单。 二、规格bug 在这三次测试中我遇到的测试者没有对规格进行报错但这并不代表我的规格书写没有问题通过自己分析几次规格书写的bug得到下面的表格 规格bug 方法行数 effects不完整 5 effects内容为实现算法 11 requires逻辑错误 3 modifies不完整 3 分析首先缺少规格设计这样的错误只在第一次书写规格时出现由于对规格书写了解不够清晰常常出现应该写规格的地方没有写。我经常出现的错误是effects内容为实现算法由于常常使用自然语言写effects内容导致描述算法居多过度使用自然语言对于规格书写是没有帮助的。Requires逻辑错误的原因则是由于先写程序后写规格导致的规格并没能约束程序程序乱七八糟地修改了规格却不知怎么跟着修改。 三、一些不好的例子 由于自己随心所欲的书写出现了许多不好的问题大部分问题出现在后置条件中列举如下 1. public ReqHandler(Request request) {       /**        * REQUIRES:none;        * MODIFIES:this;        * EFFECTS:将请求加到队列中;       */       this.request request;       this.taxiSelection new Vector();    } 这是一开始写的规格对于request不为空没有约束而后置条件滥用自然语言 修改如下 /**        * REQUIRES:requires!null;        * MODIFIES:this;        * EFFECTS:(this.requestrequest)( this.taxiSelection.isEmpty());       */ 2. public boolean isCross(int x, int y){       /**        * REQUIRES        * MODIFIES: guigv.m.graph;        * EFFECTS:        * (x0||x79||y0||y79)\resultfalse;        * (x0guigv.m.graph[x*80y][(x-1)*80y]1)crosscross1;        * (x79guigv.m.graph[x*80y][(x1)*80y]1)crosscross1;        * (y0guigv.m.graph[x*80y][x*80y-1]1)crosscross1;        * (y79guigv.m.graph[x*80y][x*80y1]1)crosscross1;        * (cross3)\resulttrue;        * (cross3)\resultfalse;       */       if(x0||x79||y0||y79)         return false;       int cross 0;       if(x0guigv.m.graph[x*80y][(x-1)*80y]1)         cross;       if(x79guigv.m.graph[x*80y][(x1)*80y]1)         cross;       if(y0guigv.m.graph[x*80y][x*80y-1]1)         cross;       if(y79guigv.m.graph[x*80y][x*80y1]1)         cross;       if(cross3)         return true;       else return false;    } 描述内容是实现算法更改方式应该是从后置条件的含义入手如下 /**        * REQUIRESnone;        * MODIFIES: guigv.m.graph;        * EFFECTS:        * (x0guigv.m.graph[x*80y][(x-1)*80y]1)crosscross1;        * (x79guigv.m.graph[x*80y][(x1)*80y]1)crosscross1;        * (y0guigv.m.graph[x*80y][x*80y-1]1)crosscross1;        * (y79guigv.m.graph[x*80y][x*80y1]1)crosscross1;        * \resulttrue (cross3);        * \resultfalse (cross3)|| (x0||x79||y0||y79);       */ 3.部分方法需要抛出异常但是没有体现在规格中。 修改方法增加exceptional_behavior(InterruptedException); 4. /**             * REQUIRES: none;             * MODIFIES: SchedulerSys.taxis, result.txt;             * EFFECTS: 根据请求处理原则选派相应出租车响应并将响应结果写入文件同时更改参与抢单出租车的信用值;             * THREAD_REQUIRES:\locked(finalTaxi);          * THREAD_EFFECTS:\locked(),整个方法同步;            */ 没有写明具体修改内容 修改方式增加具体修改内容 5.经过研究其他同学的代码我发现自己代码有一个很大的问题就是有些方法写的太长了动辄好几百行像是面向过程代码不是一个很好的结构。这是由于书写时没有先写规格在最后写规格时无从下手。这种规格改正方式只有推翻重写。 四、聚焦关系 由于规格设计的问题导致代码功能不清晰并造成了至今无法查出的crash问题…… 作业次数 方法名 功能bug 规格bug   taxi 2 2 9 hanndleFileReq 1 1 10 getAailaleDir 1 1 11 getAailaleDir 1 1         五、心得体会  总的来说这三次作业主要折磨我的还是规格设计的问题。我无法做到先设计规格再根据规格写代码常常是写完代码了要花更多地时间去“编”规格。事实上我无法体会到书写规格的意义对于我这种底层群众来说可能书写规格和写注释没什么区别。而且对于规格的规范等等各人有各人的理解常常能在朋友圈看到大家被挂7,8个规格错误然后就是一场撕逼过去的三个星期虽然一定不是作业量最多的但一定是大家最生气、戾气最多的时间。说实话学到现在有些迷茫了我不清楚这门课到底要我们干什么无法理解它和数据结构、c语言的区别它对于我来说可能就只是一门很痛苦的课程而已吧。庆幸的是遇见的人都很不错然而身边见到的不良例子太多了……虽然说最可怕的出租车已经过去了但是我想每一次撕逼每一个挂在朋友圈的帖子都是一把刺在人心上的刀子伤虽然愈合了但疤痕永远都在。 转载于:https://www.cnblogs.com/lemonj1998/p/9107620.html
http://wiki.neutronadmin.com/news/366234/

相关文章:

  • 沈阳建设工程信息网站品牌营销传播
  • 东莞南城网站设计做网站公司如何选
  • 互联网行业建设网站天津建设工程新希望
  • 巴彦淖尔市网站制作网站建设公司专业开发北京网站
  • 做网站属于什么技术台州网站开发建设
  • 网站优化需要那些工具wordpress入门教程(视频)
  • 济南本地网站小型企业网站模板
  • 长沙多迪php网站开发培训学校网站建设与依法行政
  • 做一个付费网站多少钱网站开发后怎么转安卓app
  • 新闻资讯网站备案四川网站开发制作
  • 天津市建设工程造价管理协会网站创建网站用英语怎么说
  • 东营做网站m0536广州城市建设规划局网站
  • iis 网站访问权限设置免费开源网站建设系统
  • 网站正在建设中单页农业推广网站建设
  • 事业单位建立网站支付宝 外贸网站
  • 专业网站建设科技公司wordpress数据同步
  • 上海做网站比较好的关键词优化排名seo
  • 最专业的微网站开发工控机做网站服务器
  • 在别的公司做的网站人人装修网
  • 网站的备案号查询如何免费学校建网站
  • 邢台建设网站公司简阳网站建设
  • 做公司网站需要营业执照吗游戏类网站怎么做
  • 张家港网站建设免费建设网站设计页面
  • 电子商务网站设计与开发案例教程长沙专业网站建设公司哪家好
  • 定制网站建设开发维护怎么申请网站空间域名
  • 网站外链发布平台WordPress打开数据库
  • 哪些网站可以上传自己做的视频手机wap版
  • 上海网站制作是什么网站图片相册代码
  • 广告型网站建设网站集成微信登陆
  • 网站如何做线上支付功能劳务派遣