Learning Path
浏览 开发笔记 相关教程与章节。
社区笔记、经验文章、测验题库与零散教程入口。
教程
1237
在软件开发中,优雅的代码规范可以帮助我们写出既美观又实用的代码。 以下是提升代码质量的建议性规范: 命名清晰:使用描述性强的命名,让代码自我解释。 简洁性:力求简洁,避免冗余,用最少的代码行数完成功能。 一致性:保持项目中命名和编码风格的统一,减少认知负荷。 注释:用注释阐明代码意图,但避免过度注释。 避免复杂性:将复杂逻辑分解为简单、可管理的函数或模块。 重构:定期重构,提升代码的可读性和性能。 测试:编写单元测试,确保..
国外的: https://www.google.com: 基本上所有的问题都可以在这上面找到答案,但是访问需要点技巧。 http://stackoverflow.com 有干货的地方。代码遇到相关问题经常被导到这个网站去,回答质量很高,排版简洁清晰。我现在遇到问题经常会搜索词后面加一个词“stackoverflow”,敲回车的同时常常要骂一下这个创始人起个名字咋那么长..... http://github.com 最大的开源中心..
最近在几个不同的团队中发现他们的编码规范中对空格的用法大不相同。这激起了我的好奇心,因为我一直觉得,对于代码格式中的空格的使用,应该有一个大家都公认的最好的习惯。但是在现实开发中,似乎没有出现这样的统一。 现状 首先,我们看看在大多数Java IDE中Java代码的风格习惯。 下面是一个例子: public class Example { public static void main(String[] args) { ..
有人提交了一个问题: 从事互联网有几年时间,接触到的技术人员大多有以下问题: ①、木讷、没礼貌;②、合作做事情不喜欢汇报进度(比如正在做东西,忽然停下不知道干别的什么去了,不催他都不跟你讲); ③、不回QQ,回的话就重现第1点。 请问这是普遍问题么?各位技术人如何看待? 以下是部分精彩回复摘录 一、李楠 和技术人员的沟通不顺畅,责任主要在产品人员身上。原因很简单,人家是搞技术的,不是负责和用户交流并且给技术人员传达需求的。你如..
最主要原因在于码农收入殷实且稳定,在这条路上,基本上就是技术越牛,收入越高,但是在别的行业就未必如此了 基本上20多岁的小伙埋头苦干肯干,他的技术这辈子会不断提升,收入自然也就如此,跟别的行业的人还不一样,行业特殊性保证了他们永远在进取学习磨练技术,收入自然也就水涨船高,而且又有成就感,用知乎正确的话来说,码农=潜力股 张曼玉不是说过,认真的男人最性感么? 但是码农的世界相对来说就枯燥一些,基本就是上班工作,下班看书学习,所以社交..
最近,我大量阅读了Steve Yegge的文章。其中有一篇叫“Practicing Programming”(练习编程),写成于2005年,读后令我惊讶不已: 与你所相信的恰恰相反,单纯地每天埋头于工作并不能算是真正意义上的锻炼——参加会议并不能锻炼你的人际交往能力;回复邮件并不能提高你的打字水平。你必须定期留出时间,集中锻炼,这样才能把事情做得更好。我认识很多杰出的程序员——这是在亚马逊工作最好的额外“福利”之一。如果仔细观察他们,..
按字母索引 A 开头 B 开头 C 开头 D 开头 E 开头 F 开头 G 开头 H 开头 I 开头 J 开头 K 开头 L 开头 M 开头 N 开头 O 开头 P 开头 Q 开头 R 开头 S 开头 T 开头 U 开头 ..
Composer 是 PHP 的依赖管理工具,用于管理项目所需的库及其版本。Composer 通过 composer.json 文件定义依赖关系,并自动处理安装和更新。 Composer 默认情况下不是全局安装,而是基于指定的项目的某个目录中(例如 vendor)进行安装。 Composer 需要 PHP 5.3.2+ 以上版本,且需要开启 openssl。 Composer 可运行在 Windows 、 Linux 以及 OSX 平..
将以下代码放置于 style.css.php 文件中,不要忘记包含你需要的 css 文件:..
既然你选择了编程作为职业,就注定了要终生以计算机为伴。但这并不意味着你应该置自己的健康不顾。谁都知道,电脑面前待久了,一是伤害你的眼睛,而是久坐伤身,还有会导致性格孤僻——因为你整天面对的是计算机,而不是活生生的人。到户外去,离开电脑,离开办公室。如果你还不确定是否应该这样做,那就看看下面的这些症状,有多少也出现在了你的身上? 每天早上时你都精力充沛。 但整天坐在屏幕前的生活慢慢的让你发疯。 一到下午5点,你就开始无法集中注意力 ..
鼠标自60年代中期诞生以来,经历了无数次的变化,这些变化使得它使用起来更舒适、更符合人体工程学、也更方便人们携带。本文会带你重温鼠标从简陋到如今未来感十足的历程。 房子中的鼠标 在1968年的Mother of All Demos(展示之母)上,来自斯坦福研究院(SRI)的Douglas Engelbart向全世界展示了多种计算机科技,及在接口方面的突破。在众多的展品中就有完成于1964年的鼠标原型。在当时,人们习..
Bjarne在他的The C++ Programming Language里面给出过一个助记的方法:把一个声明从右向左读。 char * const cp; ( * 读成 pointer to ) cp is a const pointer to char const char * p; p is a pointer to const char; char const * p; 同上因为C++里面没有const*的运..
人们想到选择一门计算机语言时,可能会选择学校里学到的知名度高的通用过程语言之一,比如C、Java或Python。但这些经常被人选择的语 言只是计算机语言领域的冰山一角而已――如果它使用关键字和结构来传达信息,那它就是一门语言。下面是值得考虑的十大云计算语言。 1. SQL数据语言 说到数据语言,SQL是几十年来无可争议的霸主。连非关系型数据库服务器也使用某种SQL语言。就跟IT的其他所有领域一样,云计算领域同样充斥着SQL。 ..
意义 能够以最快的速度安装部署Linux操作系统。安装快速简单,几乎不花时间就可以开始运行Docker。运行速度非常快。使用内存硬盘。 我的情况 win8 笔记本偶尔玩游戏,但是装Linux双系统可能需要我一天的时间来完成。我的所有业务都只需要在Docker中跑就可以了。而且我笔记本电脑内存够大16g (感谢HUST 姜老师)。 准备 CoreOS image 下载地址 EasyBCD 下载地址 开工 安装EasyBCD添加IS..
计数排序(Counting Sort)是一种非比较型的排序算法,适用于对整数或有限范围内的数据进行排序。它的核心思想是通过统计每个元素的出现次数,然后根据统计结果将元素放回正确的位置。计数排序的时间复杂度为 O(n + k),其中 n 是待排序元素的数量,k 是数据的范围大小。 计数排序的核心在于将输入的数据值转化为键存储在额外开辟的数组空间中。作为一种线性时间复杂度的排序,计数排序要求输入的数据必须是有确定范围的整数。 1. 计数排序..
const 是 constant 的缩写,本意是不变的,不易改变的意思。在 C++ 中是用来修饰内置类型变量,自定义对象,成员函数,返回值,函数参数。 C++ const 允许指定一个语义约束,编译器会强制实施这个约束,允许程序员告诉编译器某值是保持不变的。如果在编程中确实有某个值保持不变,就应该明确使用const,这样可以获得编译器的帮助。 一、const修饰普通类型的变量 const int a = 7; int b..
构造函数初始化列表以一个冒号开始,接着是以逗号分隔的数据成员列表,每个数据成员后面跟一个放在括号中的初始化式。例如: class CExample { public: int a; float b; //构造函数初始化列表 CExample(): a(0),b(8.8) {} //构造函数内部赋值 CExample() { a=0; b=8...
构造方法用来初始化类的对象,与父类的其它成员不同,它不能被子类继承(子类可以继承父类所有的成员变量和成员方法,但不继承父类的构造方法)。因此,在创建子类对象时,为了初始化从父类继承来的数据成员,系统需要调用其父类的构造方法。 如果没有显式的构造函数,编译器会给一个默认的构造函数,并且该默认的构造函数仅仅在没有显式地声明构造函数情况下创建。 构造原则如下: 1. 如果子类没有定义构造方法,则调用父类的无参数的构造方法。 2. 如果子..
C++ 引用与指针的比较 引用是 C++ 中的概念,初学者容易把引用和指针混淆一起。 一下程序中,n 是m的一个引用(reference),m 是被引用物(referent)。 int m; int &n = m; n 相当于 m 的别名(绰号),对 n 的任何操作就是对m的操作。 所以 n 既不是m的拷贝,也不是指向 m 的指针,其实n就是 m 它自己。 引用的规则: (1)引用被创建的同时必须被初始化(..
枚举类型的定义:枚举类型(enumeration)是 C++ 中的一种派生数据类型,它是由用户定义的若干枚举常量的集合。 定义格式:枚举类型的定义格式为: enum {}; 格式说明: 关键字enum——指明其后的标识符是一个枚举类型的名字。 枚举常量表——由枚举常量构成。“枚举常量”或称“枚举成员”,是以标识符形式表示的整型量,表示枚举类型的取值。枚举常量表列出枚举类型的所有取值,各枚举常量之间以“,”间隔,且必须各不相同。取..
枚举量声明、定义、使用 众所周知,C/C++ 语言可以使用 #define 和 const 创建符号常量,而使用 enum 工具不仅能够创建符号常量,还能定义新的数据类型,但是必须按照一定的规则进行,下面我们一起看下 enum 的使用方法。 步骤(一)——枚举量的声明和定义 (1) 首先,请看下面的语句: enum enumType {Monday, Tuesday, Wednesday, Thursday, Friday, S..
一、函数指针 函数存放在内存的代码区域内,它们同样有地址.如果我们有一个 int test(int a) 的函数,那么,它的地址就是函数的名字,这一点如同数组一样,数组的名字就是数组的起始地址。 1、函数指针的定义方式 data_types (*func_pointer)( data_types arg1, data_types arg2, ...,data_types argn); 例如: int (*fp)(int a); /..
C++ setw() 函数用于设置字段的宽度,语法格式如下: setw(n) n 表示宽度,用数字表示。 setw() 函数只对紧接着的输出产生作用。 当后面紧跟着的输出字段长度小于 n 的时候,在该字段前面用空格补齐,当输出字段长度大于 n 时,全部整体输出。 以下实例演示了 setw() 函数的使用: 实例 [mycode4 type='cpp'] #include #include using na..
一、C++ 编译模式 通常,在一个 C++ 程序中,只包含两类文件—— .cpp 文件和 .h 文件。其中,.cpp 文件被称作 C++ 源文件,里面放的都是 C++ 的源代码;而 .h 文件则被称作 C++ 头文件,里面放的也是 C++ 的源代码。 C++ 语言支持“分别编译”(separatecompilation)。也就是说,一个程序所有的内容,可以分成不同的部分分别放在不同的 .cpp 文件里。.cpp 文件里的东西都是相对独立..