
开发方法
王伟1982
我是数据分析与处理行业的数据采矿工,软件业的代码搬运工,通信业的协议打包工,互联网业的安全检查工
展开
-
谈一谈什么叫专业化的软件
专业化的软件是为其他人开发的软件,用户不是开发者本人原创 2024-03-16 23:34:13 · 323 阅读 · 0 评论 -
俄罗斯方块游戏开发思路随想
俄罗斯方块游戏开发思路的一些总结与思考原创 2024-03-15 23:33:29 · 254 阅读 · 0 评论 -
戏说二十三种设计模式_用故事的方式就是让你一定能懂
听故事,学设计模式,不信你不会原创 2023-11-24 21:49:34 · 130 阅读 · 0 评论 -
如何学习算法
知道了算法是怎样一步步被推导出来的,我们就一下拥有了大量的记忆提取线索:对算法发现过程中的任何一个关键步骤(尤其是本质)的回忆都可能使我们能够自己动手推导出剩余的内容。原创 2023-11-20 21:44:44 · 104 阅读 · 0 评论 -
zlib安装 简略版 以linux操作系统为例
zlib是底层的压缩用的软件包,在Linux操作系统下,介绍zlib软件包的安装过路原创 2023-07-04 22:52:08 · 4216 阅读 · 0 评论 -
Yacc 与 Lex 快速入门
简介: Lex 和 Yacc 是 UNIX 两个非常重要的、功能强大的工具。事实上,如果你熟练掌握 Lex 和 Yacc 的话,它们的强大功能使创建 FORTRAN和 C 的编译器如同儿戏。本文详细的讨论了编写自己的语言和编译器所用到的这两种工具,包括常规表达式、声明、匹配模式、变量、Yacc 语法和解析器代码。最后,本文解释了怎样把 Lex 和 Yacc 结合起来。原创 2023-06-21 20:45:00 · 3859 阅读 · 0 评论 -
从编译器的角度 理解程序的逻辑结构
从编程的逻辑语义上,谈一下编程的方法,是选择分支语句还是查表法?是选择循环语句还是递归的写法?本文回答这样的问题原创 2023-06-08 17:25:24 · 649 阅读 · 0 评论 -
【方法论】如何学习博客文章中的知识?
之前看了一篇名为如何超越大多数人的文章,其中提到了很多的方法。例如学习的方法,思考的方法。但是没有详细展开论述,这里谈一下关于学习的事。原创 2023-05-25 22:09:16 · 196 阅读 · 0 评论 -
90%的交互设计师都知道的坑,程序员还在做吗?
习惯的巨大的力量不容小视,不要挑战用户的使用习惯。原创 2023-05-07 20:48:51 · 775 阅读 · 0 评论 -
马踏棋盘的问题——贪心算法
我的算法不是最好的,有本书介绍过,在4x4中,每4步组成一个环,然后再将16个小环连成一个大环。在每个结点对其子结点进行选取时,优先选择 ‘出口’最小的进行搜索,‘出口’的意思是在这。些子结点中它们的可行子结点的个数,也就是‘孙子’结点越少的越优先跳,为什么要这样选取,这是一种局部调整最优的做法,如果优先选择出口多的子结点,那出口少的子结点就会越来越多,劳,这样会浪费很多无用的时间,反过来如果每次都优先选择出口少的结点跳,那出口少的结点就。会越来越少,这样跳成功的机会就更大一些。64 步的计算结果。原创 2023-04-13 22:02:48 · 731 阅读 · 0 评论 -
编程的道与术
编程方法论原创 2022-06-08 23:51:42 · 266 阅读 · 0 评论 -
软件的SAAS化
软件的SAAS化软件的开发运营有三种模式,一是软件项目,二是软件产品。三是软件平台。项目对应于小公司为大公司服务的方式。是定制化开发。客户的所有的需求几乎都得被满足。项目由客户主导。支付方式往往是合同签定就付款一定比例,验收后再付一定的比例。维护期结束再付最后一笔款项。产品对应于大公司以及小公司为个人服务的方式。一手交钱,一手交货,产品的功能由供应商来定义。用户会发现绝大部分的功能,自己都是用不上的。这种情况下,盗版就是一个最大的问题。平台方式是具有垄断地位的软件巨无霸公司为所有人提原创 2022-01-18 23:05:13 · 1138 阅读 · 0 评论 -
程序开发的调试技术的编码技巧总结
程序开发的调试技术的编码技巧总结输出的打印信息,必须有错误消息的编号,错误描述最好是用英语。用中文可能遇到乱码问题,影响程序的调试的过程。错误消息的编号的分配,尽可能地保证,错误消息与编号一一对应。...原创 2021-05-14 21:46:17 · 185 阅读 · 0 评论 -
流与网络
流与网络有流有网络 有如下的表格空白处,尚未命名。原创 2021-05-13 23:37:12 · 84 阅读 · 0 评论 -
优先队列的应用实例
优先队列的应用实例假设我们对机器服务进行收费.每个用户每次使用机器所付费用都是相同的,但每个用户所需要服务时间都不同.为获得最大利润,假设只要有用户机器就不会空闲,我们可以把等待使用该机器的用户组织成一个最小优先队列,优先权即为用户所需服务时间.当一个新的用户需要使用机器时,将他/她的请求加入优先队列.一旦机器可用,则为需要最少服务时间(即具有最高优先权)的用户提供服务.如果每个用户所需时间相同,但用户愿意支付的费用不同,则可以用支付费用作为优先权,一旦机器可用,所交费用最多的用户可最先得到原创 2021-05-09 23:41:16 · 608 阅读 · 0 评论 -
图的拓扑排序
图的拓扑排序假设我们有一组任务要完成,并且有些任务要在其它任务完成之后才能开始,所以我们必须非常小心这些任务的执行顺序。如果这些任务的执行顺序足够简单的话,我们可以用链表来存储它们,这是一个很好的方案,让我们可以准确知道任务的执行顺序。问题是有时候不同任务之间的关系是非常复杂的,有些任务依赖于两个甚至更多的任务,或者反过来很多任务依赖自己。因此我们不能通过链表或者树的数据结构来对这个问题建模。对这类问题唯一合理的数据结构就是图。我们需要哪种图呢?很显然,我们需要有向图来描述这种关系,而原创 2021-04-27 22:43:55 · 141 阅读 · 0 评论 -
元胞自动机
元胞自动机元胞自动机简述它是一种算法模型,它使用非常简单的规则计算迭代,简单规则可以通过主体间的相互作用,在进化过程中产生复杂 的涌现现象。这个算法来源于生物进化的思想。最早的例子是著名数学家john conway设计的生命游戏。元胞自动机是一个地地道道的"混血儿"。是物理学家、数学家,计算机科学家和生物学家共同工作的结晶。因此。对元胞自动机的含义也存在不同的解释,物理学家将其视为离散的、无穷维的动力学系统;数学家将其视为描述连续现象的偏微分方程的对立体,是一个时空离散的数学模型;计算原创 2021-04-23 16:47:41 · 644 阅读 · 0 评论 -
编程的目的是解决计算的问题
编程的目的是解决计算的问题编程的思维必须要是考虑各种异常的情况。例如一元二次方程的求解 ax^2+bx+c=0在编程时要考虑的问题包括以下的内容1 a=0时的情况和a!=0时的情况。2 在b^2-4ac 大于等于0的情况和b^2-4ac 小于0的情况3 x 这个自变量的定义域的问题,例如x是整数,实数,复数的情况4 x的计算结果是给出精确解,还是近似的数值解的问题5 如果x的数值近似解的情况下,数值精度的设置的问题6 如果是在教学演示的程序,如何进行可视化的演示的问题...原创 2021-04-18 22:21:38 · 257 阅读 · 0 评论 -
汉语拼音分音节的程序
汉语拼音分音节的程序示例如下 输入的拼音是相连的,输出的结果是一个个的汉字的音节gonghuacheng ---> gong hua chengbeijingzhan ----> bei jing zhan音节识别的正则表达式为 (声母){0,2}(韵母){1,4}BNF的定义如下:声母:= bcdfghjklmnpqrstwxyz韵母:=aeoiuv双声母:=ch sh zh音节的首字母:=声母 a e音节的尾字母:=韵母 n g识别音...原创 2021-03-25 21:21:35 · 497 阅读 · 0 评论 -
软件的边际成本低吗
软件的边际成本低吗软件在运营上有三种形式,一是项目,二是产品,三是服务。以大公司为客户,常是第一种形式,它要求是定制化的公司管理相关的信息系统。所以做成了软件项目,这就与盖楼房类似了。层层审核,处处盖章验收,项目分成多个阶段。甚至大到要分成多期运作。如果多个项目相似度比较大的话,项目的边际成本因为经验的积累会有一些下降,否则是不会有任何下降的。以小公司为客户,常是第二种形式,它会购买软件产品,然后接受软件的使用培训,经过客户员工自己的安装,配置,使用与维护。这种情况,常常需要做防盗版的工作原创 2021-02-22 22:37:16 · 1453 阅读 · 0 评论 -
地理编码是什么?
地理编码是什么?地理编码是为识别点、线、面的位置和属性而设置的编码,它将全部实体按照预先拟定的分类系统,选择最适宜的量化方法,按实体的属性特征和集合坐标的数据结构记录在计算机的储存设备上。地理编码和逆地理编码的关系如下图:正向地理编码服务正向地理编码服务实现了将地址或地名描述转换为地球表面上相应位置的功能。正向地理编码提供的专业和多样化的引擎以及丰富的数据库数据使得服务应用非常广泛,在资产管理、规划分析、供应物流管理和移动端输入等方面为用户创造无限的商业价值。反向地理编码服原创 2021-01-19 21:25:17 · 1377 阅读 · 0 评论 -
生僻汉字结构数字键编码
生僻汉字结构数字键编码生僻汉字结构数字键编码由王子善发明,在2020年12月14日成为国家的技术标准如下图输入法的简介:对称码输入法其实是优化了的拼音和笔画输入法,由一个分类键加拼音或笔画组成。分类的方法,即根据汉字的对称或不对称的结构特点将汉字分为以下几类:独体、包围、上对称、下对称、上下非对称、左对称、右对称、左右对称、左右非对称。 敲击一个分类键,就意味着撇开了字库中90%的字,而只从10%的字库中挑字,其速度自然要比起从整个字库中挑一个字快得多。 比如左边“亻...原创 2021-01-18 23:01:02 · 1623 阅读 · 0 评论 -
蓝牙协议栈概述
蓝牙协议栈概述蓝牙协议栈的信息源头是https://www.bluetooth.com蓝牙协议栈的所有者是蓝牙技术联盟。它有七个公司为它的核心成员这些公司包括爱立信,英特尔,微软,联想,东芝,三星、朗讯蓝牙的版本发展从V1.1/1.2/2.0/2.1/3.0/4.0/ 5.0/ 5.1/ 5.2对应的是二十年来,传输速度的飞速发展。V1.1和1.2版本传输率约在748~810kb/sV2.0+EDR版本是 1.2 的改良提升版,传输率约在1.8M/s~2.1M/s2009..原创 2021-01-05 19:37:08 · 867 阅读 · 0 评论 -
编程语言发展的新趋势
编程语言发展的新趋势2010年后诞生的新的计算机编程语言,如果要成为比较流行的语言,一般会运行在Java虚拟机上,或者是被编译为javascript代码。这解决了新语言的类库的需要长时间积累的问题。用通俗的话说,就是新语言采用了傍大款的策略。依赖了java的庞大的类库。这是第一个趋势。要成为流行的语言,第二个趋势是必须出身名门,例如由国际的大公司出品。这样的公司有能力对语言进行强有力的推广。第三个趋势是语法在化简,加入面向函数的编程范式是标准配置。第四个趋势是语言更多的考虑手机等新平原创 2020-12-29 21:57:23 · 763 阅读 · 1 评论 -
计算机领域的无障碍设计
计算机领域的无障碍设计在老龄化社会到来之时,无障碍设计变得日益重要。人的身体与感知,认知等障碍有十几种之多。例如色盲,色弱,视力弱,听力弱,力量小,灵活性不够,平衡感不足等。在建筑领域早就有了无障碍的设计。例如台阶被斜面替换以满足使用轮椅的人的特殊需求。总的执行原则是,在web上提供信息选择与浏览的多种信息获得方式。例如提供手势与语音等多种交互方式。为语音配字幕,为文字和图片等配置读屏的语音输出。简化操作,要求提供极少的必要的信息。提供放大镜,扩音器,慢操作等工具性软件。需.原创 2020-12-27 21:51:56 · 265 阅读 · 0 评论 -
解决问题的方法论
解决问题的方法论第一是所有的问题,先进行分类,比如:分析出是经济问题,还是数学问题,或者是物理问题。第二是所有问题先找本质和核心,比如:金融的核心是风控,金融的本质就是“永远用你的钱,为比你更有钱的人服务!”第三是分析出问题所在的层次。比如信息安全问题,是组织层面,还是制度层面,或者是技术层面上的问题,又或者是具体措施层面上的问题。第四是根据该类问题的经典思路,给出一个可行的解决方案。比如数据库的优化问题,使用性能分析优化的经典框架。做出一个性能基线。第五是优化方案。折中各个权衡的因原创 2020-12-25 21:08:23 · 987 阅读 · 0 评论 -
空中成像技术概述
空中成像技术概述应用场景,有人认为空中成像的交互技术,使用不方便,不容易推广。但在今年疫情的特殊背景下,如果空中成像的技术是成熟可用的,那么为了防止经过接触造成的交叉感染,空中成像技术的价值是巨大的,而且可以在一瞬间普及使用的。如医院中的各种业务系统的交互。空气成像主要是通过空气显示屏来完成的。空气显示屏主要包括两种: 一有介质空中成像显示屏,二无介质空中成像显示屏。在众多的实现技术中,Magic Screen 的显示效果最好。有介质空中成像显示屏以俄罗斯人Max Kamanin设计的A原创 2020-12-15 20:54:29 · 5704 阅读 · 1 评论 -
usb协议栈概述
usb协议栈概述usb协议栈的信息源头是www.usb.orgusb协议栈的所有者是usb联盟。它有七个美国公司为它的成员这些公司包括苹果,惠普,英特尔,微软,瑞萨科技,ST微电子,德州仪器usb的版本发展从1.0,1.1,2.0,3.0,3.1,3.2,到如今的4.0对应的是二十年来,传输速度的飞速发展。USB1.0和USB1.1支持1.5Mb/s的低速模式和12Mb/bs的全速模式。在USB2.0以上支持480Mb/s的高速模式。 USB3.0的最大数据传输速率为5GbpsUSB原创 2020-12-12 21:51:32 · 1763 阅读 · 0 评论 -
matlab数学符号运算的函数列表
矩阵transpose(s); %返回s矩阵的转置矩阵determ(s); %返回s矩阵的行列式值diag(s); %以矩阵s的元素作为矩阵X的主对角线元素triu(s); %返回矩阵s上三角矩阵tril(s); %返回矩阵s下三角矩阵inv(s); %返回矩阵s的逆矩阵det(s); %返回矩阵s的行列式的值rank(s);...转载 2020-12-11 22:24:25 · 920 阅读 · 0 评论 -
浅谈数据结构的高级知识点并查集
并查集能在一张无向图中维护节点之间的连通性,这是他的基本用途之一。实际上并查集擅长动态维护许多具有传递性的关系。并查集实际上是由若干棵树构成的深林在计算机科学中,并查集是一种树型的数据结构,用于处理一些不交集(Disjoint Sets)的合并及查询问题。有一个联合-查找算法(union-find algorithm)定义了两个用于此数据结构的操作:•Find:Find: Find: 确定元素属于哪一个子集。它可以被用来确定两个元素是否属于同一子集。•Union : Union: Unio原创 2020-12-10 22:36:09 · 92 阅读 · 0 评论 -
线段树浅谈
线段树浅谈线段树是二分法思想的一种实现。它是一种二叉树。每一个树结点的信息包括了一个区间,以及和值,最小值,最大值等载荷信息。它的应用领域见ACM的题目。http://acm.hdu.edu.cn/showproblem.php?pid=1166下面引用文章来解释为什么要使用线段树。线段树从零开始 By 岩之痕一:为什么需要线段树?题目一:10000个正整数,编号1到10000,用A[1],A[2],A[10000]表示。修改:无统计:1.编号从L到R的所有数之和为多少? 其中1..转载 2020-12-09 21:05:15 · 132 阅读 · 0 评论 -
软件的可维护性
软件的可维护性软件维护的四种类型纠正性维护 : 这是改BUG适应性维护 : 这是更换操作系统与数据库等外部环境时的修改完善性维护 : 这是有新需求的修改预防性维护 : 确定可以改进质量或者是预防未来出现的BUG的修改1. 坚持简单的原则最有助于提高可维护性.2. 可维护性不是项目开发完成后才去考虑的,而应该是在项目开发的一开始就加以考虑.每个人的贡献都应当计算在内.3.各个原则的影响不同可维护性与编程语言无关,与行业无关,也不等价于BUG数量的多少.可维护性表示高效,有效地进行转载 2020-12-03 19:30:04 · 2196 阅读 · 0 评论 -
大规模透明线段集合的三维渲染技术的比较 1介绍部分
1 介绍在许多的可视化任务中,有效地显示大规模三维线段集合的需要是常见的。应用的范围从在流域中的粒子跟踪器的路径的可视化,到对于智能驾驶的移动车辆和乡村规划,到探索大脑中的神经连接或者是在巨大的图和网络结构中的关系的编码。当透明性被谨慎地使用后,为了避免过于模糊取得了平衡,它提供强有力的视觉上的线索,这线索能够有效地缓解了混乱,并且同时得到重要的结构,却维护着更少的重要的上下文信息。对于探索性的可视化任务,当用户交互式地选择了透明性的强度和数据的数值到透明性的映射时,它是特别地有用。翻译 2020-11-18 21:56:46 · 105 阅读 · 0 评论 -
大规模透明线段集合的三维渲染技术的比较
大规模透明线段集合的三维渲染技术的比较摘要:这篇文章展示了大规模三维透明线段集合的交互式渲染技术的比较。透明线段的渲染被广泛应用于可视化在流域中的跟踪器粒子的轨道。透明性被用于淡出被认为是不重要的线段,基于,例如在这些线段上定义的几何属性。由于透明线段的精确的渲染需要从后到前或者是从前到后的顺序来渲染线段,对于3维的有上万的元素甚至上十万的元素的线段集合,强调这个顺序变成了一个挑战。在这篇文章中,针对大规模的透明的三维的线段集合,我们研究CPU和GPU的渲染技术。我们使用优化后的实现和一翻译 2020-11-16 18:40:52 · 107 阅读 · 0 评论 -
字符串匹配的KMP算法的初步理解
字符串匹配的KMP算法的初步理解字符串的匹配的问题是指有一个长的字符串a以及一个短的字符串b如果b与a中的一部分完全匹配,那么得到b字符串的首字符在字符串a中的位置。寻找一个短的字符串在一个长的字符串中的匹配情况,类似于以一把钥匙在一堆锁头中找到匹配的锁头。钥匙与某一把锁头的匹配尝试只需要一次,为了防止重复尝试,可以把锁头排成一行,逐一尝试。短的模式字符串b相当于钥匙,一把锁头相当于长字符串的一部分,排成一行的所有锁头相当于长字符串a,字符串中的一个字符,相当于钥匙中的一个齿。在匹原创 2020-11-05 21:53:31 · 154 阅读 · 1 评论 -
源代码分析 向PNG格式的图片文件写入的代码阅读
源代码分析 向PNG格式的图片文件写入的代码阅读 写优秀的代码之前,要大量阅读优秀的源代码,然后反复地写代码进行练习,并分析什么样的代码是好代码。下面以一段C语言的代码为例,进行分析。写C语言的程序,像一段八股文,有启承转合各个段落。首先是程序文件的注释内容为程序功能的简要介绍,作者,版权信息。程序使用的注意事项还有公开源代码的许可证信息,例如BSD许可,GNU GPL许可等。然后是条件性编译的宏定义,包括真值定义为1,假值定义为0。还有最大值,最小值的函数定义,它是采用宏定义的方..原创 2020-07-04 22:06:55 · 1025 阅读 · 0 评论 -
数据结构与数据类型的关系是什么
数据结构与数据类型数据类型是面向应用领域的具体化,同时面向计算机系统底层是为了确定分配的内存容量的大小。在C,JAVA等静态类型的编程语言中,编译器根据数据类型,提前在内存的进程的栈中分配特定大小的空间。C 的malloc,和Java的new是动态分配大块内存的,提前在内存的进程的堆中分配计算过的内存空间。javascript 等动态数据类型的编程语言中,并不需要声明数据类型,根据赋值情况,在解释器解释执行代码中,动态得到相关的数据类型。静态类型的语言,数据类型有严格的检查,程序不容易出原创 2020-06-30 23:19:43 · 1861 阅读 · 0 评论 -
对于事物的掌握的知识的等级
对于事物的掌握的知识的等级使用级 对于汽车,就是开车的知识,会踩油门和刹车,挂档,转方向盘就好了。维护级 对于汽车,就是修车的知识,会拆装发动机,装轮胎。制造级 对于汽车,就是按照图纸,生产零件,组装零件成为整车设计级 对于汽车,就是设计汽车图纸,明确发动机的性能指标,轮胎型号等。发明级 对于汽车,就是要阐明汽车的工作原理。发动机的工作原理。证明技术可行性等。对于一个软件,不管是开发工具,代码库,程序框架,还是底层的操作系统,数据库,驱动程序等,我们在学习软件时,首先要明确,自己是在哪个层原创 2020-06-29 22:58:46 · 490 阅读 · 1 评论 -
编程语言的前世今生与编程范式
编程语言1编程语言概述第四代编程语言HTML 是超文本标签语言XML 是可扩展的标签语言MathML 是数学公式的标签语言CSS 是级联样式表JSON 是javascript对象标记SQL 是结构化数据的查询语言GLSL ES 是 WebGL 着色器语言它们的共同特征是有顺序结构,有嵌套的树形结构,没有分支结构,也没有循环结构。从用途上看,它们都是专用于特定的领域。第三代编程语言CC++JavaJavascriptPython它们的共同特征是...原创 2020-06-28 22:25:59 · 291 阅读 · 0 评论 -
创建虚拟生物第八部分
8未来工作未来工作的一个方向是实验适应度评估方法的新增加的类型。通过定义适应度函数,在执行更困难的任务或者甚至是多个任务时,度量成功的级别,更加复杂的行为可能进化出来。适应度能够包括一个行为被实现时的效率。例如一个适应度的量度可能是走过的距离 除以移动了那段距离所消耗的能量的值。另外,适应度能够被定义以一种更具有生物学的现实性的方式。通过在一个物理模拟的不断改变的世界中,允许虚拟...翻译 2020-04-26 21:38:01 · 223 阅读 · 0 评论