2012年10月5日

摘要: 第四章 : 模块性 : 保持清晰,保持简洁 Modularity : keeping it clean , keeping it simple 所谓的模块化原则就是: 定义清晰的接口把若干简单模块拼接起来。 这样多数问题只会出现在某个模块内部,debug和优化的工作可以在局部进行而不至于牵动整体。 1. 封装封装良好的模块不会过多得向外披露自身的实现细节,不会直接调用其他模块的代码,也不会胡乱共享全局数据。模块之间通过API(程序编程接口——一组严密,定义良好的程序调用和数据结构)来通信。检验API设计良好的一个方法是:如果试着用纯人类的自然语言来描述是否能把事情给说清楚?实... 阅读全文
posted @ 2012-10-05 23:04 edward1992 阅读(227) 评论(0) 推荐(0)
摘要: 1. 模块原则:用简洁的接口拼合简单的部件2. 清晰原则:清晰胜于技巧3. 组合原则:设计时考虑拼接组合4. 分离原则:策略同机制分离,接口同引擎分离5. 简洁原则:设计要简洁,复杂度能低就低6. 吝啬原则:除非确无他法,否则不要编写庞大的程序7. 透明原则:设计要可见,以便审查与调试8. 健壮原则:健壮源自于透明和简洁9. 表示原则:把知识叠入数据以求逻辑质朴而健壮10. 通俗原则:接口设计应避免标新立异11. 缄默原则:如果一个程序没有什么好说的,就保持沉默12. 补救原则:异常出现时,马上退出并给出足量的错误信息13. 经济原则:宁花机器一分,不费程序员一秒14.... 阅读全文
posted @ 2012-10-05 19:34 edward1992 阅读(97) 评论(0) 推荐(0)

2012年10月4日

摘要: @左耳朵耗子 陈皓在It业界的名声是所有程序员有目共睹的。今晚得闲在他的酷壳coolshell.cn里翻了不少感兴趣的文章,读完有些收获和感想在此简略得写写吧。1. 软件开发可以规划为三个境界: 垦荒式耕作 : 软件业务实现 扩大化耕作 : 软件性能优化 精耕细作 : 软件业务架构2. linux/unix平台将会一直是未来后台开发的主流平台,对于计算机专业的学生,熟悉linux/unix操作系统的基本操作是十分 必要的。linux/unix可以说是计算机文化发展历史的一个载体。3. 开源是一种精神,封闭最终导致崩塌。4. 程序员的学习不仅仅只局限于学习怎样去运用技术,更要超越... 阅读全文
posted @ 2012-10-04 23:13 edward1992 阅读(168) 评论(0) 推荐(0)

2012年8月6日

摘要: # !/bin/bash# program: Using to study the [if ... then ... fi] program# Written by Edward# Date:2012/08/06# content:I will using this program to show your services# 1. print the program's work in your screen.echo "Now,the services of your Linux system will be detect!"echo "The ww, 阅读全文
posted @ 2012-08-06 06:38 edward1992 阅读(771) 评论(0) 推荐(0)
摘要: 看《鸟哥的linux私房菜》的shell script编程一章,敲if 和 elif,fi的代码时就出了点小问题,卡了很久,终于发现是空格惹的祸。 #!/bin/bash#Date:2012/08/06#Written by Edwardecho "Press y to continue."if ["$1"='hello'] then echo "Hello! How are you?"elif ["$1"=''] then echo "You must input par 阅读全文
posted @ 2012-08-06 06:22 edward1992 阅读(177) 评论(0) 推荐(0)

2012年8月3日

摘要: 1. 语法确实很简洁,上手很容易2. 学了C++以后对Python的很多内容都比较容易理解3. 用来描述算法确实很方便,不用为编程的细节纠结4. 脚本式的语言,编译链接的问题不大需要担心5. 可以直接在shell终端运行。 阅读全文
posted @ 2012-08-03 21:03 edward1992 阅读(135) 评论(0) 推荐(0)

2012年7月31日

摘要: 附录A 浅谈编程能力的培养和提高>学习什么语言其实并不是最重要的,关键是基础打扎实.C语言目前还是有很广阔的应用领域,用来做底层开发是理想之选.从C语言到C++过渡是比较容易的,在C++语言里可以接触到面向对象的思想Java和C#都是非常纯粹的面向对象语言不管是C++,Jave还是C#,学深了都是大有可为.对于一名程序员,基础中的基础应该是数学.数学最主要的功效是帮助我们建立一种分析问题和解决问题的思想和方法,然后通过编程去实现它.一些大型项目有时需要很复杂的数学建模和利用数学进行统计分析.数据结构和算法知识的掌握和运用能力是衡量一名程序员编程能力的重要指标.一个程序所选用的数据结构和算 阅读全文
posted @ 2012-07-31 19:59 edward1992 阅读(230) 评论(0) 推荐(0)

2012年7月18日

摘要: 1. 在linux环境下学习C语言系统编程能够深入理解操作系统的理论知识2. Linux下的系统编程是指程序员使用系统调用或C语言本身所携带的库函数来设计和编写具有某一特定功能的程序。3. Linux系统是以文件为基础而设计的。4. Linux所包含的文件类型: 普通文件; 目录文件; 字符特殊文件; 块特殊文件; FIFO(用于进程的通信,也称为命名管道) 套接字 符号连接5. 文件的访问权限控制: 【1】 在Shell下可以通过命令chmod来改变文件的访问权限。 【2】 通过chmod/fchmod函数可以对文件访问权限进行修改。 【3】 函数原型: #include <sys/t 阅读全文
posted @ 2012-07-18 13:48 edward1992 阅读(275) 评论(0) 推荐(0)

2012年7月11日

摘要: 贪婪算法用贪婪算法解决的问题至少有一个最优的解决方案。在问题的求解过程中可以建立两个集合,一个集合(不妨设为a)由已经被选出的符合问题要求的候选解组成,另一个集合(不妨设为b)由已经选出的但不能导出最优解的候选解组成集合a最终包含一个解可以用于贪婪思想解决的经典问题包括:带权图的最小生成树问题(Kruskal算法及Prim算法)带权图的最短路径问题(Dijkstra算法)背包问题Huffman树编码问题分治算法整个问题可以分解为两个或多个规模较小的子问题对每个子问题的求解类似于对整个问题的求解如果子问题的规模仍然比较大,可以继续对子问题进行分治求解分治法和递归的思想是紧密相连的分治法的通用模板 阅读全文
posted @ 2012-07-11 13:39 edward1992 阅读(482) 评论(0) 推荐(0)

导航