不为繁华易匠心


  • 分类

  • 标签

  • 归档

  • 笔记

  • 关于

初探python(8)错误、调试与测试

发表于 2016-10-12 | 分类于 总结

程序运行过程中会遇到各种错误。

有的是由于程序编写出现问题的,这种错误通常称之为bug,这是必须修复的。

有的是由于用户输入错误造成的,这种错误可以检查用户输入来做相应处理。

还有一类错误是完全无法在程序运行过程中预测的,比如写入文件的时候,磁盘满了,写不进去了,或者从网络抓取数据,网络突然断掉了。这类错误也称为异常,在程序中通常是必须处理的,否则,程序会因为各种问题终止并退出。

阅读全文 »

初探python(7)面向对象高级编程

发表于 2016-10-10 | 分类于 总结

数据封装、继承和多态只是面向对象程序设计中最基础的3个概念。在Python中,面向对象还有很多高级特性,允许我们写出非常强大的功能。我们接下来会讨论多重继承、定制类、元类等高级概念。

阅读全文 »

通向自由之路(5)元认知能力篇

发表于 2016-10-09 | 分类于 反思

元认知能力(metacognition):awareness and understanding of one’s own thought processes.即对自己思考过程的认知与理解。

认知能力好比是马,而元认知能力是马车。

回想一下自己的生活,有多少次是马随意地拉着马车跑,而不顾马车夫的指令。这正是元认知能力的不够,导致无法好好控制认知带来的结果。

阅读全文 »

初探python(6)面向对象编程

发表于 2016-10-06 | 分类于 总结

面向对象编程——Object Oriented Programming,简称OOP,是一种程序设计思想。OOP把对象作为程序的基本单元,一个对象包含了数据和操作数据的函数。

由于这一章在C++中学的不错,所以内容较少。

阅读全文 »

C++ API设计

发表于 2016-09-29 | 分类于 总结

什么是API

API(Application Programming Interface)提供了对某个问题的抽象,以及客户和解决该问题软件组件之间进行交互的方式。

组件通常以软件类库的形式分发,可以在多个应用程序中使用。目前的应用程序往往是由很多API建立而成,而这些API往往依赖于其他API。

API的目的是为某个组件的功能提供一个逻辑接口,同时隐藏该模块的具体实现。即代码只能通过该API的公共接口进行访问。也就是说,提供了一个抽象的接口,所以更多的将API理解为Abstract Programming Interface。

C++中的API

在C++中一般包含三个部分:
1.一个或多个头文件,定义了接口,使得客户端能够对其进行编译。开源API还包括其.cpp文件。

2.库文件,某个API的特定实现可以被链接到用户程序的库文件中。可以为静态库,如Windows下的.lib文件和Linux,Mac OS下的.a文件。又或者是动态库,如Windows下的.dll文件和Linux,Mac OS下的.so文件。

3.辅助文档,如何使用API的概述信息。通常包括为API中所有的类和函数自动生成的文档。

API设计的注意事项

1.API是给开发者设计的接口。 设计拙劣的API很有可能让你的用户转向竞争者的怀抱。

2.多应用共享一个API。 一旦出错,造成的影响巨大。

3.修改API时必须保证向后兼容。 在计算机中指在一个程序或者类库更新到较新的版本后,用旧的版本程序创建的文档或系统仍能被正常操作或使用,或在旧版本的类库的基础上开发的程序仍能正常编译运行的情况。

4.API必须有良好的设计、文档、回归测试,并且保证发布之间的稳定性。

SDK与API

SDK(软件开发工具包)为安装在计算机特定平台的包,目的是使用一个或多个API来构建应用。除了上述API所要求的东西之外,还要包含支持其他帮助使用API的资源。

特征

良好的抽象

在设计API时,应该阐述在选定问题域内有意义的深层概念,而不是公开底层实现细节。当你把API文档提供给一位非程序员是,他应该能够理解接口中的概念并且知道他的工作机制。一种API不仅仅只有一种方式建模,每种方式都可以提供良好的抽象和易用的接口,关键是API应该有一致且合理的支撑体系。

UML

这边先介绍一下UML类图。UML规范定义了一组面向对象软件系统的可视化建模符号。类用方框表示,该方框被分成三个区域,上层为类名,中层为列出类的属性,下层区域为类的方法。

方框中每条记录都可以添加前缀符,来对因属性或方法的可见性。+ 表示共有类成员,- 表示私有类成员,# 表示受保护的类成员。

类之间的关系可以用多种样式的连接线和箭头表示。

关联:两个类之间的简单的依赖关系,两者互不从属于对方,用实线表示。带有方向,UML用开放箭头表示方向,比如“>”。

聚合:“has-a”关系,或者整体与部分的关系,两个类互不从属对方。用空心菱形的直线表示。

组合:“contain-a”关系,部分和整体具有统一的生存期。用带有实心菱形的直线表示。

泛化:类之间的父子关系,用带空心三角箭头的直线表示。

对象间的各种关系可以在某个对象边用注释定义,这样就能分辨出他们的关系是一对一还是多对一还是多对多。常见的一些关系有:0..1 表示零个或一个实例,1表示一个实例,0..* 表示0个或多个实例, 1..* 表示一个或多个实例。

【TED】为掌握而学习而不是分数

发表于 2016-09-29 | 分类于 总结

今天要讲的是两个概念,也就是掌握概念和心智模式的概念。

阅读全文 »

初探python(5)模块

发表于 2016-09-26 | 分类于 总结

随着代码越写越长,越不容易维护。为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样件,每个文包含的代码就相对较少,很多编程语言都采用这种组织代码的方式。在Python中,一个.py文件就称之为一个模块(Module)。

阅读全文 »

初探python(4)函数式编程

发表于 2016-09-26 | 分类于 总结

我们首先要搞明白计算机(Computer)和计算(Compute)的概念。

在计算机的层次上,CPU执行的是加减乘除的指令代码,以及各种条件判断和跳转指令,所以,汇编语言是最贴近计算机的语言。

而计算则指数学意义上的计算,越是抽象的计算,离计算机硬件越远。

阅读全文 »

通向自由之路(4)多维竞争篇

发表于 2016-09-25 | 分类于 反思

上周谈到了“落后”的话题,自己有许多地方都没有达到20%,甚至焦虑不堪。可笑来老师在文末告诉我们:

放心,我们一定有办法解决“危机感”所带来的焦虑。

那么,今天来讲讲什么该如何做到。

阅读全文 »

初探python(3)高级特性

发表于 2016-09-20 | 分类于 总结

在Python中,并不是代码越多越好,而是越少越好。基于这个思想,我们来介绍一下Python的高级特性来精简我们的代码。

切片

取一个list或tuple的部分元素是非常常见的操作。对这种经常取指定索引范围的操作,用循环十分繁琐,因此,Python提供了切片(Slice)操作符,能大大简化这种操作。

阅读全文 »
1…678…10
zjbao123

zjbao123

不为繁华易匠心

94 日志
14 分类
40 标签
github weibo zhihu
© 2021 zjbao123 | Site words total count:
由 Hexo 强力驱动
|
主题 — NexT.Gemini v5.1.3