`
eric_weitm
  • 浏览: 243755 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

几种常用编程语言的编程思想和方法

阅读更多
几种常用编程语言的编程思想和方法

   搞软件的人,编程语言的掌握是基本功,如果单单是学习语法,最慢的一周之内也应该可以搞定(个人认为 语法层面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语言编程思想和技术是计算机科学中的基础且至关重要的部分,尤其对于初学者和有经验的开发者来说,理解和掌握这些概念都是必要的。C语言以其高效、灵活性和广泛的应用领域而闻名,是许多操作系统、嵌入式系统以及...

    C++编程思想 pdf

    《C++编程思想》是Bjarne Stroustrup所著的一部经典C++教程,它以其深入浅出的讲解和全面覆盖C++特性的内容深受程序员喜爱。这本书旨在帮助学习者理解C++语言的设计理念,掌握面向对象编程的精髓,并提供实际编程中...

    Go语言高级编程

    Go语言,作为一门现代编程语言,自2007年由Google公司的Robert Griesemer、Ken Thompson和Rob Pike三位大牛设计发明以来,已经迅速成长为开发人员喜爱的语言。Go语言之所以被称为网络和多核时代的C语言,是因为它从...

    C++编程思想 C++编程思想

    C++编程思想是深入理解和应用C++这门高级编程语言的关键。C++,由Bjarne Stroustrup在1979年设计开发,是一种通用的、面向对象的编程语言,它继承了C语言的强大功能,并引入了面向对象的编程理念,同时也支持泛型...

    斯坦福大学编程方法学讲义 中英双语方便学习

    9. **编程语言特性**:可能会涵盖几种主流编程语言的关键特性,比如C++的模板、Java的反射、Python的动态特性等。 10. **交互式编程与脚本**:介绍如何使用解释型语言进行快速开发,如Shell脚本、Python脚本等。 ...

    vb编程语言和函数手册

    VB编程语言和函数手册作为一本实用的VB教程,它包含了以下几类知识点: 1. VB编程基础:介绍VB的基本语法,包括变量声明、数据类型、控制结构(如if语句、for循环、while循环等)、数组和字符串处理、过程和函数的...

    C#编程思想 C#编程思想

    C#编程思想是微软公司为.NET框架开发的一种现代化、类型安全的面向对象的编程语言。自2000年发布以来,C#已经发展成为软件开发领域的主流语言之一,广泛应用于桌面应用、游戏开发、移动应用以及Web服务等多个领域。...

    Java编程思想源码关联jar包

    这个压缩包包含了几个在Java编程中常见的关联库,这些库对于理解和实践Java编程思想有着重要作用。 首先,我们来看看`net.mindview.util`包。这个包来自于《Java编程思想》一书的配套资源,它包含了一些实用工具类...

    C++编程思想.pdf

    《C++编程思想》这本书是C++编程领域的一部经典之作,它深入浅出地探讨了C++语言的核心概念和编程技巧,旨在帮助读者理解并掌握C++的精髓。本书结合了多位编程大师的智慧,提供了丰富的编程实例和实践指导,使得C++...

    java编程思想

    这本书深入浅出地介绍了Java编程语言的核心概念和技术,为读者提供了全面而深刻的Java理解。中文版的清晰度高,使得阅读更加轻松,适合初学者以及有一定经验的程序员进一步提升。 在Java编程中,以下几个核心知识点...

    c++编程思想(pdf)

    《C++编程思想》是一本深受程序员喜爱的经典教程,它深入浅出地介绍了C++这一强大的编程语言。这本书不仅适合初学者,也对有经验的程序员有着宝贵的指导价值。通过阅读这本书,读者可以全面理解C++的核心概念,掌握...

    编程语言中的架构思考-姚钢强.pdf

    继承是一种常见的面向对象编程(OOP)特性,允许一个类(子类)从另一个类(父类)继承属性和方法。然而,过度依赖继承可能会导致代码的紧密耦合,破坏封装性,从而增加维护难度。姚钢强提醒开发者,应更倾向于使用...

    C++编程思想(超清).pdf

    从给定的文件信息中,我们可以提炼出关于C++编程思想和面向对象编程(OOP)的几个关键知识点,这些知识点对于初学者理解和掌握C++编程具有重要意义。 ### 面向对象编程(OOP)的基本概念 1. **对象**:在OOP中,...

    C++编程思想(PDF)文字版

    《C++编程思想》是Bjarne Stroustrup所著的经典C++教程,它深入浅出地介绍了C++语言的核心概念和技术。这本书分为多个章节,每个PDF文件对应一个独立的章节,这种分章节的组织方式方便了读者按需学习和查阅。 在C++...

    几种控制方法的C语言编程.

    C语言作为一种通用且高效的编程语言,被广泛用于编写这些控制算法的底层代码。本文将深入探讨两种控制方法:经典PID控制和自抗扰控制(ADRC),并结合C语言编程实现它们。 **一、经典PID控制** PID(比例-积分-...

    编程语言发展史:C语言的诞生及其影响

    C 语言的诞生及其影响 C 语言是一种高级计算机编程语言,其...4. 影响了其他编程语言的设计:C 语言的设计思想和语法特点对其他编程语言的设计产生了影响,如 C++、Java、Python 等编程语言都受到了 C 语言的影响。

Global site tag (gtag.js) - Google Analytics