编程范式01

一名软件工程师的4个境界:学会--->会学--->会用---->被用

知识之上是思想,思想之上是精神

得行而忘意,无异舍本逐末;得意而忘性,方能游刃有余。

要注意程序的“自我规范”

  •    变量、结构体、类、数组以及函数、文件的名字要和内容相吻合,并且慎用简写;

          优先主动态,比如数据处理---void process_data();

          名字最好使用英文,比如刷卡函数,可以使用void swipecard(vod),代替void shuka(void);

          还有变量的名字,卡片状态,uint8_t cardstatus

  •      高效运用注释;不容易理解的变量、函数注释,不理解的语句逻辑注释;

  •      并行逻辑和重复的代码,不要在两个地方出现相同的代码;

  •      保持代码的干净,去掉没有用到的函数、变量··,去掉没用的老代码;

  •       格式化代码;合理运用空格,隔开不同的独立的代码块;

  •      把变量、结构体、数组等放在开头,不要随便乱放;

  •      看别人代码时要汲取好的方法和技巧;

  •      关于具体编写代码时需要注意的细节问题

         1、 不随意使用全局变量,尽量使用局部变量;

         2、 使用括号,避免二义性;

         3、 程序结构清晰,简单易懂,单个函数最好不要超过100行;

  • 技巧:可以使用在线仿真,查看程序代码的执行时间。对于单片机程序,代码执行很重要。

编程范式:是编程的基本风格和编程思想的体现。有哪些编程范式呢:

     第一种、命令式,由若干行动指令组成的有序列表,并且用变量存储数据,用语句执行命令;

     第二种、结构化,主要思想是宏观上提倡‘自顶向下’的设计,外观上采用顺序、选择以及循环的逻辑结构,摈弃或限制goto语句,保证程序的结构清晰、易于调试和维护。

     第三种、声明式,分为函数式和逻辑式两种,前者是通过数学表达式的方式计算变换得到,而后者则是通过逻辑证明的方式(已知什么,证明另外一个问题)。

OOP:以数据为中心的逻辑组织,将系统视为相互作用的对象集合,并利用继承和多态来增强可维护性、可扩展性和可重用性,它以对象为单位。OOP大多是命令式的,但也有是逻辑式或是声明式的。

过程式编程以过程为中心,自顶向下,逐步求精,以函数为单位;而对象式编程以数据为中心,自底向上,逐步合并。

并发式:以进程为导向,以任务为中心,以资源共享与竞争为主线。有助于提高运行效率、充分利用资源、提高软件的响应能力、改善用户体验、保证公平竞争,同时以进程为单位将系统模块化,更加真实模拟现实世界。

泛化:将算法与其作用的数据结构分离,并将后者尽可能泛化,最大限度的实现算法重用,是基于模块的参数多态,相比于OOP基于继承的子类多态,更普适性,效率更高。C中的(void *)。它是算法导向的,以算法为起点和中心点,逐渐将其所涉及的概念如数据结构、类内涵模糊化、外延化,将其涉及的运算(函数、方法、接口)抽象化、一般化,从而扩展算法的适用范围。STL:算法、容器和迭代器。算法是一些列切实有效的步骤;容器是数据的集合,可理解为抽象的数组;迭代器是算法和容器的接口,理解为抽象的指针或是游标。

元编程:程序的程序,编写、操纵程序的程序。例如YACC能为解析器产生C程序,LEX是一种生成扫描器的工具,识别文本中词汇模式的程序,多用于Unix下。另外还有ANTLR,基于Java的开发。

事件驱动模式:回调函数的概念,Callback指能作为参数传递的函数或是代码,允许底层模块调用高层模块,使调用者与被调者从代码上解耦。异步callback在传入后并不理解被调用,使调用者与被调者从时间上解耦。

控制反转IOC,一般通过callback实现,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值