几年前看过几个开源项目的文档发现每个开源都会有一

几年前看过几个开源项目的文档发现每个开源都会有一
几年前看过几个开源项目的文档发现每个开源都会有一

几年前,看过几个开源项目的文档,发现每个开源都会有一个帮助文件,感觉注释非常详细。当时就感慨开源项目的人精力充沛。后发觉注释和代码有很多相似之处,经过研究,了解到了doxygen。正巧前段时间公司要程序生成文档,以前很多都是都是手工完成的。经过交流,我们修改了部分源代码的注释,同时我写一个帮助,放到这里。

doxygen是一款源代码帮助文档生成工具。依靠源代码中的注释,doxygen可以轻松的生成多种格式的帮助文档,供开发者阅读。

doxygen的使用方法很简单:

第一步,需要修改源代码文件,规范现有注释。为了使注释轻松智能的变成可读的文档。doxygen规定了自己的注释格式,这样太才可以解析。最常用的注释格式是:

/**

there is comment.

*/

/*!

there is comment.

*/

同时,为了区分注释的用途,doxygen定义了很多关键字,用来标识注释描述的代码段或者用途。常用@后面跟用途关键字来标识,关键字在doxygen附带的帮助文件中有很详细的解析(在Special Commands这一节中),这里就不在累赘了。这里有一个地方需要注意一下,描述的各个分段之间最好用tab空开,用空格有的时候会出现问题。

如:

/**

* @brief 这是一个函数

* @param a 参数一

* @param b 参数二

* @return 无返回值

*/

void fooFun(int a, int b);

第二步,建立doxygen配置文件。doxygen执行的时候需要一个配置文件,即每生成一个chm都会有一个配置文件来进行生成工程具体信息的描述。手工编写那个配置文件比较繁琐,还好doxygen随身附带了一个DoxyWizard,利用这个向导。你可以方便的配置想要的信息。注意DoxyWizard仅仅是一个界面,他最终编译的时候还是执行了doxygen.exe,传输时不要只拷贝这一个文件。

打开DoxyWizard,会发现DoxyWizard分成了三个区域。

在step1中有三个按钮。

按钮[Wizard...]里面配置项目的一些基本信息

按钮[Expert...]包含高级配置信息

按钮[Load...]加载一个doxygen配置文件

在step1中,有个最重要的设置就是在[Wizard...]的Project页面中的Source code directory选项。把这个指向你的源代码文件路径。Scan recursively表示是否递归遍历。

step1完成之后,你必须要保存一下doxygen配置文件。只需要点击step2的保存按钮即可。

step3中的工作目录,也就是doxygen最终生成的帮助文档(chm)的存放路径。

最后,点击step4中的[Start]按钮即可。

在Output列表中。是doxygen生成编译时生成的信息。注意上面已经提到过,DoxyWizard和doxygen是两个不同的进程,所以在DoxyWizard输出日志的时候可能会有停顿。具体显示时候的通信机制我没有看,但这和机器或者doxygen本身的代码没有关系。

我在这里主要讲一些基本常用的属性,很多我觉得意义不大的,请自行研究,这里就不过多解释了。

在[Wizard...]中没有特别复杂的地方,稍微看一眼便知。

在[Expert...]按钮中,有一个tab页,下面来逐一解释:

Project页面,主要包括项目的基本配置。

TAB_SIZE 主要是帮助文件中代码的缩进尺寸,譬如@code和@endcode段中代码的排版,建议符合习惯,设置成4。

OPTIMIZE_OUTPUT_FOR_C 这个选项选择后,生成文档的一些描述性名称会发生变化,主要是符合C习惯。如果是纯C代码,建议选择。

SUBGROUPING这个选项选择后,输出将会按类型分组。

Build页面,这个页面是生成帮助信息中比较关键的配置页面

EXTRACT_ALL表示输出所有的函数,但是private和static函数不属于其管制。

EXTRACT_PRIVATE表示输出private函数。

EXTRACT_STATIC表示输出static函数。同时还有几个EXTRACT,相应查看文档即可。

HIDE_UNDOC_MEMBERS表示那些没有使用doxygen格式描述的文档(函数或类等)就不显示了。当然,如果EXTRACT_ALL被启用,那么这个标志其实是被忽略的。

INTERNAL_DOCS主要指是否输出注解中的@internal部分。如果没有被启动,那么注解中所有的@internal部分都将在目标帮助中不可见。

CASE_SENSE_NAMES是否关注大小写名称,注意,如果开启了,那么所有

的名称都将被小写。对于C/C++这种字母相关的语言来说,建议永远不要开启。

HIDE_SCOPE_NAMES域隐藏,建议永远不要开启。

SHOW_INCLUDE_FILES是否显示包含文件,如果开启,帮助中会专门生成一个页面,里面包含所有包含文件的列表。

INLINE_INFO 如果开启,那么在帮助文档中,inline函数前面会有一个inline 修饰词来标明。

SORT_MEMBER_DOCS如果开启,那么在帮助文档列表显示的时候,函数名称会排序,否则按照解释的顺序显示。

GENERATE_TODOLIST 是否生成TODOLIST页面,如果开启,那么包含在@todo注解中的内容将会单独生成并显示在一个页面中,其他的GENERATE选项同。

SHOW_USED_FILES 是否在函数或类等的帮助中,最下面显示函数或类的来源文件。

SHOW_FILES 是否显示文件列表页面,如果开启,那么帮助中会存在一个一个文件列表索引页面。

Messages页面主要用来设置编译时的输出信息选项。编译时的输出信息,主要可以用来提醒一些输入的错误语法。

QUIET 如果开启,那么表示关闭编译时的输出信息。

WARN_FORMAT表示日志输出的格式,没必要修改。

WARN_LOGFILE表示信息是否输出到LOG文件,因为有DoxyWizard的存在,所以这个选项没有必要使用。

HTML页面

CHM_FILE表示输出的chm文件路径

GENERATE_CHI表示索引文件是否单独输出,建议关闭。否则每次生成两个文件,比较麻烦。

TOC_EXPAND 表示是否在索引中列举成员名称以及分组(譬如函数,枚举)名称。

这个页面关系到生成chm的问题,不过很多选项很简单,一看便知。

Preprocessor 页面是预处理页面,里面也有一些配置,但是个人感觉使用默认就行了。其他的几个页面,基本上都要依赖于某些其他第三方的模块,尽管有些doxygen自带了,但是其详细说明,还得考读者自行研究。

同时附上常用的doxygen命令列表。注意doxygen的注解命令主要分成doxygen 自建命令,HTML命令方式和XML命令方式。所有的命令都是以'\'或者'@'字符开头,这表明如果你的注释中有'\'开头的单词,你必须要修改成'\\'。

由于doxygen命令比较多,另外就是doxygen的帮助文档也是非常完善,所以,这里仅仅列举几个常用的命令,其他命令请自行参考帮助文件。

@addtogroup 添加到一个组。

@brief 概要信息

@deprecated 已废弃函数

@details 详细描述

@note 开始一个段落,用来描述一些注意事项

@par 开始一个段落,段落名称描述由你自己指定

@param 标记一个参数的意义

@code .. @endcode 包含一段代码

@fn 函数说明

@ingroup 加入到一个组

@return 描述返回意义

@retval 描述返回值意义

@include 包含文件

问题:

如何编译成CHM格式的帮助文件?

1. 你必须安装微软或其相兼容的chm编译系统。通常为HTML Help Workshop。

2. 首先在[Wizard...]的Output页面中,选择HTML,然后选择到prepare for compressed HTML(.chm)。

3. 其次在[Expert...]的HTML页面中,将HHC_LOCATION指向微软的hhc工具。通常为C:/Program Files/HTML Help Workshop/hhc.exe。然后点击OK,保存,编译即可。

如何像MSDN那样在左边的树中显示函数列表?

打开[Expert...]的HTML页面,然后选中TOC_EXPAND即可。

如何去掉CHM附带的CHI文件?

注意在默认情况下,CHM会有一个CHI文件,似乎是用来加速索引的。我本人也遇到过很多用户仅仅上传了CHM,而没有上传CHI文件,导致无法正常显示的情况。我不知道是否可以通过工具重建CHI文件,但是我觉得关闭这个功能即可。打开[Expert...]的HTML页面,取消GENERATE_CHI即可。

如何像MSDN那样右边每页显示一个函数?

这个问题其实比较棘手,在[Expert...]中的Project页面,下面有一个选项叫做SEPARATE_MEMBER_PAGES,把这个选项选中,这样每个函数就是一个页。但是会有一个问题,那就是右边页面的旁边多了所有函数的列表。很遗憾,经过研究,这个确实无法去掉。我的解决方法就是自己编译一下doxygen,在memberlist.cpp的writeDocumentationPage函数中将container->writeQuickMemberLinks(ol,md);连同附近几行屏蔽掉即可。

如何在CHM中去掉当选择SUBGROUPING后去掉分组的组信息?

这个功能就是在chm的左边树中直接列出函数列表,而不用点击看右边页面了。这个功能需要修改源代码。在index.cpp中,屏蔽writeGroupIndexItem函数的

Doxygen::indexList.addContentsItem,Doxygen::indexList.incContentsDepth 和Doxygen::indexList.decContentsDepth();即可,具体不解释了,一看便知。

如何修改或者去掉右下脚Generated at ...的文字?

打开[Expert...]的HTML页面,然后在HTML_FOOTER中指定相应的HTML文件即可。注意HTML_FOOTER中至少包含BODY和HTML结束标记。即一个最小的尾部HTML至少是这样。同理,如果你要指定了HTML_HEADER,他至少包含

如何生成组?

组就是可以把同类的函数放到一个根下的显示方式。doxygen支持grouping,即你可以把相关的代码通过标志,放到同一个组中,便于查看。这主要是通过几个内置语法命令。首先通过@defgroup定义一个组,然后要把分组的函数或者类等,通过标志@ingroup加入相应的组。这样,相应的函数就被放置在同一个组中。

如何生成中文帮助?

点击[Expert...],在页Project 的OUTPUT_LANGUAGE,选择Chinese,这样输出的帮助提示信息就是中文。具体中文提示信息的文字在源代码中。

如何彻底解决DoxyGen的输出中文chm的乱码问题?

DoxyGen的实现中大概有三处编码的设置。首先是,doxyfile,也就是配置文件。其次,INPUT_ENCODING,也就是DoxyGen需要解析的输入文件的编码。最后,就是输出的编码。譬如CHM左边的索引编码。

首先是chm的标题乱码,这个比较好解决,因为DoxyWizard使用QT做的界面,它内部做了转换,所以在DoxyWizard中输入中文,在保存的时候,他自己做了转码,导致doxyfile中的最终的保存信息不正确。这个时候只需要用记事本打开doxyfile配置文件,输入相应中文即可。注意保存的时候保存成ANSI编码即可。保存成其他格式的话可能需要去掉BOM,比较麻烦,没研究了。这个相应的编码设置在[Expert...]中,页Project 的DOXYFILE_ENCODING,不输入或者默认为UTF-8都行。

其次是右边内容乱码,这个多半是因为你没有配置好输入的文件编码类型造成的。在[Expert...]的Input页面中,有一个INPUT_ENCODING,这个选项表示输入文件的编码方式,这要和你处理的源文件格式一致。对于我们来说(使用vs的人),一般设置为GB2312。当然,再次声明,编码方式取决于源文件的编码方式。如果文件编码已经是UTF-8了,然而你还将其设置成GB2312,那么DoxyGen会将UTF-8当成ANSI再进行一次UTF-8转换,自然会出错了。

最后也是经常遇到的问题就是DoxyGen生成的CHM文件的左边树目录的中文变成了乱码。这个只需要将chm索引的编码类型修改为GB2312即可。在HTML的

CHM_INDEX_ENCODING中输入GB2312即可。然而这种方法下,还有一个瑕疵之处,就是chm的搜索页的搜索结果中显示的中文文字却变成乱码了。这是因为DoxyGen默认

开启了HTML Help Workshop的Full-text search全文搜索选项,他在进行全文搜索的时候,应该是打开文件然后按照ANSI进行搜索的,(资料表示HHW不支持UTF-8,仅支持ISO-8859-1或者windows-1252编码。)而Doxygen生成的右边界面统一是UTF-8,这自然出现了问题。而在这种情况下做全文搜索,理论上只能搜索英文。

无奈,我们的解决方案只能是重新编译DoxyGen代码,为了满足搜索,只要保证右边的页面文件不是UTF-8即可。我们首先修改writeDefaultHeaderFile这个函数的代码,将其charset=GB2312。然后在TranslatorDecoder的构造函数中修改

m_toUtf8 = (void*)-1;即屏蔽文本写入时最终的转换函数。最后删除

INPUT_ENCODING的设置或者输入UTF-8。这样会使DoxyGen认为我们的文本是UTF-8的,从而不用进行转换。生成替换原始的DoxyGen即可。

另外需要补充的是,还有一种方案是不用修改作者的源代码,但是需要将DoxyGen 生成的右边的HTML文件使用工具(如iconv)手工转换成GB2312,然后再使用HTML Help Workshop生成,网上有篇文章介绍过,我测试一下,也是没有问题的。

最后,doxygen是一个开源项目,并且支持vs2005项目,这样一来,如果你觉得哪里不顺手,完全可以把代码下载后自行编译。虽然我感觉doxygen的代码写的不能算是perfect,但是对于一个这样的工程,我们无论如何都需要一种敬意。祝好运~

区块链开源项目合集

流行的区块链开源项目 咱们更偏向于金融方向的技术实践的案例和应用场景来谈区块链,但是往往有同学会问了,这些前沿技术是不是离我们太远了?只有那些大公司,像什么IBM,工商银行等等这样的大公司才能学习到,用到呢?像我们在象牙塔里的童鞋们是不是就接触不到真正的区块链项目呢?But,you know!现在仿佛世界各地都在找区块链技术人才,但是理论还不成熟,咋学呢?其实还是要在实践中学习滴,少侠,别急,今天就为大家分享一些优秀的区块链开源项目,你可以关注甚至参与到其中,没准你就是下一个“中本聪”...比尔盖茨也说不准。哈哈 本篇文章是【区块链之技术实战】的第四篇文章,咱们就来扒一扒那些比较优秀的区块链开源项目,感兴趣的攻城狮还有程序媛们,如果你想成为区块链技术高富帅(或者白富美),出任CEO,走向人生巅峰,哈哈,这篇文章不Star,你还在等啥??? Bletchley ——微软开源区块链平台项目 微软称已经了解区块链的基本原理,以及其特点,将把区块链整合到企业级项目中。为此,微软开启了Bletchley项目,Bletchley充分展现了微软开放性视野,Bletchley模块化区块链将给Azure注入新的动力。 该项目主要专注于: ?构建新的开放性平台。 ?整合身份管理,密钥管理,隐私管理,安全管理,运营管理和协作管理。 ?提供高可用、稳定的平台。 原理图:

Bletchley适用于金融服务、医疗行业和政府部门。 Hyperledger Fabric Hyperledger Fabric 是一个开源区块链实现,开发环境建立在VirtualBox虚拟机上,部署环境可以自建网络,也可以直接部署在BlueMix上,部署方式可传统可docker化,共识达成算法插件化,支持用Go和JavaScript开发智能合约,尤以企业级的安全机制和membership机制为特色。你要是不知道这些术语什么意思,就记住一点,Fabric之于区块链,很可能正如Hadoop之于大数据。 基于HyperLedger展开的项目列表: 智能合约系列 ?以太坊 ?Rootstock ?Eris ?Lisk 比特币扩展 ?Blockstream ?ColoredCoins ?CounterParty ?https://www.360docs.net/doc/a72560551.html,work

软件构架、架构和框架的区别

软件构架、架构和框架的区别 nizhigang2000的文章 软件框架(Software Framework)介绍 面向某领域(包括业务领域,如ERP,和计算领域,如GUI)的、可复用的“半成品”软件,它实现了该领域的共性部分,并提供一系列定义良好的可变点以保证灵活性和可扩展性。可以说,软件框架是领域分析结果的软件化,是领域内最终应用系统的模板。 随着软件规模的扩大、应用的广泛和软件复用技术的发展,以子程序或类(Class)为单位的软件复用有许多不足:(1)子程序库日趋其庞大以致于使用人员难以掌握,(2)大多数类粒度很小,且其自身往往不能完成有用的功能。这一问题迫使人们在复用中将一组类(或模块)及其交互作为一个整体来考虑,由此出现了软件框架。 软件框架至少包含以下组成部分: (1)一系列完成计算的模块,在此称为构件。 (2)构件之间的关系与交互机制。 (3)一系列可变点(也称热点,Hot-spots,或调整点)。 (4)可变点的行为调整机制。 开发人员通过软件框架的行为调整机制,将领域中具体应用所特有的软件模块绑定到该软件框架的可变点,从而得到最终应用系统,这一过程称为软件框架的例化(instantiation)。通过软件框架的使用,开发人员可将主要精力放在应用所特有的模块的开发上,从而大大提高了软件生产率和质量。 软件框架的行为调整机制是指如何针对具体的应用调整该框架的可变部分、如何在可变点加入特定应用模块所采用的方法和规则。行为调整机制可分为四种: (1)模板参数化。软件框架提供代码自动生成工具,该工具根据用户设置的参数自动生成所需的代码。 (2)继承和多态。通过面向对象中的子类继承和重载,在子类中加入新的功能或改变父类的行为。 (3)动态绑定。在运行时刻动态绑定所需的对象服务,可通过软件模式技术实现。 (4)构件替换。通过替换框架中可插拔的构件来加入业务特定的功能, 不同于一般的可复用软件制品,软件框架的一个显著特点是逆向控制(Inversion of Control),在复用过程中,前者需被显式调用,控制是在应用特定的模块中,软件框架则不然,应用开发人员只要将应用特定的模块绑定到框架内,框架则根据自己的交互机制自动调用该模块,控制由框架负责。 软件框架有很多种。按其应用的范围可分为: (1)系统基础设施框架。用于简化系统级软件的开发,如操作系统、用户界面、语言处理等,典型例子为MacApp, Microsoft’s MFC等。 (2)中间件集成框架。用于组装分布式应用和构件,典型例子为Microsoft’s DCOM, JavaSoft’s RMI, OMG’s CORBA等 (3)企业应用框架。用于各类应用领域,如电信、制造业、金融等。 按其表现形态可分为: (1)白盒框架。支持白盒复用,大型的类库或子程序库通常均提供白盒框架来协助复用。(2)黑盒框架。支持黑盒复用。中间件集成框架一般为黑盒框架。 构架和架构也就是通常所说的软件体系结构(software architecture).体系结构一般包括三个部分:构件,用于描述计算;连接器,用于描述构件的连接部分;配置,将构件和连接器组成一个有

Java开源项目热门推荐

||Java开源项目||热门推荐 资料来自『java开源大全』2005,Aug,10开源协议介绍Email与我交流 注:本资料供给java开源爱好者学习交流之用。此资料属于https://www.360docs.net/doc/a72560551.html,所有,如若侵犯版权,请联系我以便即时删除。 x431转载 Spring Framework【Java开源J2EE框架】 Spring是一个解决了许多在J2EE开发中常见的问题的强大框架。Spring提供了管理业务对象的一致方法并且鼓励了注入对接口编程而不是对类编程的良好习惯。Spring的架构基础是基于使用JavaBean属性的Inversion of Control容器。然而,这仅仅是完整图景中的一部分:Spring在使用IoC容器作为构建完关注所有架构层的完整解决方案方面是独一无二的。Spring提供了唯一的数据访问抽象,包括简单和有效率的JDBC框架,极大的改进了效率并且减少了可能的错误。Spring的数据访问架构还集成了Hibernate和其他O/R mapping解决方案。Spring还提供了唯一的事务管理抽象,它能够在各种底层事务管理技术,例如JTA或者JDBC事务提供一个一致的编程模型。Spring提供了一个用标准Java语言编写的AOP框架,它给POJOs提供了声明式的事务管理和其他企业事务--如果你需要--还能实现你自己的aspects。这个框架足够强大,使得应用程序能够抛开EJB的复杂性,同时享受着和传统EJB相关的关键服务。Spring还提供了可以和IoC容器集成的强大而灵活的MVC Web框架。 WebWork【Java开源Web框架】 WebWork是由OpenSymphony组织开发的,致力于组件化和代码重用的拉出式MVC模式J2EE Web框架。WebWork目前最新版本是2.1,现在的WebWork2.x 前身是Rickard Oberg开发的WebWork,但现在WebWork已经被拆分成了Xwork1和WebWork2两个项目。Xwork简洁、灵活功能强大,它是一个标准的Command 模式实现,并且完全从web层脱离出来。Xwork提供了很多核心功能:前端拦截机(interceptor),运行时表单属性验证,类型转换,强大的表达式语言(OGNL–the Object Graph Notation Language),IoC(Inversion of Control倒置控制)容器等。WebWork2建立在Xwork之上,处理HTTP的响应和请求。WebWork2使用ServletDispatcher将HTTP请求的变成Action(业务层Action类),session(会话)application(应用程序)范围的映射,request请求参数映射。WebWork2支持多视图表示,视图部分可以使用JSP,Velocity,FreeMarker,JasperReports,XML等。 Struts【Java开源Web框架】

总结Java部分的框架和开源项目

总结Java部分的框架和开源项目 Spring Framework【Java开源JEE框架】 Spring是一个解决了许多在J2EE开发中常见的问题的强大框架。Spring提供了治理业务对象的一致方法同时鼓舞了注入对接口编程而不是对类编程的良好适应。Spring的架构基础是基于使用JavaBean属性的InversionofControl容器。然而,这仅仅是完整图景中的一部分:Spring在使用IoC容器作为构建完关注所有架构层的完整解决方案方面是独一无二的。 Spring提供了唯独的数据访问抽象,包括简单和有效率的JDBC框架,极大的改进了效率同时减少了可能的错误。Spring的数据访问架构还集成了Hibernate和其他 O/Rmapping解决方案。Spring还提供了唯独的事务治理抽象,它能够在各种底层事务治理技术,例如JTA或者JDBC事务提供一个一致的编程模型。 Spring提供了一个用标准Java语言编写的AOP框架,它给POJOs提供了声明式的事务治理和其他企业事务--假如你需要--还能实现你自己的aspects。那个框架足够强大,使得应用程序能够抛开EJB的复杂性,同时享受着和传统EJB相关的关键服务。Spring 还提供了能够和IoC容器集成的强大而灵活的MVCWeb框架。【SpringIDE:Eclipse平台下一个辅助开发插件】 WebWork【Java开源Web开发框架】 WebWork是由OpenSymphony组织开发的,致力于组件化和代码重用的拉出式MVC模式J2EEWeb框架。WebWork目前最新版本是2.1,现在的WebWork2.x前身是RickardOberg开发的WebWork,但现在WebWork差不多被拆分成了Xwork1和WebWork2两个项目。Xwork简洁、灵活功能强大,它是一个标准的Command模式实现,同时完全从web层脱离出来。 Xwork提供了专门多核心功能:前端拦截机(interceptor),运行时表单属性验证,类型转换,强大的表达式语言(OGNL–theObjectGraphNotationLanguage), IoC(InversionofControl倒置操纵)容器等。WebWork2建立在Xwork之上,处理的响应和要求。WebWork2使用ServletDispatcher将要求的变成Action(业务层Action类),session(会话)application(应用程序)范畴的映射,request要求参数映射。 WebWork2支持多视图表示,视图部分能够使用 JSP,Velocity,FreeMarker,JasperReports,XML等。在WebWork2.2中添加了对AJAX 的支持,这支持是构建在DWR与Dojo这两个框架的基础之上.【EclipseWork:用于WebWork辅助开发的一个Eclipse插件】 Struts【Java开源Web开发框架】

10款免费且开源的项目管理工具

10款免费且开源的项目管理工具 摘要:在任何一个项目开发或是设计中,项目管理是被认为最重要的过程之一,因此,选择一款适宜的项目管理工具尤为重要。本文收集了10款最佳的免费且开源的项目管理工具,希望对你有所帮助! 在任何一个项目开发或设计中,项目管理被认为最重要的过程之一,因此,选择一款适宜的项目管理工具尤为重要。项目管理是指管理项目计划、定义、监控、控制以及确认交付的过程,因此它的优势也是被公认的。 随着各个领域特定项目管理需求的提升,这就需要一个更好的、免费的项目管理工具来管理。因此一款高效的、良好的项目管理必须具备快速的、强大的且包含以下功能:调度、成本控制、资源分配、预算管理、文档、协作以及沟通。本文,笔者收集了10款最佳的免费且开源的项目管理工具,希望对你有所帮助! OpenProj OpenProj是一款免费且开源的应用,它可以完美运行在Unix、Linux、Windows或Mac系统上。它是所有微软项目桌面应用的替代品,你甚至还可以打开本地项目文件。该方案具有成本核算、网络图(PERT图表)、Gantt图表、RBS以及WBS图表等功能。 GanttProject 这是一款极易使用,基于Gantt图表的项目调度和管理的免费管理工具。主要功能包括任务分配、等级分类、Gantt 图表、生成PERT图表、资源加载图表、HTML以及PDF报告、MS项目导出/导入以及基于群组工作管理的WebDAV。 DotProject

这是一款支持在线,多语言、多用户项目管理解决方案。该工具免费、开源,主要由开源社区的志愿者进行维护,主要特性包括: ?任务和项目管理; ?公司、联系人、部门管理; ?资源分配; ?待办事项; ?论坛; ?日历; ?Gantt图表; ?报告。 TaskJuggler 这是一款强大的、现代化的、免费且开源项目管理工具。它采用全新的方式来规划和追踪项目,是一款更加出众且灵活的Gantt图表编辑工具。 TaskJuggler提供最优化的时间调度,可根据你提供的项目内容和限制条件帮助你计算出项目时间轴以及资源分配。其已经被成功运用在大型的项目中,此外它还非常适合新颖的管理策略,比如轻量级的项目管理以及极限编程。 PHProjekt 这是一款免费的开源模块化应用,用于协调小组活动,通过互联网共享文档和信息。PHProjekt组件包括群组日历、时间卡系统、项目管理、文件管理、邮件客户端、联系人管理等等。 ConsultComm 这是一款使用Java编写的轻量级、独立的开发平台,允许任何人同时管理多个项目、任务或者客户端,可高效的追踪每个项目时间。主要功能包括: ?轻松集成现有的计费系统或时间管理;支持JDBC,可上传项目至与ODBC和JDBC兼容数据库; ?无需担心定制或供应商锁定问题; ?跨平台,支持Windows、OS X、Solaris以及Linux; ?可利用标准的JavaBeans框架创建插件以扩展功能。用户以及开发人员可轻松创建自己添加的插件,快速添加自定义功能; ?定制个性化风格。 ProjectPier 这是一款可自身托管的PHP、免费开源的项目管理工具,通过本地的Web接口管理任务、团队以及项目。这将有助于您的公司沟通,携手共进完成既定的任务。事实上它的功能类似于其他的商业项目管理产品,不同点在于可拓展性和允许自托管。 OpenGoo

五个开源软件解决方案

计算机世界/2006年/10月/9日/第B15版 开源软件?方案评析 《计算机世界》方案评析实验室推荐 五个开源软件解决方案 在此次征集的开源软件解决方案中,经过组织专家评选,《计算机世界》方案评析实验室推荐了5个开源软件解决方案。本报在此摘登其内容概要,有兴趣的读者可登录计世网(https://www.360docs.net/doc/a72560551.html,)查询方案全文。 开源软件解决方案 邮区中心局生产作业系统是全国邮政综合网非常重要的应用系统之一,红旗软件为其搭建了一个高效、稳定、安全的系统平台。 中科红旗 搭建邮区中心局作业系统 方案背景 邮区中心局生产作业系统是邮政综合网系统的一个重要组成部分,按照邮政生产的四大基本环节(收寄—处理—运输—投递)划分,邮区中心局主要负责邮件的处理和运输任务,它是一个邮区的邮件处理中心。 邮区中心局生产作业系统不仅要完成一个邮区中心局内邮政生产作业系统的计算机数字化、自动化和信息化的生产运作和管理,更要以此为基础构造一个全国性统一的邮政生产作业网络系统。因此该系统不只是在邮区中心局内的一个生产作业系统,更是作为全国邮区中心局间的邮件运输、交接、生产作业、业务查询、信息交换等系统的有机组成部分,承担着对局站间的物流和信息流处理的重要职责。 邮区中心局生产作业系统作为全国邮政综合网非常重要的应用系统之一,为更好地服务于目前及将来的业务需求,应尽量利用现有资源,该系统的设计、开发、实施、运行应遵循实用性、开放性、综合性、统一性以及安全性等原则。 部署实施过程 在中心机房采用了Red Flag DC Server作为操作系统,采用Red Flag HA Server对数据库及应用做系统热备份; 在生产车间采用Red Flag DC Server作操作系统。 ●生产中心 生产中心是邮区中心局生产作业系统的数据中心,在此设置枢纽服务器,存储管理邮区中心局生产作业系统的生产数据,同时还是邮区中心局内和综合网其他系统的数据交换枢纽。生产中心服务器系统分为数据库服务器和应用服务器两部分。 数据库服务器 数据库服务器是整个业务系统的核心,采用 Oracle作为数据库管理平台,数据库服务分为生产数据库和历史数据库两个实例,为了保证其7x24小时不间断地提供服务,采用两台IBM xSeries 255运行Red Flag DC Server操作系统,通过红旗高可用(HA)集群软件组成高可用系统。 应用服务器和Web服务器 邮区中心局生产作业系统的应用服务器采用Tuxedo作为中间件平台的生产作业应用系统,而对于历史数据系统采用的是在Weblogic系统上的B/S模式的数据管理及查询系统,应用服务器及Web服务器系统同样要确保其7x24小时不间断提供服务,这就要求系统同样具有极高的可靠

GitHub上最受欢迎的57个深度学习开源项目

GitHub上最受欢迎的57个深度学习开源项目TensorFlow 作为谷歌的第二代机器学习系统,TensorFlow在过去的一年里成为了github上当之无愧的最受欢迎项目。按照谷歌所说,在某些基准测试中,TensorFlow 的表现比第一代的DistBelief 快了2倍。TensorFlow 内建深度学习的扩展支持,任何能够用计算流图形来表达的计算,都可以使用TensorFlow。任何基于梯度的机器学习算法都能够受益于TensorFlow 的自动分化(auto-differentiation)。通过灵活的Python 接口,要在TensorFlow 中表达想法也会很容易。Caffe Caffe是一个高效的开源深度学习框架。由表达式,速度和模块化组成。Caffe给出了模型的定义、最优化设置以及预训练的权重,方便立即上手。Caffe能够运行很棒的模型和海量的数据,可以使用Caffe提供的各层类型来定义自己的模型。Neural style Torch实现的神经网络算法。Neural style 是让机器模仿已有画作的绘画风格来把一张图片重新绘制的算法。deepdream Deep Dream是一款图像识别工具。一个原本用来将图片分类的AI,让我们看到不一样的世界~在把一张图片喂入之后,

选择某一层神经网路(Google 的神经网路有10-30 层)进行重复处理的次数和变形的程度,就能获得一张非常后现代的「画作」。Keras 一款Python实现的深度学习库,包括卷积神经网络、递归神经网络等。运行在Theano和TensorFlow之上。Keras是一个极简的、高度模块化的神经网络库,采用Python(Python 2.7-3.5.)开发,能够运行在TensorFlow和Theano任一平台,好项目旨在完成深度学习的快速开发。RocAlphaGo 学生主导的一个独立项目,从新实现了DeepMind在2016 Nature发表的内容,《用深度神经网络和树搜索学习围棋》(Nature 529, 484-489, 28 Jan 2016)。 TensorFlow Models 基于TensorFlow开发的模型。这个库包含了各种机器学习模型在TensorFlow实践。 Neural Doodle 运用深度神经网络将涂鸦变为优雅的艺术品,从照片生成无缝纹理,转变图片风格,进行基于实例的提升,等等…还有更多!(语义风格传递的实现)CNTK 深度学习工具包。来自微软公司的CNTK工具包的效率,“比我们所见过的都要疯狂”。这部分归功于CNTK可借助图形处理单元(GPU)的能力,微软自称是唯一公开“可扩展GPU”功能的公司。(从单机上的1个、延伸至超算上的多个)在

总结Java部分的框架和开源项目

文章分类: 下面我将为大家总结一下Java部分的框架和开源项目,让您从总的方面对Java部分框架有一定的了解。 Spring Framework【Java开源JEE框架】 Spring是一个解决了许多在J2EE开发中常见的问题的强大框架。Spring提供了管理业务对象的一致方法并且鼓励了注入对接口编程而不是对类编程的良好习惯。Spring的架构基础是基于使用JavaBean属性的InversionofControl 容器。然而,这仅仅是完整图景中的一部分:Spring在使用IoC容器作为构建完关注所有架构层的完整解决方案方面是独一无二的。 Spring提供了唯一的数据访问抽象,包括简单和有效率的JDBC框架,极大的改进了效率并且减少了可能的错误。Spring的数据访问架构还集成了Hibernate和其他O/Rmapping解决方案。Spring还提供了唯一的事务管理抽象,它能够在各种底层事务管理技术,例如JTA或者JDBC事务提供一个一致的编程模型。 Spring提供了一个用标准Java语言编写的AOP框架,它给POJOs提供了声明式的事务管理和其他企业事务--如果你需要--还能实现你自己的aspects。这个框架足够强大,使得应用程序能够抛开EJB的复杂性,同时享受着和传统EJB相关的关键服务。Spring还提供了可以和IoC容器集成的强大而灵活的MVCWeb框架。【SpringIDE:Eclipse 平台下一个辅助开发插件】 WebWork【Java开源Web开发框架】 WebWork是由OpenSymphony组织开发的,致力于组件化和代码重用的拉出式MVC模式J2EEWeb框架。WebWork目前最新版本是,现在的前身是RickardOberg开发的WebWork,但现在WebWork已经被拆分成了Xwork1和WebWork2两个项目。Xwork简洁、灵活功能强大,它是一个标准的Command模式实现,并且完全从web层脱离出来。 Xwork提供了很多核心功能:前端拦截机(interceptor),运行时表单属性验证,类型转换,强大的表达式语言(OGNL–theObjectGraphNotationLanguage),IoC(InversionofControl倒置控制)容器等。WebWork2建立在Xwork之上,处理HTTP的响应和请求。WebWork2使用ServletDispatcher将HTTP请求的变成Action(业务层Action类),session(会话)application(应用程序)范围的映射,request请求参数映射。 WebWork2支持多视图表示,视图部分可以使用JSP,Velocity,FreeMarker,JasperReports,XML等。在中添加了对AJAX的支持,这支持是构建在DWR与Dojo这两个框架的基础之上.【EclipseWork:用于WebWork 辅助开发的一个Eclipse插件】 Struts【Java开源Web开发框架】 Struts是一个基于SunJ2EE平台的MVC框架,主要是采用Servlet和JSP技术来实现的。由于Struts能充分满足应用开发的需求,简单易用,敏捷迅速,在过去的一年中颇受关注。Struts把Servlet、JSP、自定义标签?和信息资源(messageresources)整合到一个统一的框架中,开发人员利用其进行开发时不用再自己编码实现全套MVC模式,极大的节省了时间,所以说Struts是一个非常不错的应用框架。【StrutsIDE:用于Struts辅助开发的一个Eclipse插件】Hibernate【Java开源持久层框架?】 Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序实用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。Eclipse平台下的Hibernate辅助开发工具:【HibernateSynchronizer】【MiddlegenIDE】 Quartz【Java开源调度框架】 Quartz是OpenSymphony开源组织在Jobscheduling领域又一个开源项目,它可以与J2EE与J2SE应用程序相结合也可以单独使用。Quartz可以用来创建简单或为运行十个,百个,甚至是好几万个Jobs这样复杂的日程序表。Jobs 可以做成标准的Java组件或EJBs。Quartz的最新版本为Quartz1.5.0。 Velocity【Java开源模板引擎】 Velocity是一个基于java的模板引擎(templateengine)。它允许任何人仅仅简单的使用模板语言(templatelanguage)来引用由java代码定义的对象。当Velocity应用于web开发时,界面设计人员可以和java程序开发人员同步开发一

开源项目之Android Afinal框架

项目如图: 本文参考网络! Afinal是一个开源的android的orm和ioc应用开发框架,其特点是小巧灵活,代码入侵量少。在android应用开发中,通过Afinal的ioc框架,诸如ui绑定,事件绑定,通过注解可以自动绑定。通过Afinal的orm框架,无需任何配置信息,一行代码就可以对android 的sqlite数据库进行增删改查操作。同时,Afinal内嵌了finalHttp等简单易用的工具,可以轻松的对http就行求情的操作。Afinal的宗旨是简洁,快速。约定大于配置的方式。尽量一行代码完成所有事情。 Afinal框架的各个模块带来了的便捷 1、FinalDB模块:android中的orm框架,一行代码就可以进行增删改查。支持一对多,多对一等查询。 2、FinalActivity模块:android中的ioc框架,完全注解方式就可以进行UI绑定和事件绑定。无需findViewById和setClickListener等。 3、FinalHttp模块:通过httpclient进行封装http数据请求,支持ajax方式加载。 4、FinalBitmap模块:通过FinalBitmap,imageview加载bitmap的时候无需考虑bitmap 加载过程中出现的oom和android容器快速滑动时候出现的图片错位等现象。FinalBitmap 可以配置线程加载线程数量,缓存大小,缓存路径,加载显示动画等。FinalBitmap的内存

管理使用lru算法,没有使用弱引用(android2.3以后google已经不建议使用弱引用,android2.3后强行回收软引用和弱引用,详情查看android官方文档),更好的管理bitmap内存。FinalBitmap可以自定义下载器,用来扩展其他协议显示网络图片,比如ftp 等。同时可以自定义bitmap显示器,在imageview显示图片的时候播放动画等(默认是渐变动画显示)。 将Afinal框架带进你的工程的过程 1.下载Afinal的jar包。推荐到GIT上下载(https://https://www.360docs.net/doc/a72560551.html,/yangfuhai/afinal),这里不仅提供了Afinal 的jar包,还包括Afinal的源码以及详细API。 2.将下载后的jar包添加到Android工程里面。相信大家都会,不过也可能会遇到当添加了Afinal包后,继承FinalActivity的Activity会报https://www.360docs.net/doc/a72560551.html,ng.classNotFound这种错误,这种情况你最好将Afinal 包直接拷贝到Android工程的lib文件夹里面。这时你看Android的Dependencies包里面如果有了Afinal包就再次运行APK应该就不会有错了。 3.一个依赖Afinal包的工程还需要添加它所需要的权限:我们在AndroidManifest.xml文件里面添加如下权限: [java]view plaincopy 1. [java]view plaincopy 1. Afinal框架的各个模块的具体使用 FinalDB使用方法: [java]view plaincopy 1.FinalDb db = FinalDb.create(this); 2. https://www.360docs.net/doc/a72560551.html,er user = new User(); 4.

java开源框架题目

一、选择题(每题2分,共24 分) 1.不属于Action 接口中定义的字符串常量的是__B _________ 。 A .SUCCESS B .FAILURE C.ERROR D .INPUT 2.在控制器类中一般需要添加相应属性的 ____ A _______ 和____ C ______ A .setter 方法 B .as 方法 C .getter 方法D.is 方法 3.控制器需要在___ B__ ____ 配置文件中进行配置。 A .web.xml B .struts.xml C.struts2.xml D.webwork.xml 4.资源文件的后缀名为_ __D ________ 。 A .txt B.doc C.property D .Properties 5. 事务隔离级别是由谁实现的?(C) A. Java 应用程序 B. Hibernate C. 数据库系统 D. JDBC 驱动程序 6.struts 中数据验证失败时,通过( B )标签显示错误信息。 A. B. C. D. 7. 有这样一个表单元素,想要找到这个hidden 元素,下面哪个是正确的?(B) A. visible C. visible() 8 下面哪一个是用来追加到指定元素的末尾的? A. insertAfter() C. appendTo() 9. 不属于Struts2 的动作类的常量返回值的是 ( A .success B .input C .never D .login B. hidden D. hidden() (C) B. append() D. after() C)

五大免费开源NAS项目

如果Windows、Unix/Linux和Mac提供的简单的文件和打印机共享功能对你来说还不够的话,那么你可以考虑使用网络附加存储(NAS)服务器。 NAS服务器提供一个中央场所让你可以存储、访问和共享本地网络--有可能还可以是互联网上的--上的文件和文档。它们在多操作系统环境下显得尤其有用,因为它们支持所有的共享协议。 你可以购买现成的NAS服务器或机箱,这些设备已经设置好可以插入网络。不过,为了节约金钱和得到更多的定制性,你可能希望自己设置你的服务器。你可以将服务器软件安装到旧的个人电脑上,这台个人电脑配置大容量的硬盘驱动器和以太网适配器就可以了。安装好后,你就可以将显示器、键盘和鼠标拔掉。 这里我们可以看看开源团体提供的五种不同的NAS服务器: FreeNAS FreeNAS可能是最流行的开源NAS项目。它是一个FreeBSD 7.2版本加上网络接口、PHP 脚本和基于m0n0wall的手册。FreeNAS根据BSD许可证进行发布。它可以安装到紧凑型闪存、USB闪存或硬盘驱动器上,或直接从一个LiveCD上启动。 FreeNAS支持下列协议:SMB/CIFS(Windows)、AFP(苹果/Mac)、NFS(Unix/Linux)、FTP、TFTP、Unison、iSCSI和UPnP。它还支持软件RAID(独立磁盘冗余阵列)(0、1和5)、ZFS(ZB 级文件系统)和磁盘加密。 FreeNAS的网络功能支持VLAN(虚拟局域网)标签、链接聚合和局域网开机(WoL)。它的监视功能包括S.M.A.R.T(智能监控工具)、电子邮件警告、SNMP(简单网络管理协议)、Syslog(系统日志)和UPS(NUT)。 你还可以从FreeNAS上发现一些额外服务:BT客户端(Transmission)、UPnP服务器(FUPPES)、iTunes/DAAP服务器(Firefly)、互联网服务器(lighttpd)和网络带宽衡量工具(lperf)。 CryptoNAS CryptoNAS(过去的CryptoBox)这个NAS项目专注于磁盘加密。它提供基于Linux的LiveCD。这个LiveCD包含了加密功能和NAS服务器。此外,它们还提供一个可以安装到现有Linux服务器上的软件包,为磁盘加密增加用户友好型的基于互联网的前端。它们根据GPL(通用公共许可证)进行授权许可。 一旦你通过CryptoNAS的互联网前端来启动加密卷,这个加密卷就可以在本地网络上通过SMB(服务器信息块)/CIFS(通用互联网文件系统)共享协议来访问。加密的磁盘分区是LUKS(Linux统一密钥设定)卷。你可以在另一台计算机上打开它们,使用Windows上的FreeOTFF来解密并访问文件,或直接通过现代的Linux系统来访问。

10款最好的免费开源项目进度管理软件

10款最好的免费开源项目进度管理软件 10款最好的免费开源项目进度管理软件 免费开源的项目管理软件有哪些?对于很多从事项目开发与设计的团队都会有这样的需求,一款优秀的项目进度管理软件在企业项目实施中有着极为重要的作用,它伴随着项目计划、定义、监控、控制以及确认交付的全部过程。那么 项目面对市场上众多的企业项目进度管理软件,有哪些项目管理软件比较好呢?小编为大家整理了10款最好的免费开源项目进度管理软件,希望能对大家有所帮助。 进度管理软件 OpenProj OpenProj OpenProj作为一款免费开源的项目管理软件,由于其在Unix、Linux、Windows或Mac系统都能完美的运行,成为了所有微软项目桌面应用的替代品。除了管理项目以外,在打开本地项目文件方面也有着比较不错的效果。 OpenProj特色功能:成本核算、Gantt图表、网络图(PERT图表)、RBS以及WBS图表。 GanttProject GanttProject GanttProject是一款基础Gantt图表的项目调度和管理的免费项目管理软件,操作简单方便。 GanttProject特色功能:任务分配、等级分类、Gantt图表、生成PERT图表、资源加载图表、HTML以及PDF报告、MS 项目导出/导入以及基于群组工作管理的WebDAV。 DotProject DotProject DotProject作为一款免费开源的项目管理系统,多语言、多用户以及支持在线操作的特性受到了人们的喜爱。目前

该系统主要由开源社区的志愿者进行维护。 DotProject特色功能:任务和项目管理;公司、联系人、部门管理;资源分配;待办事项;论坛;日历;Gantt图表;报告。 TaskJuggler TaskJuggler TaskJuggler作为一款采用全新的方式来规划和追踪项目的强大免费开源项目管理工具,提供最优化的时间调度,可根据你提供的项目内容和限制条件帮助你计算出项目时间轴以及资源分配。目前被广泛运用与大型的项目管理中,除此之外,在轻量级的项目管理以及极限编程等方面也表现极为突出。 TaskJuggler特色功能:灵活的Gantt图表编辑工具。 PHProjekt PHProjekt PHProjekt是一款免费的开源模块化项目管理应用,在小组活动协调、互联网共享文档和信息反面表现突出。 PHProjekt特色功能:群组日历、时间卡系统、项目管理、文件管理、邮件客户端、联系人管理。 ConsultComm ConsultComm ConsultComm作为一款轻量级、独立的开发平台,采用Java编写,允许任何人同时管理多个项目、任务或者客户端,可高效的追踪每个项目时间。 ConsultComm特色功能:集成计费系统或时间管理;支持JDBC,可上传项目至与ODBC和JDBC兼容数据库;无需担心定制或供应商锁定问题;跨平台,支持Windows、OS X、Solaris以及Linux;可利用标准的JavaBeans框架创建插件以扩展功能。用户以及开发人员可轻松创建自己添加的插件,快速添加自定义功能;定制个性化风格。 ProjectPier ProjectPier

各种框架架构图简介

1.Spring 架构图 Spring 是一个开源框架,是为了解决企业应用程序开发复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许您选择使用哪一个组件,同时为J2EE 应用程序开发提供集成的框架。Spring 框架的功能可以用在任何 J2EE 服务器中,大多数功能也适用于不受管理的环境。Spring 的核心要点是:支持不绑定到特定J2EE 服务的可重用业务和数据访问对象。这样的对象可以在不同J2EE 环境(Web或EJB )、独立应用程序、测试环境之间重用。 组成Spring 框架的每个模块(或组件)都可以单独存在,或者与其他一个或多个模块联合实现。每个模块的功能如下: ?核心容器:核心容器提供Spring 框架的基本功能。核心容器的主要组件是BeanFactory ,它是工厂模式的实现。BeanFactory 使用控制反转 (IOC )模式将应用程序的配置和依赖性规范与实际的应用程序代码分开。 ?Spring 上下文:Spring 上下文是一个配置文件,向Spring 框架提供上下文信息。Spring 上下文包括企业服务,例如JNDI 、EJB 、电子邮件、国际化、校验和调度功能。 ?Spring AOP :通过配置管理特性,Spring AOP 模块直接将面向方面的编程功能集成到了Spring 框架中。所以,可以很容易地使Spring 框架管理的任何对象支持AOP 。Spring AOP 模块为基于Spring 的应用程序 中的对象提供了事务管理服务。通过使用Spring AOP ,不用依赖EJB 组 件,就可以将声明性事务管理集成到应用程序中。

?Spring DAO :JDBC DAO 抽象层提供了有意义的异常层次结构,可用该结构来管理异常处理和不同数据库供应商抛出的错误消息。异常层次结构简化了错误处理,并且极大地降低了需要编写的异常代码数量(例如打开和关闭连接)。Spring DAO 的面向JDBC 的异常遵从通用的DAO 异常层次结构。 ?Spring ORM :Spring 框架插入了若干个ORM 框架,从而提供了ORM 的对象关系工具,其中包括JDO 、Hibernate 和iBatis SQL Map 。所有这些都遵从Spring 的通用事务和DAO 异常层次结构。 2.ibatis 架构图 ibatis 是一个基于Java的持久层框架。 iBATIS 提供的持久层框架包括SQL Maps 和Data Access Objects ( DAO ),同时还提供一个利用这个框架开发的 JPetStore 实例。 IBATIS :最大的优点是可以有效的控制sql 发送的数目,提高数据层的执行效率!它需要程序员自己去写sql 语句,不象hibernate 那样是完全面向对象的,自动化的,ibatis 是半自动化的,通过表和对象的映射以及手工书写的sql 语句,能够实现比hibernate 等更高的查询效率。 Ibatis 只是封装了数据访问层,替我们做了部分的对象关系映射。但代价是必须要写xml配置文件,相对于Hibernate 还要写很多sql 。Hibernate 通过工具直接从数据库模式生成实体类和基本的配置文件,而且大部分情况下不需要我们写sql ,会较大的提升开发效率。但这些也有很多的局限性,尤其是对

40个Android开源项目

GitHub上最火的40个Android开源项目(一) GitHub上最火的40个Android开源项目(一) GitHub上最火的40个Android开源项目(二) GitHub上最火的74个Android开源项目(三) GitHub上最火的40个iOS开源项目(一) GitHub上最火的40个iOS开源项目(二) GitHub在中国的火爆程度无需多言,越来越多的开源项目迁移到GitHub平台上。更何况,基于不要重复造轮子的原则,了解当下比较流行的Android与iOS开源项目很是必要。利用这些项目,有时能够让你达到事半功倍的效果。 下面,就让我们一起来看看,在GitHub平台上,究竟有哪些Android开源项目最火,也最受开发者欢迎。 1.ActionBarSherlock ActionBarSherlock应该算得上是GitHub上最火的Android开源项目了,它是一个独立的库,通过一个API和主题,开发者就可以很方便地使用所有版本的Android动作栏的设计模式。

对于Android 4.0及更高版本,ActionBarSherlock可以自动使用本地ActionBar实现,而对于之前没有Act ionBar功能的版本,基于Ice Cream Sandwich的自定义动作栏实现将自动围绕布局。能够让开发者轻松开发一款带动作栏(Actio n bar)的应用,并且适用于Android 2.x及其以上所有版本。 详情请参考:ActionBarSherlock 2.facebook-android-sdk Facebook SDK for Android是一个开源库,允许开发者将Facebook集成到所开发的Andr oid应用中。 如果想要获取更多关于示例、文档、将SDK集成到App中、源代码等信息,可直接登陆Face book Developers查看。 3.SlidingMenu(SlidingMenu Demos)

项目管理工具软件介绍(含免费、开源)

你需要了解目前的项目管理趋势,使能够获得正确的执行。有很多类型的管理工具,源码管理、问题跟踪、基于web或桌面等等。下面提供了几大类的项目管理工具,你可以从中找到与你的业务需求匹配的管理工具。 开源项目管理工具。 Trac Open Source Project Trac是一个增强版的Wiki以及软件开发过程中的问题跟踪系统,采用Python 开发。 More Information On Trac Open Source Project Redmine Redmine 是一个开源的、基于Web的项目管理和缺陷跟踪工具。它用日历和甘特图辅助项目及进度可视化显示。同时它又支持多项目管理。Redmine是一个自由开放源码软件解决方案,它提供集成的项目管理功能,问题跟踪,并为多个版本控制选项的支持。

More Information On Redmine Gantt Project Gantt Project 是一个使用 GPL 授权的开源项目管理软件,采用 Java 开发的桌面管理工具,支持 Windows、Linux 和 Mac OS X 系统,适合小型项目团队,包含进度管理和项目经理顾问功能。 More Information On Gantt Project

iTeamwork https://www.360docs.net/doc/a72560551.html, 是个免费、基于web的团队项目管理应用,UI非常简洁。 More Information On iTeamwork phpCollab phpCollab是个开源的项目协作管理软件。对于类似咨询机构这样的主体,依赖于公司端和客户端分割的情况,非常适合使用phpCollab。

相关文档
最新文档