编程范式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:算法、容器和迭代器。算法是一些列切实有效的步骤;容器是数据的集合,可理解为抽象的数组;迭代器是算法和容器的接口,理解为抽象的指针或是游标。

编程范式01

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

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

编程范式01

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

编程范式01

编程范式01

来源:Hugo0Chen

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年6月5日
下一篇 2021年6月5日

相关推荐