几种常用编程语言的编程思想和方法
搞软件的人,编程语言的掌握是基本功,如果单单是学习语法,最慢的一周之内也应该可以搞定(个人认为 语法层面c++是最复杂的)。不幸的是,软件的本质是逻辑,解决方案的设计是要借助某种解决问题或编程的思想的。本文试图从抽象层面概括一点编程思想方面的东西。
一 c语言
1、相关概念:实模式、保护模式、调度、中断、调用栈、回调……基本上计算机科学里面的基本概念都会涉及
2、编程思想:结构化编程,即将解决方案描述为一个清晰的过程,这其中会涉及数据的建模(数据结构),接口的定义(函数),项目整体的组织结构(类似于中断向量表的注册、回调机制)。整个实现的过程就是这种流程从粗到细,步步细化的过程。
3、适合的领域:编译系统(很容易划分为 lexer、parser、walker等)、OS(很容易分成 cpu相关、内存相关、外设相关、进程相关)、DBMS等系统软件,或者是靠近
硬件的嵌入式系统(除了汇编就只能用c了)
二 c++
1、相关概念:虚函数、虚表、内联、多继承、const、泛型、模板(语言相关)……opencv、OGRE、3D渲染、GPU、mesh、skeleton、帧循环、DX、GUI、MFC、Qt、消息队列、非阻塞IO(应用领域相关)……
2、编程思想:过程化、oo、泛型、函数式 4种同时支持,实际中用OO比较多。
3、适合领域:多媒体、高性能网络服务器等较讲究效率的应用程序
三 java
1、相关概念:字节码、虚拟机、垃圾回收、接口、多线程、包、程序库、反射、框架、集成、组件、http、web、数据库、SSH、javaee……
2、编程思想:OO,即思考的角度是更面向问题域的对象,整个程序是对象不断细化,以及对象间交互的过程(调用相应的方法)。java的程序比较讲究扩展性和可维护性,一般会使用比较多的设计模式,常用的程序组织形式是MVC、监听者模式等。
3、适合领域:大部分没有硬实时要求的应用程序(可能正因为此,所以java程序员的数量是最多的)
四 Javascript
1、相关概念:闭包、对象、函数、CSS、DOM、Ajax、HTML5、node.js、V8……
2、编程思想:基于prototype的OO,以及基于闭包的函数式编程(后者用的更多)。常用代码组织形式:事件触发的回调机制(node.js与前端的区别是其自己定义、触发事件)、基于非阻塞异步IO的框架(node.js)
3、适合领域:web前端,
PS:有人觉得node.js适合做后端,我觉得不适合。node.js是比较通用的脚本引擎框架,我在实际进行开发时,发现node.js有这么几个问题:
1、没有原生的对于模块化(如java的包)的支持
2、JS是无类型语言,很难看懂代码逻辑(本质上逻辑是对数据的操作,没有类型的信息就很难看懂代码)
3、js的调试工具还是不够好用
4、没有统一的init的过程(很多的匿名闭包、以及无处不在的回调),很难捋清晰系统的组成和调用关系
5、完全异步触发的模式,使得代码很难读(打断点都不知道在哪打,即使打了断点也要想点办法来触发那个断点)
后话:或许js真的是太灵活了,实现功能的人觉得很舒服(怎么写都可以让计算机干活),但是维护的人和系统集成的人就很是郁闷了。
分享到:
相关推荐
* 几种常见80x86汇编器(HLA、MASM/TASM及Gas)的语法 * 汇编语言编程时常量的用法和数据的声明方法 三、80x86汇编语言的语法 80x86汇编语言的语法是本书的主要内容之一。其中包括: * 80x86汇编语言的基本语法 *...
《C++程序语言编程思想》是一本旨在帮助程序员掌握C++编程核心概念和技术的教程。C++是一种广泛应用的面向对象编程语言,它以其强大的性能、灵活性和丰富的库支持而受到青睐。通过学习C++的编程思想,开发者可以深入...
C语言编程思想和技术是计算机科学中的基础且至关重要的部分,尤其对于初学者和有经验的开发者来说,理解和掌握这些概念都是必要的。C语言以其高效、灵活性和广泛的应用领域而闻名,是许多操作系统、嵌入式系统以及...
《C++编程思想》是Bjarne Stroustrup所著的一部经典C++教程,它以其深入浅出的讲解和全面覆盖C++特性的内容深受程序员喜爱。这本书旨在帮助学习者理解C++语言的设计理念,掌握面向对象编程的精髓,并提供实际编程中...
Go语言,作为一门现代编程语言,自2007年由Google公司的Robert Griesemer、Ken Thompson和Rob Pike三位大牛设计发明以来,已经迅速成长为开发人员喜爱的语言。Go语言之所以被称为网络和多核时代的C语言,是因为它从...
C++编程思想是深入理解和应用C++这门高级编程语言的关键。C++,由Bjarne Stroustrup在1979年设计开发,是一种通用的、面向对象的编程语言,它继承了C语言的强大功能,并引入了面向对象的编程理念,同时也支持泛型...
9. **编程语言特性**:可能会涵盖几种主流编程语言的关键特性,比如C++的模板、Java的反射、Python的动态特性等。 10. **交互式编程与脚本**:介绍如何使用解释型语言进行快速开发,如Shell脚本、Python脚本等。 ...
VB编程语言和函数手册作为一本实用的VB教程,它包含了以下几类知识点: 1. VB编程基础:介绍VB的基本语法,包括变量声明、数据类型、控制结构(如if语句、for循环、while循环等)、数组和字符串处理、过程和函数的...
C#编程思想是微软公司为.NET框架开发的一种现代化、类型安全的面向对象的编程语言。自2000年发布以来,C#已经发展成为软件开发领域的主流语言之一,广泛应用于桌面应用、游戏开发、移动应用以及Web服务等多个领域。...
这个压缩包包含了几个在Java编程中常见的关联库,这些库对于理解和实践Java编程思想有着重要作用。 首先,我们来看看`net.mindview.util`包。这个包来自于《Java编程思想》一书的配套资源,它包含了一些实用工具类...
这本书深入浅出地介绍了Java编程语言的核心概念和技术,为读者提供了全面而深刻的Java理解。中文版的清晰度高,使得阅读更加轻松,适合初学者以及有一定经验的程序员进一步提升。 在Java编程中,以下几个核心知识点...
《C++编程思想》是一本深受程序员喜爱的经典教程,它深入浅出地介绍了C++这一强大的编程语言。这本书不仅适合初学者,也对有经验的程序员有着宝贵的指导价值。通过阅读这本书,读者可以全面理解C++的核心概念,掌握...
继承是一种常见的面向对象编程(OOP)特性,允许一个类(子类)从另一个类(父类)继承属性和方法。然而,过度依赖继承可能会导致代码的紧密耦合,破坏封装性,从而增加维护难度。姚钢强提醒开发者,应更倾向于使用...
从给定的文件信息中,我们可以提炼出关于C++编程思想和面向对象编程(OOP)的几个关键知识点,这些知识点对于初学者理解和掌握C++编程具有重要意义。 ### 面向对象编程(OOP)的基本概念 1. **对象**:在OOP中,...
《C++编程思想》是Bjarne Stroustrup所著的经典C++教程,它深入浅出地介绍了C++语言的核心概念和技术。这本书分为多个章节,每个PDF文件对应一个独立的章节,这种分章节的组织方式方便了读者按需学习和查阅。 在C++...
C语言作为一种通用且高效的编程语言,被广泛用于编写这些控制算法的底层代码。本文将深入探讨两种控制方法:经典PID控制和自抗扰控制(ADRC),并结合C语言编程实现它们。 **一、经典PID控制** PID(比例-积分-...
C 语言的诞生及其影响 C 语言是一种高级计算机编程语言,其...4. 影响了其他编程语言的设计:C 语言的设计思想和语法特点对其他编程语言的设计产生了影响,如 C++、Java、Python 等编程语言都受到了 C 语言的影响。