非常多时候我们要做庞大project, 就像一棵大树, 方方面面都有自己的细枝末节,而作为开发员的我们,无法时时刻刻去保持对程序的全面认知,所以我们要把程序设计与逻辑设计区分开来。

那么什么是程序设计和逻辑设计,举个样例来说,统计一群人,程序上能够做到对人群的归类字典统计。也能够做成每一个人有自己的属性之类的,而作为逻辑上,须要知道人的名字。性别。身高之类。事实上这个样例你可能看不太清晰。非常多时候程序和逻辑是混合在一起的。比方我抛一个小球。逻辑上已经设计了重力,环境,以及墙壁,从逻辑上我这个小球会依照一切安排的正确执行。可是这一切基于什么?决定因素都不在小球,重力,环境。以及墙壁的改变都会影响到小球的结果变化。

这个逻辑不如叫间接程序设计。程序上直接对小球进行本身的控制更有把握。

再比方说我要做个仅仅同意小球上抛的动作。
可能上抛有可能碰触到天花板和側墙。而假设我后来取消了限制小球的抛出角度。那么小球有可能被抛向不论什么地方,可能是地面也说不定。这样的时候你肯定不会第一时间就知道这一影响并修正,有可能你还是仅仅是惯性思维的做想上抛的动作。而忽略了向下抛全然可能出问题,后来经过重复測试,你才渐渐地找出问题所在。

所以敲代码,不能靠逻辑来绑定你的思维。你不能就这么认为“恩。这样没问题了。a,b,c这些影响下就是这个结果",拜托,这不是日常生活,这不须要惯性思维,你该限制小球速度就是须要限制,该给没可能的情况添加条件推断就该去添加推断,这样你的project代码才健壮。逻辑条件仅仅是一个架起虚空的云梯,你摔下去的因素有千万种可能。

或许你会认为做多重推断以及不是必需的条件添加代码全然不是必需,并且添加执行成本。

但渐渐的这些问题在你的project中后期就会都慢慢浮现出来。

你仅仅是个码代员,不是主宰项目的存在。真正主宰项目的是经理,客户和终端用户。

所以,给代码健壮的逻辑,给后期稳健的开发速度。

project开发的程序设计与逻辑设计的更多相关文章

  1. 使用 ASP.NET MVC 4, EF, Knockoutjs and Bootstrap 设计和开发站点 - 6 - 业务逻辑

    翻译:使用 ASP.NET MVC 4, EF, Knockoutjs and Bootstrap 设计和开发站点 - 6 - 业务逻辑 Part 3: 设计逻辑层:核心开发 如前所述,我们的解决方案 ...

  2. 小梅哥FPGA数字逻辑设计教程——基于线性序列机的TLC5620型DAC驱动设计

    基于线性序列机的TLC5620型DAC驱动设计 目录 TLC5620型DAC芯片概述:    2 TLC5620型DAC芯片引脚说明:    2 TLC5620型DAC芯片详细介绍:    3 TLC ...

  3. [原创].NET 分布式架构开发实战之二 草稿设计

    原文:[原创].NET 分布式架构开发实战之二 草稿设计 .NET 分布式架构开发实战之二 草稿设计 前言:本篇之所以称为草稿设计,是因为设计的都是在纸上完成的.反映了一个思考的过程. 本篇的议题如下 ...

  4. ASP.NET中登录功能的简单逻辑设计

     ASP.NET中登录功能的简单逻辑设计                               概述                               逻辑设计             ...

  5. Java生鲜电商平台-SpringCloud微服务开发中的数据架构设计实战精讲

    Java生鲜电商平台-SpringCloud微服务开发中的数据架构设计实战精讲 Java生鲜电商平台:   微服务是当前非常流行的技术框架,通过服务的小型化.原子化以及分布式架构的弹性伸缩和高可用性, ...

  6. [课程设计]Scrum 2.3 多鱼点餐系统开发进度 (订单一览设计)

    Scrum 2.3 多鱼点餐系统开发进度  (订单一览设计) 1.团队名称:重案组 2.团队目标:长期经营,积累客户充分准备,伺机而行 3.团队口号:矢志不渝,追求完美 4.团队选题:餐厅到店点餐系统 ...

  7. MySQL 数据库设计 笔记与总结(2)逻辑设计

    [实例演示 —— 实体之间的关系] [逻辑设计的工作] ① 将需求转化为数据库的逻辑模型 ② 通过 ER 图的形式对逻辑模型进行展示 ③ 同所选用的具体的 DBMS 系统无关 [名词解释] 候选码可以 ...

  8. 深入理解计算机系统(4.2)------逻辑设计和硬件控制语言HCL

    上一篇博客我们简单介绍了Y86指令集体系,而这篇博客我们将介绍指令集体系的逻辑设计和硬件控制语言HCL,为后面去实现Y86打下基础. 在硬件设计中,用电子电路来计算对位进行运算的函数,以及在各种存储器 ...

  9. 数据库设计理论与实践·<二>概念设计与逻辑设计

    2一.概念设计 1.1 概念设计关键知识 1.2 辨析 实体与属性的区别: ①实体能进一步用多个属性来描述,属性却不能,属性是不可再细分/分割的原子项. ②实体内部或者多个实体之间存在联系,而属性无. ...

随机推荐

  1. py脚本打包exe可执行文件

    python3以上版本打包exe需要扩展软件:cx_freeze 下载地址:http://cx-freeze.sourceforge.net/ 1)安装后在\Python32\Scripts\cxfr ...

  2. 模板 快速询问GCD

    快速询问两个数的GCD 我觉得只有智障会卡这个玩意儿-- const int maxn = 1e6; const int Sqrt_N = 1e3; int pre[maxn + 1] , decom ...

  3. ZOJ 2970 Faster, Higher, Stronger

    F - Faster, Higher, Stronger Time Limit:2000MS     Memory Limit:65536KB     64bit IO Format:%lld &am ...

  4. Idea详细配置

    https://blog.csdn.net/m_m254282520/article/details/78900238

  5. Mac安装homebrew安装到指定目录

    第一种直接安装在/usr/local目录下 mac 打开终端输入 ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebr ...

  6. ubuntu 自动获取ip

    $sudo dhclient -r $sudo dhclient $sudo dhclient eth0

  7. Running CMD.EXE as Local System(转)

    Many times in the past I had to run an interactive command-line shell under the Local SYSTEM account ...

  8. FT项目开发技术点(二)

    1.mybatis二级缓存,指的的是将数据缓存,而非对象,而非获得的list.缓存将数据库中的数据,是数据,缓存到内存中.之后将数据每次重新加载到list中,所以每次生成的list对象都是不同的,li ...

  9. 别忽视UIImage中的方向属性, imageOrientation-转

    转 : 别忽视UIImage中的方向属性, imageOrientation

  10. Ext Form

    表单Ext.form.FormPanel 1.表单 对于传统的b/s应用来说,数据录入元素是放在表单<form>标签里面的.而对于ExtJS应用来说,则可以直接使用FormPanel控件来 ...