工程开发的程序设计与逻辑设计

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

那么什么是程序设计和逻辑设计,举个例子来说,统计一群人,程序上可以做到对人群的归类字典统计,也可以做成每个人有自己的属性之类的,而作为逻辑上,需要知道人的名字,性别,身高之类。其实这个例子你可能看不太清晰,很多时候程序和逻辑是混合在一起的。比如我抛一个小球,逻辑上已经设计了重力,环境,以及墙壁,从逻辑上我这个小球会按照一切安排的正确运行。但是这一切基于什么?决定因素都不在小球,重力,环境,以及墙壁的改变都会影响到小球的结果变化。这个逻辑不如叫间接程序设计。程序上直接对小球进行本身的控制更有把握。再比如说我要做个只允许小球上抛的动作,
可能上抛有可能碰触到天花板和侧墙。而如果我后来取消了限制小球的抛出角度。那么小球有可能被抛向任何地方,可能是地面也说不定。这种时候你肯定不会第一时间就知道这一影响并修正,有可能你还是只是惯性思维的做想上抛的动作,而忽略了向下抛完全可能出问题,后来经过反复测试,你才渐渐地找出问题所在。

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

也许你会觉得做多重判断以及没必要的条件增加代码完全没必要,而且增加运行成本。但渐渐的这些问题在你的工程中后期就会都慢慢浮现出来。

你只是个码代员,不是主宰项目的存在,真正主宰项目的是经理,客户和终端用户。所以,给代码健壮的逻辑,给后期稳健的开发速度。

时间: 2024-10-09 00:10:37

工程开发的程序设计与逻辑设计的相关文章

project开发的程序设计与逻辑设计

非常多时候我们要做庞大project, 就像一棵大树, 方方面面都有自己的细枝末节,而作为开发员的我们,无法时时刻刻去保持对程序的全面认知,所以我们要把程序设计与逻辑设计区分开来. 那么什么是程序设计和逻辑设计,举个样例来说,统计一群人,程序上能够做到对人群的归类字典统计.也能够做成每一个人有自己的属性之类的,而作为逻辑上,须要知道人的名字.性别.身高之类.事实上这个样例你可能看不太清晰.非常多时候程序和逻辑是混合在一起的.比方我抛一个小球.逻辑上已经设计了重力,环境,以及墙壁,从逻辑上我这个小

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

 ASP.NET中登录功能的简单逻辑设计                               概述                               逻辑设计                               1.接收参数                               2.判断参数合法性                               3.访问数据库                               4.保存Session     

微服务开发中的数据架构设计

本文来自作者 陈伟荣 在 GitChat 分享的文章[微服务开发中的数据架构设计] 前言 微服务是当前非常流行的技术框架,通过服务的小型化.原子化以及分布式架构的弹性伸缩和高可用性,可以实现业务之间的松耦合.业务的灵活调整组合以及系统的高可用性.为业务创新和业务持续提供了一个良好的基础平台.本文分享在这种技术架构下的数据架构的设计思想以及设计要点,本文包括下面若干内容. 微服务技术框架中的多层数据架构设计 数据架构设计中的要点 要点1:数据易用性 要点2:主.副数据及数据解耦 要点3:分库分表

移动APP开发使用什么样的原型设计工具比较合适?

总结过几个模型后,我就趁热打铁看了第二个题目:移动APP开发使用什么样的原型设计工具比较合适? 这个要分情况啦! 有时候,客户的需求很明显,就是实现几个功能的app(看来是个小型的工程啦)所以瀑布模型就可以胜任了. 有时候,客户的需求不很清晰,这就需要开发人员快速开发一个原型,再和客户详细计划自己需求的功能.如果是一个很大型的app,像淘宝,qq等这样的,需要不断的更新新的功能模块,这就需要开发阶段就要开放式的体系结构,这就需要增量模型, 有时候,类似于针对用户体验的APP就需要快速原型模型,根

Django开发笔记之数据库的设计

后台采用Django开发,可以体会到开发的便利之处,对于一个项目来说,首先最重要的是数据库的设计,那么在Django下数据库设计主要是如下步骤: 1,需求分析,这点子不用多说,而我也深刻体会到了没有原型的时候就开始开发的困难之处,每次需求更改就会带来后台的数据和对应接口的一次变更.费时费精力 2.有了需求,那么开始数据库的设计,在Django中,并不需要直接去操作数据库,而且使用继承modesl.Model的类,在类中定义自己的模型,然后使用Python manage.py syncdb就可看到

我读经典(9):读《完美软件开发:方法与逻辑》有感

开发出一款受用户欢迎的.十全十美的软件是每个软件开发工程师的梦想,但在现实条件下,受市场环境.公司氛围及自身水平等的影响,要开发出一款完美的软件几乎是不太可能的.最近,我阅读了李志勇老师的<完美软件开发:方法与逻辑>一书,颇有收获. 正如李老师所说,本书是为"培养帅才"而写的.全书共9章内容,以思维逻辑为出发点和归宿,表达了作者对完美软件开发的一些理解和认识.本书涉及到的内容包括:项目管理.流程.开发模型.估算方法.需求开发.设计和编码等.在最后一章中,作者以薪水支付与性能

MiS603开发板 2.4 Testbench设计

作者:MiS603开发团队 日期:20150911 公司:南京米联电子科技有限公司 论坛:www.osrc.cn 网址:www.milinker.com 网店:http://osrc.taobao.com EAT博客:http://blog.chinaaet.com/whilebreak 博客园:http://www.cnblogs.com/milinker/ 2.4 Testbench设计 一个完整的设计,除了好的功能描述代码,对于程序的仿真验证是必不可少的.学会如何去验证自己所写的程序,即如

Git工程开发实践(二)——Git内部实现机制

Git工程开发实践(二)--Git内部实现机制 一.Git仓库内部实现简介 Git本质上是一个内容寻址(content-addressable)的文件系统,根据文件内容的SHA-1哈希值来定位文件.Git核心部分是一个简单的键值对数据库(key-value data store).向Git数据库插入任意类型的内容,会返回一个键值,通过返回的键值可以在任意时刻再次检索(retrieve)插入的内容.通过底层命令hash-object可以将任意数据保存到.git目录并返回相应的键值.Git包含一套面

Git工程开发实践(四)——Git分支管理策略

Git工程开发实践(四)--Git分支管理策略 一.Git版本管理的挑战 Git是非常优秀的版本管理工具,但面对版本管理依然有非常大得挑战.工程开发中,开发者彼此的代码协作必然带来很多问题和挑战:A.如何开始一个Feature开发,而不影响其它Feature?B.由于很容易创建新分支,分支多了如何管理,时间久了,如何知道每个分支是干什么的?C.哪些分支已经合并回了主干?D.如何进行Release的管理?开始一个Release的时候如何冻结Feature, 如何在Prepare Release的时