哈,说下逻辑设计

中山野鬼 发布于 2013/12/22 16:17
阅读 465
收藏 1

刚看个小朋友的作业题。大意是对字符串中,按照字母出现的频率高低进行打印。

哈,当然我相信,很多人会想到排序,或许这个题目就是要考察排序,谁知道呢。我觉得写程序有几个方面的工作。

1、流程设计,这个通常就是程序员分析方面的工作,码农貌似很少处理。当然业务逻辑的流程设计也包括在内,虽然谈不上编程,甚至是设计人员辅助由实际业务人员提出的,但直接决定程序设计。

2、环境搭建与实现。这个就扯的多了,什么开发工具啊,基础库啊,套用的架构啊,程序架构和在实现上套用的架构还是两回事。

3、扩展、优化,主要是性能上的问题。

我们不去谈业务流程,这个实在需要具体化,单从程序设计的流程设计角度,例如上面的例子,那么工作的内容还是围绕目标把事情做完,按照少一步不行,多一步浪费的原则。其实就是组织个字母表,获取统计数据,然后寻找最大值打印出来,和排序没有任何关系。

曾经我对别人说,设计要尽可能简化,结果被标签化的定义为“没水平”,哈哈,无所谓,就当没水平。不过从经验和理论的角度来谈,每当你多了一个逻辑描述,步骤功能目标,你的逻辑就会多一份复杂,内部逻辑、数据等各方面关联的注意事项都会增加,不是说大家要偷懒,而是说要看是否有必要。

主逻辑通了,功能稳定的实现了,那么才会需要去考虑性能。性能的考虑,根据实际硬件、软件包括需要处理的数据的情况,可能有不同的策略和实现方法,这些都要基于存在原型系统之上的局部模块的替换,不能让性能改善的逻辑和代码,在整个全局框架中。唯独是模块与模块对接时,数据组织形态的调整,存在一定接口数据对接处理操作。

还是那个观点,别把问题想简单了,也别把方案做复杂了。后者不是为了偷懒,也不要怕别人说你水平不行,而是为了务实的针对目标,快速、稳定、可靠的实现。哈。

以前曾经,我估计很多人也会,看到同样一个实现目标的实现方法,简单到等于大白话,结果很鄙视这种方案认为没水平,哈,现在我觉得这种方案的提出者,要么确实没什么经验,反正只能这样设计,要么真的返璞归真,理解技术是技术,目标是目标,他们之间的关联关系。哈。

即便从性能优化的角度,我个人的经验仍然是,越简洁的描述,效率越高高。哈。

加载中
0
duandi
duandi
cat 野鬼前辈的文章.txt | grep -o '哈' | wc -l
0
中山野鬼
中山野鬼

引用来自“duandi”的答案

cat 野鬼前辈的文章.txt | grep -o '哈' | wc -l
以后我写 口合 哈哈。。
0
宏哥
宏哥

就是输入/输出  处理 数据

输入输出分解, 就是设计

0
NealFeng
NealFeng
楼主太能写了。。。每个人的背景不一样,你也不知道说什么刚好别人能懂。。。简洁是好,但也得简得来 
0
魔力猫
魔力猫
我们没有能力将软件写得简单而没有问题,所以只能写得足够复杂让人不容易找到问题。
修改登录密码
修改登录密码
我晕 我没什么本事 但是我会说很多名词让别人云里雾里的以为我很有本事
0
泡不烂的凉粉
泡不烂的凉粉
按照字符频率高低,进行打印, 不排序怎么知道高低啊. 这问题还真被难倒了.
0
泡不烂的凉粉
泡不烂的凉粉
呃,看了其他帖子, 发现野鬼在输出的时候还是做了排序的. 排序方法就是冒泡, 记录次数用的查表, 这个很普通.  好吧,我班门弄斧了. 不要砍我.
0
中山野鬼
中山野鬼

引用来自“正想着改什么名好”的答案

呃,看了其他帖子, 发现野鬼在输出的时候还是做了排序的. 排序方法就是冒泡, 记录次数用的查表, 这个很普通.  好吧,我班门弄斧了. 不要砍我.
我那个不算排序。只能叫做查询后操作再加清除。排序不会清除掉数据。总存在数据或索引的移动。哈。
泡不烂的凉粉
泡不烂的凉粉
好吧, 你这不是排序, 你这是算法, 冒泡算法. 呵呵. 没有移动数据, 只是不断的冒泡, 碰见最大的,改成最小的,再次冒泡.
返回顶部
顶部