随笔分类 - SoftWare
摘要:前面三篇介绍了关于 Git 的概念、命令使用、命令查询等理论知识1)Git 版本管理工具2)Git 常用命令详解3)Git 常用命令速查表本文主要介绍在使用Git 过程中遇到的几个问题及其解决方案一、Git 界面GUI和命令行Command两种操作方式Git 进行代码版本管理时,有两种操作方式:图形界面GUI和命令行Command图形界面GUI:有平台限制,目前仅支持Windows系统,Linux(Unix)都是命令行模式,并且图形界面每次提交好像Display显示文件数有限制(如:最大显示20000个文件)命令行Command:没有平台限制,Windows、Linux(Unix、Mac OS
阅读全文
摘要:前面两篇博客Git 版本管理工具 和Git 常用命令详解,分别介绍了Git 基础知识和命令用法本文将对Git 命令,做一下全面而系统的简短总结,整理成简洁、明了的图表结构,方便查询一、 Git 常用命令速查git branch 查看本地所有分支git status 查看当前状态git commit 提交git branch -a 查看所有的分支git branch -r 查看本地所有分支git commit -am "init" 提交并且加注释git remote add origin git@192.168.1.119:ndshowgit push origin mast
阅读全文
摘要:Git 是一个很强大的分布式版本管理工具,它不但适用于管理大型开源软件的源代码(如:linux kernel),管理私人的文档和源代码也有很多优势(如:wsi-lgame-pro)Git 的更多介绍,请参考我的上一篇博客:Git 版本管理工具一、 Git 命令初识在正式介绍Git命令之前,先介绍一下Git 的基本命令和操作,对Git命令有一个总体的认识示例:从Git 版本库的初始化,通常有两种方式:1)git clone:这是一种较为简单的初始化方式,当你已经有一个远程的Git版本库,只需要在本地克隆一份例如:git clone git://github.com/someone/some_pr
阅读全文
摘要:Git是一个分布式版本控制工具,它的作者Linus Torvalds 是这样给我们介绍 Git ——The stupid content tracker(傻瓜式的内容跟踪器)1、 Git 背景Git 最初由Linus Torvalds编写,用于 Linux 内核开发的版本控制工具。Git 与常用的版本控制工具 CVS、Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持,使源代码的发布和交流极其方便。Git 的速度很快,这对于诸如 Linux kernel 这样的大项目来说自然很重要,Git 最为出色的是它的合并跟踪(merge tracing)能力。实际上内核开发团
阅读全文
摘要:MVC(Model-View-Controller,模型-视图-控制器)是软件工程中的一种软件架构模式,它把软件系统分为三个基本部分:模型(Model)、视图(View)、控制器(Controller)。MVC不是一种设计模式(Design Pattern),而是一种架构模式(Architectural Pattern),用以描述应用程序的结构以及结构中各部分的职责和交互方式。它最先是在1979年的时候第一次被人提出,不过,当时环境有些不同,网络应用的概念在当时还不存在。提姆·伯纳斯李(Tim Berners-Lee)在上世纪九十年代初期的时候播种下了万维网(WWW)的种子,并永远的
阅读全文
摘要:设计模式(Design Pattern),是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软件工程的基石,如同大厦的一块块砖石一样。1、设计模式和框架 可复用面向对象软件系统现在一般划分为两大类:应用程序工具箱和框架(Framework),我们平时开发的具体软件都是应用程序,Java的API属于工具箱;而框架是构成一类特定软件可复用设计的一组相互协作的类,EJB(EnterpriseJavaBeans)是Java应用.
阅读全文
摘要:Tomcat vs Apache:您钟情于哪一款本文探讨了Apache与Apache Tomcat之间的区别,帮助开发者选择更加适宜的Web服务器。当你选择使用哪种Web服务器时,或许会因它们的差异性和技术细节等方面而困扰。如何区分Web服务器以及如何为你的项目挑选一款最佳的Web服务器,或许对你来说这是一个很难的决定。鉴于Apache目前最流行的一款Web服务器,本文将探讨Apache与Apache Tomcat两者之间的区别,以满足不同开发者的需求。Apache Web服务器通常比称之为“Apache”或者“httpd”,1995年由Robert Mc Cool和他的团队开发,由Apach
阅读全文
摘要:开发者在做Web开发时,往往会遇到一些开发问题,也许您会通过Google或者查看编程词典来寻求解决方法。今天,我们将为您提供一份非常有价值的速查表,包含JavaScript、MYSQL、PHP、CSS、HTML5、RGB Color 等1) PHP2) MYSQL3) JavaScript4) CSS5) Regular Expression6) Apache’s mod_rewrite7) HTML8) HTML Character Entities9) RGB Color10) jQuery11) Subversion12) HTML513) SEO14) CakePHP清晰大图下载原文链
阅读全文
摘要:常见的3D引擎有:Unreal、Quake、Lithtech、OGRE、Nebula、Irrlicht、Truevision3D...其中开源免费的有:OGRE、irrlicht、fly3d、NeoEngine、revolution3d、 Nebula2、Genesis3d等。OGRE在免费、开源的引擎中评价最高,一个原因是作为一个图形渲染引擎,它支持的图形特性最多,所以渲染质量也不错;另一个原因是设计模式的清晰;另外,速度也不错。OGRE将专注于向一个纯粹的、然而富于协作和扩展性的图形引擎发展,这得益于它的庞大的社群支持,使得很多事情可以通过外挂一些更专业的引擎来实现,物理引擎使用ODE、T
阅读全文
摘要:内存泄漏(memory leak),指由于疏忽或错误造成程序未能释放已经不再使用的内存的情况。在编程时进行动态内存分配是非常必要的,它可以在程序运行的过程中帮助分配所需的内存,而不是在进程启动的时候就进行分配。然而有效地管理这些内存同样也是非常重要的。在大型的、复杂的应用程序中,内存泄漏是常见的问题,当以前分配的一片内存不再需要使用或无法访问时,但是却并没有释放它,那么对于该进程来说,会因此导致总可用内存的减少,这时就出现了内存泄漏。常见检测内存泄漏的工具:C/C++1.Valgrind-Debugging and profiling Linux programs, aiming at pro
阅读全文
摘要:SVN(Subversion)是一个自由、开源的项目源代码版本控制工具。目前,绝大多数开源软件和企业代码管理,都使用SVN作为代码版本管理软件。Subversion将文件存放在中心版本库里,这个版本库很像一个普通的文件服务器。不同的是,它可以记录每一次文件和目录的修改情况,这样就可以在需要的回滚时,将数据恢复到以前的版本,并可以查看数据的更改细节。SVN 官方网址:Apache SubversionSVN 服务器配置:安装SVN服务器一、 SVN常用命令1、将文件checkout到本地目录svn checkout path(path是服务器上的目录)简写:svn co2、往版本库中添加新的文件
阅读全文
摘要:Code Review 是一种通过复查代码提高代码质量的过程,在XP方法中占有极为重要的地位,也已经成为软件工程中一个不可缺少的环节。 本文通过对Code Review的一些概念和经验的探讨,就如何进行Code Review和Code Review中应该注意什么提出一些建议。 本文中涉及的问题大部分针对JAVA类代码。同时本文不涉及Code Review过程和组织。 关键词: Code Review JAVA 代码质量 软件工程 一、Code Review简介 1 Code Review的目的 凡事知其然还要知其所以然,我们首先需要知道什么是Code Review和我们使用它的目的是什么。 C
阅读全文
摘要:学习C++和编程的50个观点http://www.programfan.com/club/showtxt.asp?id=32668推荐C++教程(综合了好几个人的推荐)http://www.programfan.com/blog/article.asp?id=7907研发推荐书籍介绍http://www.sudu.cn/info/html/edu/20080403/261058.htmlC++学习推荐书目http://hi.baidu.com/optical_engineering/blog/item/b5bf69347bbf6e3d5bb5f5a4.html撼世出击:C/C++编程语言学习资
阅读全文
摘要:1. 什么是内聚?什么是耦合?内聚,是从功能角度来衡量模块内的联系,一个好的内聚模块应当恰好做一件事。它描述的是模块内的功能联系; 耦合,是从模块角度来衡量软件结构中各模块之间相互连接的一种度量,耦合强弱取决于模块间接口的复杂程度、进入或访问一个模块的点以及通过接口的数据。耦合性,也称块间联系,指软件系统结构中各模块间相互联系紧密程度的一种度量。模块之间联系越紧密,其耦合性就越强,模块的独立性则越差。模块间耦合高低取决于模块间接口的复杂性、调用的方式及传递的信息。比如说:物品是一个模块,用户物品是一个模块,用户金钱是一个模块那么这三个模块之间应该是没有任何联系的,而模块内的功能应该是紧密联系的
阅读全文
摘要:一、 概述 软件开发模型(Software Development Model)是指软件开发全部过程、活动和任务的结构框架。软件开发包括需求、设计、编码、测试和维护 阶段。 软件开发模型能清晰、直观地表达软件开发全过程,明确规定了要完成的主要活动和任务,用来作为软件项目工作的基础。对于不同的软件系统,可以采用不同的开发方法、使用不同的程序设计语言以及各种不同技能的人员参与工作、运用不同的管理方法和手段等,以及允许采用不同的软件工具和不同的软件工程环境。最早出现的软件开发模型 最早出现的软件开发模型是1970年W·Royce提出的瀑布模型。该模型给出了固定的顺序,将生存期活动从上一个阶
阅读全文
摘要:一、 软件开发简介 软件(Software)简单的说就是那些在计算机中能看的着,但摸不着的东西,概念性的说软件也称为“软设备”,广义地说软件是指系统中的程序以及开发、使用程序所需要的所有文档的集合。软件分为系统软件和应用软件。 软件并不只是包括可以在计算机上运行的程序,与这些程序相关的文件一般也被认为是软件的一部分 。 软件被应用于世界的各个领域,对人们的生活和工作都产生了深远的影响二、软件开发的内容1) 需求:不仅仅是用户需求,应该是开发中遇到的所有的需求。比如,你首先要知道做这个项目是为了解决什么问题;测试案例中应该输入什么数据......为了清楚地知道这些需求,你经常要和客户、...
阅读全文
摘要:简介 CMMI 的全称为:Capability Maturity Model Integration,即能力成熟度模型集成。 CMMI家族包括CMMI for Development, CMMI for Service和CMMI for Acquisition三个套装产品。CMMI的基本思想 1、解决软件项目过程改进难度增大问题 2、实现软件工程的并行与多学科组合 3、实现过程改进的最佳效益 等级 1. 初始级 软件过程是无序的,有时甚至是混乱的,对过程几乎没有定义,成功取决于个人努力。管理是反应式的。2. 已管理级 建立了基本的项目管理过程来跟踪费用、进度和功能特性。...
阅读全文
摘要:软件测试就是利用测试工具按照测试方案和流程对产品进行功能和性能测试,甚至根据需要编写不同的测试工具,设计和维护测试系统,对测试方案可能出现的问题进行分析和评估。执行测试用例后,需要跟踪故障,以确保开发的产品适合需求。软件测试概念 使用人工或者自动手段来运行或测试某个系统的过程,其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别. 它是帮助识别开发完成(中间或最终的版本)的计算机软件(整体或部分)的正确度(correctness) 、完全度(completeness)和质量(quality)的软件过程;是SQA(software quality assurance)的重...
阅读全文
摘要:一、软件测试概述软件测试,是软件开发过程的重要组成部分,是用来确认一个程序的品质或性能是否符合开发之前所提出的一些要求。软件测试的目的,第一是确认软件的质量,其一方 面是确认软件做了你所期望的事情(Do the right thing),另一方面是确认软件以正确的方式来做了这个事件(Do it right)。第二是提供信息,比如提供给开发人员或程序经理的反馈信息,为风险评估所准备的信息。第三软件测试不仅是在测试软件产品的本身,而且还包括 软件开发的过程。如果一个软件产品开发完成之后发现了很多问题,这说明此软件开发过程很可能是有缺陷的。因此软件测试的第三个目的是保证整个软件开发过程 是高质量的。
阅读全文