继上一篇笔记之后,今天我们讨论一下 代码中是存在注释是否是一件好的事情. 在我们开发的过程中讲究“名副其实,见名识意”,这也往往是很多公司的要求,但是有了这些要求是不是我们的代码中如果存在注释是不是意味着我们的 函数,变量,以及类 的命名就不符合了“名副其实,见名识意”. 我们先区分一下注释的类别,注释一般分为以下几种: 1, 单行注释 2, 多行注释 3, 文档注释 4, #region 折叠注释,可以将 代码折叠 注释的类别 1, 单行注释: 在以 “//” 开头,用以说明一行代码的作用放置…
此为临时链接,仅用于预览,将在短期内失效.关闭 [NPDP笔记]第四章 文化组织与团队 小康 小康哥的产品之路 9月6日 4.1 文化和氛围对创新的重要性 文化:信念,价值观,假设,与期望 氛围:直接或者间接感知到的工作环境特点的集合,对员工行为有重大影响 领导力水平 沟通 责任 信任 公平的认可与回报 机会 员工参与 成功的创新文化 具有清晰的目标和方向 请求原谅,而不是许可 个人绩效与整体绩效密切相关 契合创新文化 鼓励内部和外部的有效沟通 激励的辩论胜过被动的妥协 让工作尽可能愉悦,有回报…
原文:Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第四章:Direct 3D初始化 学习目标 对Direct 3D编程在3D硬件中扮演的角色有基本了解: 理解COM在Direct 3D中扮演的角色: 学习基本的图形学概念,比如存储2D图像.页面切换,深度缓冲.多重纹理映射和CPU与GPU如何交互: 学习如何使用性能计数函数读取高精度时间: 学习如何初始化Direct 3D: 熟悉本书Demo通用的应用框架中的基本结构…
你是否真正的会命名 前言 这是我第二次看这本书了(Clean Code)的时候,第一次看的时候是,看到某世界五百强在他们的代码中我竟然看不到一句注释,现在我还记得当时的情景,当我Download 下第一份代码的时候,我想在代码中了解一下公司代码编写习惯以及少量的业务,在我以前的认知中,代码中加上很多注释这些注释有助于我了解业务,但是在这份代码中我竟然看不到一行注释,当时我的反应是,一定会有文档的存在,我就向项目的负责人求助了,谁知他回了一句你多理解一下命名就行了,(其实我的英语非常差,后来慢慢习…
@ 目录 第 1 章 Clean Code 整洁代码(3星) ?为什么要整洁的代码 ?什么叫做整洁代码 第 2 章 Meaningful Names 有意义的命名(3星) 第 3 章 Functions 函数(3星) 第 4 章 Comments 注释(2星) 第 5 章 Formatting 格式 (1星) 第 6 章 Objects and Data Structures 对象和数据结构(4星) 第 7 章 Error Handling 错误处理(4星) 第 9 章 Unit Tests 单…
上一笔记讲了同步机制中的临界区域(Critical Sections).互斥器(Mutexes),下面介绍同步机制中的另外两种. 信号量(Semaphores) 举个例子: 现在有人要租车,接待他的代理人发现还有3辆车可以用,但正在给他办理手续的时候发现还有三个人也在做同样的动作.现在,就是有四个人想租三辆车. 我们写个程序解决租车问题,方法一就是为每辆车都加一个mutex保护,问题是如果是一家大型出租车公司就需要有成百上千的mutexes了.方法二使用单一的mutex为所有的车辆服务,但一次只…
第四章 子查询:在外部查询内嵌套的内部查询(按照期望值的数量分为,标量子查询 scalar subqueries,多值子查询multivalued subqueries)(按照子查询对外部查询的依赖性分为独立子查询self-contained subqueries和相关子查询 correlated subqueries) 应用一:关系分区问题,使用group by和distinct count 来解决关系分区问题 Eg:NorthWind返回每个美国员工至少为其处理过一个订单的所有客户 独立子查…
第四章 进程调度 调度程序负责决定将哪个进程投入运行,何时运行以及运行多长时间.进程调度程序可看做在可运行态进程之间分配有限的处理器时间资源的内核子系统.只有通过调度程序的合理调度,系统资源才能最大限度地发挥作用,多进程才会有并发执行的效果. 4.1 多任务 1.多任务操作系统就是能同时并发地交互执行多个进程的操作系统.无论在单处理或者多处理器机器上,多任务操作系统都能使多个进程处于拥塞或者睡眠状态,也就是实际上不被投入执行,直到工作确实就绪. 2.多任务系统可以划分为两类:非抢占式多任务和抢占…
第四章 虚拟机性能监控与故障处理工具 1.JDK命令行工具 jps命令: 作用:列出正在运行的虚拟机进程. 格式:jps [option] [hostid] 选项:-q 只输出LVMID(Local Virtual Machine Identifier)省略主类的名称. -m 输出虚拟机进程启动时传递给主类的main函数的参数 -l 输出主类全名,如果进程执行的时jar包,输出Java路径    -v 输出虚拟机进程启动的jvm参数,显示指定的参数列表,默认参数无法查看 jstat命令: 作用:…
相关博客: 吴恩达机器学习笔记(八) —— 降维与主成分分析法(PCA) <机器学习实战>学习笔记第十三章 —— 利用PCA来简化数据 奇异值分解(SVD)原理与在降维中的应用 机器学习(29)之奇异值分解SVD原理与应用详解 主要内容: 一.SVD简介 二.U.∑.VT三个矩阵的求解 三.U.∑.VT三个矩阵的含义 四.SVD用于PCA降维 五.利用SVD优化推荐系统 六.利用SVD进行数据压缩 一.SVD简介 1.SVD分解能够将任意矩阵着矩阵(m*n)分解成三个矩阵U(m*m).Σ(m*…
(上接第二章) 4.3.1 KMeans 算法流程 算法的过程如下: (1)从N个数据文档随机选取K个文档作为质心 (2)对剩余的每个文档测量其到每个质心的距离,并把它归到最近的质心的类 (3)重新计算已经得到的各个类的质心 (4)迭代(2)~(3)步直至新的质心与原质心相等或者小于指定阀值,算法结束. 4.3.2 辅助函数 (1)文件数据转为矩阵:file2matrix def file2matrix(path,delimiter): recordlist = [] fp = open(pat…
本章讲解编写一个完整的TCP客户/服务器程序所需要的基本套接字函数. socket函数 #include <sys/socket.h> int socket(int family,int type,int protocol); //返回:成功则为非负描述符,若出错则为-1 family参数指明协议族,它是如下某个常值 type参数指明套接字类型,它是如下某个常值 protocol参数为下面某个协议类型常值,或者设为0,以选择所给定family和type组合的系统默认值 下图展示了基本TCP客户…
本章内容: 一..装饰器 二.生成器 三.迭代器 四.python中的内置方法 五.json & pickle 的数据序列化及反序列化 六.程序目录结构规范 七.补充内容 一.装饰器: 1.概念:装饰器的本质是函数,用于装饰其他函数,就是给其他函数添加附加的功能 2.什么情况下要使用装饰器? (1)不能修改被装饰函数的源代码 (2)不能修改被装饰函数的调用方式 (装饰器对于被装饰函数是完全透明的,不会影响被装饰函数) 示例: 定义一个sayhi()函数,调用函数时,打印“你好,xx”,代码如下:…
前面的课程,我们了解了Python 语言的学习方法,并且带你了解了 Python 必知的常用工具——Jupyter.接下来我们正式学习 Python 的具体知识. 对于每一门编程语言来说,数据结构都是其根基.了解掌握 Python 的基本数据结构,对于学好这门语言至关重要.今天我们就一起来学习,Python 中最常见的两种数据结构:列表(list)和元组(tuple). 一.列表和元组基础 首先,我们需要弄清楚最基本的概念,什么是列表和元组呢? 实际上,列表和元组,都是一个可以放置任意数据类型的…
博客地址:http://www.moonxy.com 一.前言 LAMP 是 Linux Apache MySQL PHP 的简写,即把 Apache.MySQL 以及 PHP 安装在 Linux 系统上,组成一个环境来运行 PHP 脚本语言,通常是 PHP 的网站.其中的 Apache 是主流的 Web 服务器软件,MySQL 是小型的关系型数据库软件. 我们可以把 Apache+PHP 安装在一台机器上,再把 MySQL 安装在另外一台机器上,也可以将其全部安装在同一台机器上.但是 Apac…
一:前面心情: 1.今天开了个小会,该看的继续要看,不要堕落. 2.还有就是丽的生活习惯不太好.慢慢改变. 3.哎,公司人员争夺吗?哎,不知道,不了解,不去想,提升自己,内心明净 二.主要内容和参考 这篇内容以前做过.再来一次. 内容:静态cubeMap的制作   , 使用cubeMap实现反射效果 参考:书本88-96p   博客http://blog.csdn.net/candycat1992/article/details/21827365# unity文档 三.实现 四.学到什么 1.c…
信号量:用于管理对资源的访问: 共享内存:用于在程序之间高效的共享数据: 消息队列:在程序之间传递数据的一种简单方法: 一.信号量 临界代码:需要确保只有一个进程或者一个执行线程可以进入这个临界代码并拥有对资源独占式的访问权. 临界区:真正执行数据更新的代码需要独占式的执行,它们被称为临界区域:它们通常只在一个大型程序中占据一小段的代码. 信号量是一个特殊的变量,它只取正整数值,并且程序对其访问都是原子操作:只允许对它进行等待和发送信号这两种操作. 在Linux编程中,等待和发送信号都已具有特殊…
这一章主要介绍C语言的结构和其他数据形式,是学习算法和数据结构的重点. 1.示例代码 /*book.c -- 仅包含一本书的图书目录*/ #include <stdio.h> #define MAXTITL 41 #define MAXAUTL 31 struct book { /* data */ char title[MAXTITL]; char author[MAXAUTL]; float value; }; int main(void) { struct book library; /…
1,p124,错误:NameError: name 'print_lol' is not defined 要想文件内如图显示,需要把调用BIF print()改为调用第二章的nester模块中的print_lol()函数,因此需要导入nester模块. 首先需要修改第二章nester模块中的print_lol()函数并更新该模块,更新方法如图: 然后在sketch.py中调用print_lol()函数. ''' 修改时间:0919 修改内容:把调用BIF print()改为调用第二章的neste…
chapter 4 进程调度 4.1 多任务 多任务操作系统就是能同时并发的交互执行多个进程的操作系统. 多任务系统可以划分为两类: - 非抢占式多任务: - 进程会一直执行直到自己主动停止运行(这一步骤称为让步) - 抢占式多任务: - Linux/Unix使用的是抢占式的方式:强制的挂起进程的动作就叫做抢占.进程在被抢占之前能够运行的时间是预先设置好的(也就是进程的时间片) 4.2 linux的进程调度 O(1)调度器:对大服务器的工作负载很理想,但是缺少交互进程. 反转楼梯最后期限调度算法…
原文地址: http://www.niu12.com/article/11 ####数组 数组是一个长度固定的数据类型,用于存储一段具有相同的类型的元素的连续块. 数组存储的类型可以是内置类型,如整型或者字符串,也可以是某种结构类型, 其占用的内存是连续分配的. 由于内存连续,CPU能把正在使用的数据缓存更久的时间. 而且内存连续很容易计算索引, 可以快速迭代数组里的所有元素. 声明: 两个要素:长度和类型 声明数组时需要指定内部存储的数据的类型, 以及需要存储的元素的数量, 这个数量也称为数组…
本章讲解C++标准程序库中的通用工具.它们是由短小精干的类和函数构成. Pairs(对组) class pair可以将两个值视为一个单元.STL内多处使用了pair.尤其容器map和multimap,就是使用pairs来管理key/value的成对元素. struct pair定义与<utility>: namespace std{ template <class T1,class T2> struct pair{ //type names for the values typed…
本章将描述文件系统的其他特性和文件的性质. 函数stat.fstat.fstatat和lstat #include <sys/stat.h> int stat(const char *restrict pathname,struct stat *restrict buf); int fstat(int fd,struct stat *buf); int lstat(const char *restrict pathname,struct stat *restrict buf); int fst…
一:首先,一个简单的继承实例: 首先是创建一个父类Person: function Person(name) { this.name = name; } Person.prototype.getName = function() { return this.name; } 下面是创建一个子类Author,用于继承Person: 分两步,第一步继承父类的属性,第二部继承父类的公共方法 function Author(name, books) { Person.call(this, name); /…
第14章   使用CSS3动画 [学习重点] 设计2D动画 设计3D动画 设计过渡动画 设计帧动画 能够使用CSS3动画功能设计页面特效样式 14.1  设计2D动画 CSS2D Transform表示2D变换,目前获得了各主流浏览器的支持:CSS3D Transform支持程度不是很完善,仅能够在部分浏览器中获得支持.语法如下: transform:none | <transform-function> [ <transform-function>]*; transform属性的…
一.基础概念 线性分类模型:决策面(decision boundary)是输入向量的线性函数 目标类别的表示"1 of K" :$ t = (0,1,0,0,0)^T$ 二.分类问题的三种方式 1. 判别函数(discriminant function): 找到函数$f(x)$将输入$x$映射为类别标签 2. 生成式模型(generative model): 对条件概率$p(x|C_k)$和先验概率$p(C_k)$ 建模 然后通过贝叶斯定理计算. #求解模型复杂,但是可以求出边缘概率密…
一.前言 Tomcat 是 Apache 软件基金会(Apache Software Foundation)Jakarta 项目中的核心项目,由 Apache.Sun 和其他一些公司及个人共同开发.使用 Java 语言编写的 Web 应用可以用 Tomcat + JDK 来运行. Tomcat 是一个中间件,真正的起作用的是解析 Java 脚本的 JDK.JDK(Java Development Kit)是整个 Java 的核心,它包含了 Java 的运行环境和一堆与 Java 相关的工具及 J…
进程调度 调度程序负责决定将哪个进程投入运行,何时运行以及运行多长时间. 调度程序没有太复杂的原理,最大限度地利用处理器时间的原则是,只要有可以执行的进程,那么就总会有进程正在执行. 一.多任务 多任务系统可以划分为两类:非抢占式多任务和抢占式多任务. Linux提供了抢占式的多任务模式,在此模式下,有调度程序来决定什么时候停止一个进程的运行,以便其他进程能够得到执行机会. 这个强制挂起的动作就叫抢占.进程在被抢占之前,能够运行的时间是预先设置好的,叫进程的时间片. 二.Linux 的进程调度…
python3-cookbook中每个小节以问题.解决方案和讨论三个部分探讨了Python3在某类问题中的最优解决方式,或者说是探讨Python3本身的数据结构.函数.类等特性在某类问题上如何更好地使用.这本书对于加深Python3的理解和提升Python编程能力的都有显著帮助,特别是对怎么提高Python程序的性能会有很好的帮助,如果有时间的话强烈建议看一下.本文为学习笔记,文中的内容只是根据自己的工作需要和平时使用写了书中的部分内容,并且文中的示例代码大多直接贴的原文代码,当然,代码多数都在…
数据模型 数据模型及O/R转化,采用EntityFramework实现. 可以采用firstCode模型,首先定义模型,通过模型生成数据库,也可以通过安装EFPowerTools,通过数据库自动生成对应的数据模型(习惯使用此种方式). 构造基架 构造基架就是提供了数据维护的模板,可以自动完成数据的增改删除等相关的基础代码,通过修改基础代码,就可以快速的完成基本的数据维护. 使用基架模板,首先需要选择一个模型类,在选择访问数据库所用的上下文类. 模型绑定 在进行数据维护时,表单和数据模型之间是双向…