编程好的思路。
我想知道程序员有什么好的方法编写代码,能用较少的时间做较多的活,我在长时间编程当中也积累了一些,也提供给大家,但是我想分享不同人的思想。我的方法有(1)、将程序细化,将相...
我想知道程序员有什么好的方法编写代码,能用较少的时间做较多的活,我在长时间编程当中也积累了一些,也提供给大家,但是我想分享不同人的思想。
我的方法有
(1)、将程序细化,将相似代码或相同代码用一段代码完成。这样可以使程序尽量的短小,利于调试,其中标注。说明必须写。
(2)、将程序模块化,再细化的基础上做模块化的程序,让一个模块有一个功能,我们再次编写同样的程序时可以调用不同的模块。
(3)、如果反复用的程序,可以设计一些通用程序段或功能控件,载入脚本文件就可以适应相应的功能。
(4)、用现成的程序,打上包或做成dll。
(5)、使用软件自带的一些功能或函数,如善用利用指针和循环,将相似的东西同类化。
我想得到除上面以外的好想法,如果有好想法,可以加分到300,并且会长时间有这类提问。
C++ 我只想是探讨,然后开阔思路,不要怕回答后被别人笑话,高手是在错误中成长的。
下面是总结的经验。
1、程序细化,将细化后的相似代码和重复代码合并,利于组建其他程序。
2、程序模块化,利于整体调用。
3、分类程序段,使程序思路清晰。
4、合并相同和相似的代码,编写成一个函数,用到此功能调用此函数。
5、编写通用程序,载入不同的脚本实现不同的功能。
6、编写程序工具,不同功能的模块可以用程序工具来编辑,比用代码编辑方便。
7、用通用的现成功能库来提高工作效率。
8、持续优化重构和改进,提高代码质量。(lens23 提出的)
9、建立通用数学模型,使一类事物用一个统一模型表示。
10、预留一些接口,提高程序的可扩展性。(chm51666提出的)
11、添加一些注释、流程图、说明文档使思路清晰。
谢谢各位朋友的回答,但是最佳答案只能给一个人,也许每个人心中都认为自己的答案是最佳答案,甚至应该把编程放在哪个重要的角度上,但是我想说的是应该综合考虑。每个人的工作性质不一样,侧重点也就不一样,所要的答案当然也就不一样。因此分只能给一个人,我的问题后续还会提出。请有思想的人继续回答。 展开
我的方法有
(1)、将程序细化,将相似代码或相同代码用一段代码完成。这样可以使程序尽量的短小,利于调试,其中标注。说明必须写。
(2)、将程序模块化,再细化的基础上做模块化的程序,让一个模块有一个功能,我们再次编写同样的程序时可以调用不同的模块。
(3)、如果反复用的程序,可以设计一些通用程序段或功能控件,载入脚本文件就可以适应相应的功能。
(4)、用现成的程序,打上包或做成dll。
(5)、使用软件自带的一些功能或函数,如善用利用指针和循环,将相似的东西同类化。
我想得到除上面以外的好想法,如果有好想法,可以加分到300,并且会长时间有这类提问。
C++ 我只想是探讨,然后开阔思路,不要怕回答后被别人笑话,高手是在错误中成长的。
下面是总结的经验。
1、程序细化,将细化后的相似代码和重复代码合并,利于组建其他程序。
2、程序模块化,利于整体调用。
3、分类程序段,使程序思路清晰。
4、合并相同和相似的代码,编写成一个函数,用到此功能调用此函数。
5、编写通用程序,载入不同的脚本实现不同的功能。
6、编写程序工具,不同功能的模块可以用程序工具来编辑,比用代码编辑方便。
7、用通用的现成功能库来提高工作效率。
8、持续优化重构和改进,提高代码质量。(lens23 提出的)
9、建立通用数学模型,使一类事物用一个统一模型表示。
10、预留一些接口,提高程序的可扩展性。(chm51666提出的)
11、添加一些注释、流程图、说明文档使思路清晰。
谢谢各位朋友的回答,但是最佳答案只能给一个人,也许每个人心中都认为自己的答案是最佳答案,甚至应该把编程放在哪个重要的角度上,但是我想说的是应该综合考虑。每个人的工作性质不一样,侧重点也就不一样,所要的答案当然也就不一样。因此分只能给一个人,我的问题后续还会提出。请有思想的人继续回答。 展开
10个回答
展开全部
我认为编程,重要的不是如何华丽的代码,而是能够将用户需求转化为机器语言的能力
你的很多思想,是刚开始做程序员的普遍想法,开始思考通过模块化设计能够更省力,更快捷的完成工作,程序运行效率还要高。
如果你在大软件公司工作过,就不会有这种困惑了。因为对于具有一定规模的软件公司,已经在相当的时间内积累起很丰富的模块和库资源,程序员们只需要根据项目的不同象选择自助餐一样给拼接到一起,就有了基本框架。
最重要的还是做好用户需求到需求说明,再到系统框架设计这个工作,会少走很多弯路。
细化到编写程序,我觉得很重要的一点就是要求公司里面的程序员要有绝对规范的编程习惯,不然在团队协作的时候会出很多问题,做出来的基础库也经不起时间的考验。
还有就是你说的模块化的东西不是万能的,和你经常从事的项目领域密切相关,你用着很顺手,别人可能用不了。比如你是做信息系统的,那么一个好的查询分析模块很多地方都能用,用户信息管理就要根据复杂程度做几套,比如能够定期更换密码的,比如权限是要细化到列的,比如只是一个简单的用户密码。根据项目的不同选用。
有些人鼓吹自动化编程,利用商业化的系统模板进行配置。我认为对于企业应用还是可以的,但是对于软件开发就不可取了。因为提供模板的单位水平如何你并不知道,里面是否存在大量bug你也不清楚,只是演示做的漂亮。一旦你用了这个东西,在你的项目中出现问题,你debug是查不到具体原因的,苦果只能自己吃,这是个建议,有点离题,但是怕你思路到了一定程度就推崇这种方法。
最后一点,大部分的项目都是需要数据库作为后台支持的,一定要注意处理好数据库设计的问题,不然很容易因为库设计的不合理造成程序复杂,或者是在使用一段时间后效率严重降低,造成程序重新返工,就说这么多,希望你能有所收获
你的很多思想,是刚开始做程序员的普遍想法,开始思考通过模块化设计能够更省力,更快捷的完成工作,程序运行效率还要高。
如果你在大软件公司工作过,就不会有这种困惑了。因为对于具有一定规模的软件公司,已经在相当的时间内积累起很丰富的模块和库资源,程序员们只需要根据项目的不同象选择自助餐一样给拼接到一起,就有了基本框架。
最重要的还是做好用户需求到需求说明,再到系统框架设计这个工作,会少走很多弯路。
细化到编写程序,我觉得很重要的一点就是要求公司里面的程序员要有绝对规范的编程习惯,不然在团队协作的时候会出很多问题,做出来的基础库也经不起时间的考验。
还有就是你说的模块化的东西不是万能的,和你经常从事的项目领域密切相关,你用着很顺手,别人可能用不了。比如你是做信息系统的,那么一个好的查询分析模块很多地方都能用,用户信息管理就要根据复杂程度做几套,比如能够定期更换密码的,比如权限是要细化到列的,比如只是一个简单的用户密码。根据项目的不同选用。
有些人鼓吹自动化编程,利用商业化的系统模板进行配置。我认为对于企业应用还是可以的,但是对于软件开发就不可取了。因为提供模板的单位水平如何你并不知道,里面是否存在大量bug你也不清楚,只是演示做的漂亮。一旦你用了这个东西,在你的项目中出现问题,你debug是查不到具体原因的,苦果只能自己吃,这是个建议,有点离题,但是怕你思路到了一定程度就推崇这种方法。
最后一点,大部分的项目都是需要数据库作为后台支持的,一定要注意处理好数据库设计的问题,不然很容易因为库设计的不合理造成程序复杂,或者是在使用一段时间后效率严重降低,造成程序重新返工,就说这么多,希望你能有所收获
追问
谢谢你的回答,你的建议很有价值,确实编程规范比节省时间重要的多,模块化的东西像一个黑箱子一样,往往是纯在很多bug但是我们应该是取其精髓、弃其糟粕。模块的东西有他的好一面也有他的坏的一面,可能你在编程时不知不觉的已经用到了模块。我们看待问题应该综合每一个角度,而不是考虑顶层不考虑底层,考虑集体合作,不考虑效率。
追答
可能我说的不够清楚。
好像是从2004年开始,就有一股风气,叫什么代码生成器或者是开发系统之类的名词,记不清楚了。很多软件公司制作类似的产品推销给其他软件公司,作用就是用这个自动化生成项目框架或者是进行C/S程序到B/S程序的转换。这种东西流行了一段时间,很是害了一大批人。就是你说的黑盒,不知道里面是怎么弄得,出了问题大家互相推诿。
不知道你是否接触过软件成熟度模型CMM,这里面就将软件过程的黑盒尽量打破,规范开发过程,我觉得理解CMM模型比研究哪个函数行数更少要有意义。
模块一定要尽量保留和充实,如果没有模块化编程,一方面效率不能提升,一方面不能进行团队合作,一方面总是重复错误,增加测试难度,还有一方面就是出了问题更麻烦。
但是我只建议本公司沉淀好的模块,并且有很好的传承和开发文档,像自助餐一样告诉你这是什么,怎么吃。绝不建议出去购买类似的产品。
我始终认为,软件开发不是单打独斗的事情,也许一个人够出色,能够独立完成所有的代码编写,先不论时间上比团队要长很多,只说程序的BUG,好的程序员很难成为好的测试工程师,尤其是测试自己编写的程序,因为他已经知道程序流程,就很难编写测试用例了。
又说多了,选你需要的看吧,软件工程说不完
2011-06-21
展开全部
编程好的思路。
何学好VB
序:不要老是想着谁“最有钱途”,这些都不是我们应当考虑的,我们要考虑的是怎样才能真正的精通VB。如果成为了VB的专家,应当很容易赚到钱的。VB程序员为什么工资低,不是VB不行,是因为大部份VB程序员不行,他们只懂得用控件,而没有什么编程的思想。而VB的初学都只会用控件和简单的API就说精通VB了,显然影响的整个VB在程序界的地位,这些人显然不能称为程序员的,只能相当于会使用VB了,就像会Word一样。如果VB程序员都懂的数据结构,UML等,就完全是另外一回事了。有认为VB功能弱,请注意:仙剑95版就是用VB4做的,还有DirectX SDK7中有个一很好玩的3D游戏,声音和动画都非常好,也是用VB写的。所以VB能做很多东西,只要你想去做。
(1)VB不只是数据库和报表。不要以为VB就是数据库和报表,这只是VB强大功能的一小部份。如果这此都搞不清,还是好好的看一下相关的书籍,比在这里问问题有用多了。我以前没有学过数据库,只是有些编程的思路,后来学数据库就非常容易了。我做报表一般用RichTextBox或是From来做,一般都能做的很好,也不用去考虑什么水晶报表了。
(2)不要迷信于API。API能做很多东西,但有些东西在VB里面的函数中就有,API只是VB对WindowsSDK的封装而已。如果想学好API,建议学习SDK。如果VB本身就能很好的支持这个功能,何必还要用API呢。
(3)不要什么都想着控件。如果做程序都想着第三方控件的话,代价是很高的,不仅程序大,安全性也低了很多。其实VB本身带的控件已经完全够用了。
(4)认认真真的把MSDN中关于VB的内容好好看一看,特别是函数和语句,很有用的。
(5)遇到问题不要直接来这里问,自己好好想一想,试着解决这个问题,这虽然在时间上慢了,可是在自身的提高上却有很大的帮助。
(6)没事的时候,多研究些语言上的东西,如数据结构和算法,不要老是想着什么花哨的东西。这对以后的提高非常有帮助。
如何学好VB程序设计
1,学习程序设计的基本要求
2,Vb的功能及特点
3,学习VB程序设计的方法
对学习者知识的要求:
首先,学习程序设计要具备一定的数学基础.计算机与数学有很大的联系,综观计算机历史,计算机的数学模型(图灵机,由Alan Turing提出)和体系结构(由John Von Neuman提出)等都是由数学家提出的,最早的计算机也是为数值计算而设计的.因此,要学习好计算机就要有一定的数学基础.不过对于初学者来说,在数学基础方面的要求并不是很高,从我个人的角度来看,有高中数学水平就差不多了.
如何学好VB程序设计
学习程序设计基本要求
对学习者知识的要求:
其次,学习程序设计要有一定的逻辑思维能力.逻辑思维需要长时间的锻炼,如果你觉得自己在逻辑思维能力上有不足,也没有关系,因为编写程序本身也是对逻辑思维的锻炼.初学程序设计应具备的逻辑基础可以从高中数学中学到.
如何学好VB程序设计
学习程序设计基本要求
熟悉Visual Basic操作环境与设计工具,能设计应用程序界面.
掌握,理解面向对象程序设计基本概念
掌握VB语言的基础知识,程序设计的方法,
能阅读一般难的程序;
能应用编写一些简单程序;
具有用Visual Basic开发Windows环境下应用程序的能力和阅读分析一般难度的VB程序的能力.
如何学好VB程序设计
VB程序设计的基本要求
Visual Basic 简介
Visual Basic 是Microsoft 公司开发......
何学好VB
序:不要老是想着谁“最有钱途”,这些都不是我们应当考虑的,我们要考虑的是怎样才能真正的精通VB。如果成为了VB的专家,应当很容易赚到钱的。VB程序员为什么工资低,不是VB不行,是因为大部份VB程序员不行,他们只懂得用控件,而没有什么编程的思想。而VB的初学都只会用控件和简单的API就说精通VB了,显然影响的整个VB在程序界的地位,这些人显然不能称为程序员的,只能相当于会使用VB了,就像会Word一样。如果VB程序员都懂的数据结构,UML等,就完全是另外一回事了。有认为VB功能弱,请注意:仙剑95版就是用VB4做的,还有DirectX SDK7中有个一很好玩的3D游戏,声音和动画都非常好,也是用VB写的。所以VB能做很多东西,只要你想去做。
(1)VB不只是数据库和报表。不要以为VB就是数据库和报表,这只是VB强大功能的一小部份。如果这此都搞不清,还是好好的看一下相关的书籍,比在这里问问题有用多了。我以前没有学过数据库,只是有些编程的思路,后来学数据库就非常容易了。我做报表一般用RichTextBox或是From来做,一般都能做的很好,也不用去考虑什么水晶报表了。
(2)不要迷信于API。API能做很多东西,但有些东西在VB里面的函数中就有,API只是VB对WindowsSDK的封装而已。如果想学好API,建议学习SDK。如果VB本身就能很好的支持这个功能,何必还要用API呢。
(3)不要什么都想着控件。如果做程序都想着第三方控件的话,代价是很高的,不仅程序大,安全性也低了很多。其实VB本身带的控件已经完全够用了。
(4)认认真真的把MSDN中关于VB的内容好好看一看,特别是函数和语句,很有用的。
(5)遇到问题不要直接来这里问,自己好好想一想,试着解决这个问题,这虽然在时间上慢了,可是在自身的提高上却有很大的帮助。
(6)没事的时候,多研究些语言上的东西,如数据结构和算法,不要老是想着什么花哨的东西。这对以后的提高非常有帮助。
如何学好VB程序设计
1,学习程序设计的基本要求
2,Vb的功能及特点
3,学习VB程序设计的方法
对学习者知识的要求:
首先,学习程序设计要具备一定的数学基础.计算机与数学有很大的联系,综观计算机历史,计算机的数学模型(图灵机,由Alan Turing提出)和体系结构(由John Von Neuman提出)等都是由数学家提出的,最早的计算机也是为数值计算而设计的.因此,要学习好计算机就要有一定的数学基础.不过对于初学者来说,在数学基础方面的要求并不是很高,从我个人的角度来看,有高中数学水平就差不多了.
如何学好VB程序设计
学习程序设计基本要求
对学习者知识的要求:
其次,学习程序设计要有一定的逻辑思维能力.逻辑思维需要长时间的锻炼,如果你觉得自己在逻辑思维能力上有不足,也没有关系,因为编写程序本身也是对逻辑思维的锻炼.初学程序设计应具备的逻辑基础可以从高中数学中学到.
如何学好VB程序设计
学习程序设计基本要求
熟悉Visual Basic操作环境与设计工具,能设计应用程序界面.
掌握,理解面向对象程序设计基本概念
掌握VB语言的基础知识,程序设计的方法,
能阅读一般难的程序;
能应用编写一些简单程序;
具有用Visual Basic开发Windows环境下应用程序的能力和阅读分析一般难度的VB程序的能力.
如何学好VB程序设计
VB程序设计的基本要求
Visual Basic 简介
Visual Basic 是Microsoft 公司开发......
追问
粘贴别人的,不对路
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你说的都是关于编程思想的,参考所谓的23种设计模式吧,编程的基本思想多数都在里面了,不用自己总结。另外,就是持续优化重构和改进,这是最重要的。
较少的时间做较多的事情,需要考虑,这里的时间包不包括调试时间,测试时间,改bug时间,返工时间。。。
如果包括,那么可做的事情还有更详细的调试信息,更多的自动化测试脚本,项目过程回顾等等。
较少的时间做较多的事情,需要考虑,这里的时间包不包括调试时间,测试时间,改bug时间,返工时间。。。
如果包括,那么可做的事情还有更详细的调试信息,更多的自动化测试脚本,项目过程回顾等等。
追问
“持续优化重构和改进”,想法比较好。这个我需要。如果在21天内没有人提出比你优越的想法,我给你加分。
追答
提高效率的方式还有:
1.比如基于AOP来实现功能代码和辅助代码的解耦,提高可读性、可重用性和可维护性
2.选择合适的编译器,优化编译,例如:分布式编译,提高编译速度
3.构建模拟器,实现快速业务仿真,帮助程序员分析、理解、调试。。。
4.针对不同项目内容,选择合适的编程语言
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2011-06-27
展开全部
看过你写的,相信你也有一定量编程的经验了,你说的这个好字,比较难解释
我来分享一下我的经验,权当交流
从浅入深
1 首先是在熟悉一门开发语言的基础上,做量的积累,有了几万行编码经验,再去看各种编程思想之类,会更有感触 ,才能辨出优劣
2 试着在某个开源框架的基础上,重写其重要部分,比如log跟异常处理,应该有多少种
异常,多少种log ,怎样封装使其适合客户需要
3 熟悉了各种借口各种框架后,试着做设计,利用UML,从上到下, 让不懂业务不懂开发的人
看了后 明白各个模块的功能,出问题应该去哪里找 ,利用v型开发的思想,开发不同阶段
与测试不同阶段相互对应
4 了解各种语言各种框架的优劣点,比如spring跟struts相比较,容器数量与性能瓶颈的关系,
何时采用何种数据库 大概预算
5 思考如何控制成本,让刚毕业的学生也能编出可靠性可读性强的代码,
这时候要利用经验写属于你的队伍的编程基准, 怎样定义变量,怎样定义函数怎样写注释等。
做到除了核心逻辑代码及sql文,其他的都能自动生成的程度,可以参考各种程序生成工具,
好好利用vba知识,可以节省大量时间,提高生产效率
6 做好项目总结,这是你最宝贵的无形资产,
包括实现某功能用了多少时间,出现了什么风险,如何解决,代价多少
哪里是机械的编码,可不可以自动生成等等
开发思想有许多种,我的原则是用简单的代替复杂,
够用则好,不必超出。
代码不必华丽,只求易懂。
我来分享一下我的经验,权当交流
从浅入深
1 首先是在熟悉一门开发语言的基础上,做量的积累,有了几万行编码经验,再去看各种编程思想之类,会更有感触 ,才能辨出优劣
2 试着在某个开源框架的基础上,重写其重要部分,比如log跟异常处理,应该有多少种
异常,多少种log ,怎样封装使其适合客户需要
3 熟悉了各种借口各种框架后,试着做设计,利用UML,从上到下, 让不懂业务不懂开发的人
看了后 明白各个模块的功能,出问题应该去哪里找 ,利用v型开发的思想,开发不同阶段
与测试不同阶段相互对应
4 了解各种语言各种框架的优劣点,比如spring跟struts相比较,容器数量与性能瓶颈的关系,
何时采用何种数据库 大概预算
5 思考如何控制成本,让刚毕业的学生也能编出可靠性可读性强的代码,
这时候要利用经验写属于你的队伍的编程基准, 怎样定义变量,怎样定义函数怎样写注释等。
做到除了核心逻辑代码及sql文,其他的都能自动生成的程度,可以参考各种程序生成工具,
好好利用vba知识,可以节省大量时间,提高生产效率
6 做好项目总结,这是你最宝贵的无形资产,
包括实现某功能用了多少时间,出现了什么风险,如何解决,代价多少
哪里是机械的编码,可不可以自动生成等等
开发思想有许多种,我的原则是用简单的代替复杂,
够用则好,不必超出。
代码不必华丽,只求易懂。
追问
用方法和思想减少劳动量,提高工作效率。
将复杂问题简单化,使思路清晰。
和我的观点是完全一样的。你有很丰富的编程经验,至少要有5年工作经验。谢谢你“除了核心逻辑代码及sql文,其他的都能自动生成的程度”这个话意味着很多人能想到只有高水平的人才能做到,你能做到。
其实我把软件工作者(程序员、架构师)分成了5类。
1、服务、调试层面
2、技术层面
3、思想层面
4、架构层面
5、眼光、战略层面
追答
其实自动生成代码没有那么复杂,包括画面的代码,都是可以生成的。
最重要的好处是,通过设计来生成代码,可以保持设计跟代码的一致性
这样无论换了多少开发者,都能段时间在源代码上 完美无缝的修改 增删功能
但对于一个企业,这是点滴积累的,最好在新人培训阶段,
让他们接触vba,试着用excle写设计,然后用vba生成代码
刚开始工作时候,大量画面跳转的定义,全是手写在各种xml中,
难读易错不易维护,自动化以后,完全从痛苦中解脱 ,给我感触很深
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2011-06-21
展开全部
我觉得编程要养成总结和汇总的习惯,积累经验汇总成接口和自定义控件:
(1)、硬件接口类:包括串口通信、SOCKET通信和网卡通信等,不同的通信方式封装成不同的接口类,同时考虑不同程序语言的兼容性(不同编程语言是否都可以调用)
(2)、数据接口类:不同数据库访问的接口类,常用的oracle、sqlserver数据库
(3)、应用接口类:包括EXECL、WORD之间的数据交互
(4)、数据显示控件:可以显示不同的数据源,包括数组、表和XML文档等
(5)、通用查询控件:可以动态加载查询条件和动态加载查询列信息
(6)、文件操作控件:文件的创建、读、写、上传、下载等业务
(7)、视频控件:语音、录音、在线视频等功能
....................
我认为编程是一个长期积累总结的过程,可以活到老学到老,我们先可以考虑功能性汇总,后面可以结合业务汇总成业务性质的功能控件.
(1)、硬件接口类:包括串口通信、SOCKET通信和网卡通信等,不同的通信方式封装成不同的接口类,同时考虑不同程序语言的兼容性(不同编程语言是否都可以调用)
(2)、数据接口类:不同数据库访问的接口类,常用的oracle、sqlserver数据库
(3)、应用接口类:包括EXECL、WORD之间的数据交互
(4)、数据显示控件:可以显示不同的数据源,包括数组、表和XML文档等
(5)、通用查询控件:可以动态加载查询条件和动态加载查询列信息
(6)、文件操作控件:文件的创建、读、写、上传、下载等业务
(7)、视频控件:语音、录音、在线视频等功能
....................
我认为编程是一个长期积累总结的过程,可以活到老学到老,我们先可以考虑功能性汇总,后面可以结合业务汇总成业务性质的功能控件.
追问
工作好像是搞接口或是软硬件结合的工程人员。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询