下面的结论是对比我和arath的两个项目组得出的一个初步结论
开发语言的逻辑边界越明显,新手在用这种语言做项目时,越不容易失去控制。
最近我和arath都有个类似的项目,就是需要写一个比较高性能的服务器程序。为此我们讨论了很多次。arath的项目用C,我的项目用C++.
其中有一次,arath提到了项目中的基础设计有些被改乱了。排除了各种人为因素之外,C代码明显比C++代码更加容易随意编写,而不易检查。C并不存在某种物理或者逻辑上的设计边界,C++多了个class的概念。且抛开是否因为OO,明显的C++可以用class来做出最简单设计边界。
新手,模仿性强且极易把代码写飞,能够很快的离开原本设计。C++ Class 划定了一个基本模块,可以让新手有模仿之处。但是C++ Class的边界存在让其多了一个参考坐标,使其不易跑飞。
C++ Class 一般都是一个h,一个cpp配对,当需要在A类中添加代码,只能在A.h和A.cpp中添加。如果某块代码归类归错,也是极易查找和调整的。C相对没有这样明显的逻辑和物理边界。如果没有对设计上有个清晰了解和没有抵抗随意编写代码的诱惑,时间长了,最终代码可想而知。
编写C++代码会比编写C代码更容易遇到各种问题,但是好在循序渐进。class,基本类库,框架,线程,DLL等等这些都是边界,这类边界的存在,新手可以一步一步的前进,每遇到一个边界,就需要停下来摸索和学习。class和class的交互,如何调用基本类库,如何使用框架,线程间怎么通讯,如何编写和调用DLL。
C#,JAVA则明显比C++对于新手更加友好。强类型,不能多继承,单文件代码,这些规则比C++更加让新手更加容易理解和模仿。Ruby的Class边界极易打破,而且还可以写在不同的文件中。还有Mixin功能。就这点而言,新手项目不应采用Ruby。
分享到:
- 2006-10-13 08:56
- 浏览 13416
- 评论(64)
- 论坛回复 / 浏览 (64 / 26137)
- 查看更多
相关推荐
在iOS应用开发中,"OC-添加新手引导页"是一个...总之,OC实现新手引导页主要是利用UIScrollView的特性,结合`contentSize`和`contentOffset`,以及手势识别和视图动画,为用户提供一个友好且引人入胜的初次使用体验。
4. **测试方法**:分为黑盒测试(只关注输入和输出,不考虑内部结构)和白盒测试(考虑代码结构和逻辑)。灰盒测试则是两者的结合,部分了解内部工作原理。 5. **测试用例设计**:是测试过程中的核心环节,需要明确...
- **硬件调试**:支持JTAG接口的边界扫描测试,以及Altera的ChipScope集成逻辑分析器,方便硬件调试。 四、学习资源 "Quartus-II-设计基础.pdf"这份教程应该涵盖了Quartus II的基本操作和设计流程,包括项目设置、...
此外,测试是确保功能正常运行的重要步骤,包括边界条件测试和异常情况处理。 5. **用户体验**:除了技术实现,还需考虑用户体验。例如,提示信息应清晰易懂,错误处理要友好,操作反馈要及时。在功能5中,未选中...
此外,它还支持与其他编程语言(如C/C++、Python等)的集成,从而扩展了自身的功能边界。这种高度的可定制性和灵活性使得LabVIEW成为解决复杂问题的理想选择。 #### 七、易于学习和使用 对于新手来说,LabVIEW的...
它的语法简洁明了,对新手友好,且功能强大,是学习游戏编程的理想选择。 在WinForm环境中开发贪吃蛇游戏,我们需要利用C#中的Windows Forms库来构建用户界面。WinForm提供了丰富的控件和事件处理机制,使得创建...
这些工具对于初学者来说非常友好,因为它们提供了丰富的文档和社区支持。通过这个项目,你可以学习到如何创建游戏对象、管理时间、处理用户输入以及应用基本的动画效果。 在解决游戏中的bug时,初学者会接触到调试...
五子棋源码是一种编程实现的棋类游戏,主要由计算机科学中的算法和数据结构构成。五子棋,又称连珠、朱墨盘,是一种双人对弈的策略游戏,目标是...通过分析和学习这样的源码,开发者可以深入理解游戏逻辑和计算机思维。
例如,用户界面需要清晰地展示棋盘和棋子,同时提供友好的操作反馈;游戏规则解释可以帮助新手理解游戏;悔棋功能则需要记录每一步棋的状态;游戏结束的判定可能包括将死、困毙等多种情况;AI对弈模式则可能涉及到...
在这个Java版本的贪吃蛇游戏中,开发者采用Java语言进行编程,这使得游戏可以跨平台运行,并且对新手友好,适合学习Java开发的初学者作为实践项目。 首先,我们要了解Java的基础知识。Java是一种面向对象的编程语言...
Java以其跨平台性、丰富的类库和强大的性能,成为许多游戏开发者的首选语言。在这个俄罗斯方块Demo中,我们可能使用了Java Swing或JavaFX库来创建图形用户界面(GUI),它们提供了丰富的组件和方法,使得开发者可以...
6. **错误处理和调试**:在编写程序时,要充分考虑边界条件和异常情况,使用调试器如VC6.0自带的调试器来检查程序运行过程中的错误,确保程序的健壮性。 7. **代码优化**:虽然五子棋逻辑相对简单,但优化代码以...
标签“C# 扫雷游戏(注释详细 适合初学者)”与标题一致,再次确认了该项目的主要特性:C#语言实现、详细的注释以及面向初学者的友好性。这表明项目开发者在设计时充分考虑到了教学和学习的需求,确保新手能从中受益...
【描述】"这是用JavaScript写的飞机大战,一个比较简单的,图片资源都在压缩包里,注释也写了,大伙应该能看懂" 提示了游戏的实现基础和学习友好性。开发者使用JavaScript编写了一个简化的飞机大战游戏,这涉及到...
为了实现游戏逻辑,开发者需要编写一系列函数,包括初始化游戏、处理用户输入、更新蛇的位置、检测碰撞(包括蛇自撞和边界碰撞)、生成食物以及检查游戏结束条件等。在C++中,这些功能可以通过面向对象的设计实现,...
2. **碰撞检测**:Godot提供了多种碰撞形状,如CircleShape2D和PolygonShape2D,用于定义游戏对象的物理边界。这些形状与CollisionObject2D节点结合使用,可以检测游戏中的碰撞事件,从而实现障碍物的交互和平台间的...
它的主要目标是提供一个用户友好、高效且功能丰富的平台,以便于编写、测试和调试PL/SQL代码,这是Oracle数据库的主要编程语言。这款工具以其易用性、代码质量和生产力提升而受到广泛赞誉。 在PLSQL Developer中,...