
编程是一项系统而繁琐的工作,不仅需要程序员有一定的基础,还需要良好的编程习惯和风格。良好的编程习惯和风格不仅可以使程序代码更容易阅读和修改,更重要的是可以使程序结构更加合理,有助于提高程序的执行效率。下面是我编程的一些经验,供大家参考。
设计顺序
我们刚开始学编程的时候,要写一个程序,总是先做一些思路,然后边写代码边调试。这种方法一般只适用于非常小的程序。根据软件工程的特点,按照这种方法设计所有的程序是不合理的。
其实设计过程就像我们盖高楼一样。首先,我们要设计图纸,然后开始施工。因此,对于个人编写程序,应该遵循以下步骤:
1问题分析:通过编程的方式系统地分析我们想要解决的问题,了解程序是做什么的,想要达到什么样的效果。
2结构设计:即设计程序的整体框架,设计我们需要使用的模块,绘制流程图。
3用户界面设计:在这里,我们应该设计一个输入输出界面,用于与用户进行交互。
4代码设计:在这一步,我们将编写代码。
5调试:处理程序中正在发生或可能发生的各种错误。
6维护:一般来说,维护就是升级程序,修改原来的错误。
对于上面的步骤,我想大部分人都认为代码设计是最重要的,但是如果程序的结构还没有明确,我们写代码的时候就会出现混乱。一个程序的性能主要取决于它的合理结构。因此,在程序设计中,我们应该尽可能地注意这一点,从而使我们的程序更加完善。
设计环境
好的编程环境可以防止我们写程序时各种资源的无序,避免资源的流失。建议您在存放源程序的目录下建立一个“程序”文件夹;然后用你要写的程序名和版本名创建一个文件夹,用来存放整个源程序和各种资源;最后分别建立几个文件夹,“文档”:用来存放程序文档,包括流程图等。“资源”:用于存储、声音、**等资源;“调试”:用于存储调试程序。“版本”:用于存储最终版本的程序。
例如,如果我们要制作一个名为“english”的10版英语学习软件,那么我们的编程环境中应该存在以下文件夹:
[drive]:\\\\程序\ \英语1 \ \调试\ \
[驱动器]:\\\\程序\ \英语1 \ \文档\ \
[驱动器]:\\\\程序\ \英语1 \ \资源\ \
[驱动器]:\\\\程序\ \英语1 \ \发布\ \
另外,最好建立一个专门的文件夹来存放各种模块,这样代码就可以重用了。这样我们每次写程序都不用重写所有模块,编程速度会大大提高。
设计技巧
如果代码写得乱七八糟,程序就不容易被阅读和修改。因此,编写代码时应注意以下几点:
(1)注释:虽然写注释需要一定的时间,但是在阅读和修改代码的时候会节省很多时间。所以建议你在定义函数的时候,把函数写在函数的第一行,把函数的参数解释在一行,在每个变量的定义语句后面给函数加注释。
(2)变量和函数的命名:每个程序都会用到大量的变量和函数。如果随意给变量和函数命名,每次使用时都必须在变量或函数的定义语句中找出变量和函数的数据类型和名称,随意命名会导致变量和函数的重复定义。
建议您使用匈牙利命名法。方法是:每个变量或函数的开头以其数据类型的缩写命名,然后加上代表这个变量或函数的功能的英文单词缩写,形成变量或函数的名称。比如定义整数变量count进行计数,其定义语句为C \ \ c++:inti count;基本:dim icount为整数这种定义既能有效避免变量和函数的混淆和重复定义,又能保证数据类型的匹配。
(3)控件命名:如果在windows下编程,可能会用到很多控件。如果不严格管理控件名,会造成很大程度的混乱。因此,建议在给控件命名时,使用控件类型的缩写和表示该控件功能的英文单词的缩写来构成该控件的名称。例如,如果要命名一个要删除的按钮控件,控件名称可以命名为cmddel。
不是每个人都能成为顶尖的程序员,但我们都在程序员的道路上不断进步,追求更完美、更专业的程序。你不妨改革一下你的程序,你会从中感受到很多好处。
题主可能不太懂软件开发,是这样的,能否开发软件和开不开源是没有直接关系的。微软提供了很好的文档库MSDN,里面有详细的接口功能、入参和返回值的介绍,程序员只需要根据这些文档就可以编写相应的软件了。
举个生活中的例子,我们去办身份z,只需要提供一些必要的材料,例如户口簿就可以了,然后等待领证就好。这里还可以多说一句,办身份z一般不是立即就可以拿到手的,往往会给一个回执单,后续再通知我们去拿证件。
这里必要的材料就是入参;公安局户口办理就是功能;公安内部具体的办理流程就是功能(叫接口更合适)的内部实现;回执就是受理结果;最后的身份z是最终结果。
这还相当于软件中的异步调用过程——先受理后回调。
最后,这只是给小白的一个简单的例子,软件开发者无需纠结其中不准确的地方。
基于windows开发并不需要开源。API函数和应用框架就是开发人员与 *** 作系统的协调,绝大部分底层工作是由编程软件来做的,软件开发人只是需要关注应用建模和人机界面等。
开源对软件开发人员来说并没有直接意义。 *** 作系统得出现就是为了减少开发人员直接与硬件打交道,共享系统调用和服务,比如消息机制,从这个角度看,开源并没有给开发人员带来好处。
一个好的编译系统才是开发人员最需要的,连大部分API都包装起来,可以认为开发人员面对的是一个虚拟机。一个虚拟机由硬件 *** 作系统和编译器组成。
比如要在屏幕上显示哈哈哈,在Delphi中写showmessage(“”哈哈哈”)。
因为有地球最强IDEvs,并且他能连接到已知宇宙最强的产品文档MSDN,不会用还有Technet护航。几十年不间断的投入,形成自己的风格,即便没用过也能猜到个7788。想跟它竞争又没法投入那么多,你说还能怎么办嘛
把win比喻成一辆车,你不知道车辆的内部构造是怎么样的,但是你知道怎么 *** 作就行了,你知道怎么 *** 作不就可以让车带着你去你想去的地方吗
感谢邀约,你的提问题两者之间没有任何关系,系统是否开源和软件一点关系都没,就好比我们使用的苹果手机一样,苹果系统不开源,但是其使用人数多,其市场价值就越大,自然就有更多人的愿意在这个平台上开发软件,以下是我针对这个问题的思考,仅供参考:
首先弄明白计算机系统和软件的关系
计算机系统软件包含系统软件和应用软件,没有装任何软件的计算机称为裸机,裸机是很难被人们使用的,软件是计算机系统必不可少的部分。系统软件是直接运行在裸机上的系统软件,又是其他软件能够运行的基础,下图表明计算机硬件、软件之间的关系
*** 作系统的生态问题,造就了开发人员为其开发软件
Windows桌面 *** 作系统从85年发布的Microsoft-DOS到现在的windows10,有数据显示,Windows仍然雄踞9159%,其次是Mac占627%,最后的Linux占214%,在我国的使用率更是高达了95%。
为什么在我国有如此高的比例呢,主要原因市场初期,微软采取了纵容盗版的态度,让我们人人都能免费使用,造就身边很多人进行使用。除了这个原因,其系统本身简单易用,很容易上手,不需要花太多的时间就会学会。还有一个重要的原因,微软推出的office办公软件,在Windows中的使用体验最好,我们日常工作生活中已经产生了一种依赖,习惯养成了,就自然很难摆脱windows系统了。
使用的人多了,其商业价值也越大,就好比使用微信的人多了,好多人和企业在上面做公众号,头条号和抖音火了,好多人在上面做自媒体的道理一样,流量就是王道。windows的生态也是如此,因此很多公司和开发人员很乐意针对Windows系统开发软件,不仅普通的C端用户需要,不少企业和机关单位用的也是windows系统,需要大量的定制软件,这个是刚需的需求,也造就了越来越多的公司投入到windows软件的开发。
小节
今天的分享就和大家聊到这里,由于我们已经对windows产生了严重的依赖性,依赖性约束强,越是很难摆脱,如果哪一天微软的windows系统不让我们用了,对我们的影响是难以想象的,期待这我们有一天也能做出生态强大好用的 *** 作系统。
感谢大家阅读,如果你有什么好的想法欢迎到留言区分享交流,如果你赞同我的回答,欢迎给个赞和转发,谢谢支持。
Windows是微内核架构,各模块之间由消息机制通讯,模块之间藕合度相对较低,可以封装成独立的API接口给应用程序调用,而不必开源核心代码。因为API返回错误,问题就在这个模块上,不会牵扯到其它模块,即使不开源也容易找到问题。
宏内核的Linux就不一样了,模块之间本身就是靠API调用,外层调用的API返回了错误,往往可能是上一层API返回的,那就要去分析它的源码才能找得到问题。
你喂他他需要的数据,他返回你要的东西。。。支付宝的功能也是这样调用。
电视机里有成千上万个元件,全部装在机壳里,看不到也可能不懂原理(不开源),但几乎大家都会用,为什么呢?因为电视机有按键,有遥控器(API接口)。不需要看里面,能控制它就行。
因为windows为程序开发人员开放了很多封装的模块接口,方便程序去调用,这些接口就在msdn都能查到,称之为api函数接口,windows封装了很多库文件(dll库),分别对应实现不同的功能,程序员开发软件的时候去调用这些dll库文件里对应的api函数就可以了。
其实windows是个黑盒,但是对外暴漏了一些接口,这些接口有对应的说明文档,分别描述了接口的类型,接口的用途,接口各个参数的类型。有些文档也会附上一些例子,为你展示怎么使用,这样就很好的解决了程序员为其开发应用的问题。
如下面几张图就是windowsapi的描述
以上就是关于如何自己编写一个程序全部的内容,包括:如何自己编写一个程序、Windows既然不开源,那程序员是怎么为它开发支持软件的、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)