自我介绍
快速链接
内容分类
PmWiki系统
友情链接
edit SideBar
京ICP备05001989号
|
汇集我的编程经验
关于开发模式:
IDE和代码维护:
- Eclipse号称是21世纪的EMACS,好多插件哦。
- 一个介绍美化代码风格软件的页面。
- Subversion(替代CVS的版本控制工具)最简使用说明 我目前最常使用的就是Subversion。另外据说Linux内核开发采用Git这个分布式版本控制系统,其使用模式就几乎跟Linux内核开发的组织管理模式一模一样,就我的看法,其思想有助于解决Subversion版本库间出现互相引用时的依赖问题。
- UseCVS 简单记录CVS工具的使用,在自己管理代码的时候,我都会使用Subversion,万不得已才用cvs去下载一些源代码。
- 其他版本控制工具:与Subversion和CVS不同,也存在比较成熟的分布式代码版本控制工具,比如Python实现的Bazaar,以及mercurial git monotone等。Tailor则是一个可以帮助在几乎所有知名版本控制工具之间进行相互转换的工具。
- BugTracker 问题跟踪系统,用于记录开发进度。
- Trac开发管理平台上手笔记 Trac是一个集代码管理、文档管理、Bug管理、开发进度管理于一体的管理平台,很好地整合使用了SVN、Wiki、Bug Tracker等技术。Trac可以作为开发管理的一个轻量、好用的选择,应该能够很好地支持XP编程等开发模式。有一个类似的实现是基于ROR完成的Redmine。
- Review Board是一个基于Web的代码Review平台。目前还不清楚是否还有其他好用的类似工具。
关于编程语言:
网页开发:
- 网页开发常见文件模板:css、js、php等网页开发资源文件的常见书写模板(标准化总不是坏事不是吗~)。
- Open Source Web Design(OSWD)开源设计:提供英文CSS+DVI的XHTML模板。
- PHP:关于PHP编程的一点点东西,对这种语言主要就是用用,比如用来做个人主页什么的,很少自己动手改动,这里只有一点应用部署类的经验。
- http://www.owasp.org/ 用Java实现的Web安全检测工具包,包括监控HTTP通讯的WebScarab、研究Web程序漏洞的WebGoat等工具包。
- ApacheBug:很多网页程序编好后都会使用Apache作为前端服务器以提高性能,这里汇集使用Apache时遇到的问题。
- JspAll:与JSP开发相关的汇集页,包括IDE配置、软件安装及相关经验等。
- Grails:Java社区利用Groovy整合典型MVC框架形成的ROR仿制品,能够帮助实现Java平台上的快速Web应用开发。Grails 与遗留数据库文章介绍了在Grails中处理遗留数据库的一些要点。
- LifeRayPortal:开放源码的Portal解决方案——liferay研究。以前除Liferay之外,比较成熟的主要是EXO Portal和JetSpeed,现在最关心的则是GridSphere,这个东西号称和WebSphere的API完全兼容。比较完整的开源Java Portal(也包括CMS型的Portal)列表在Manageability
- http://www.hibernate.org.cn/ Hibernate似乎可以允许以类的形式访问数据库的内容,而且这样的封装是轻量的,这个链接是随便搜索到的一个中文相关网站,内容还挺全。
- JSTL:作为网页表现层,Jsp还是比较混乱,一个新的可选的表现层是基于Taglib的JSTL。当然,更丰富的还有Structs、JSF、WebWork等等,但是也复杂很多。
- Template页面对当前基于网页的应用开发过程中,一个重要工具——模板进行一些简单的分析和讨论。
- HtmlInHtml:讨论在一个Html页面中嵌入其他页面的方法,虽然可以使用Frame的架构来完成,但也存在别的可用的方法,或许有的时候使用那些方法反而更好一些。
- JavaScripts框架:JavaScripts本身是强大的,但是API比较琐碎复杂,因此有人建立JavaScripts Framework来封装这门语言,比如jQuery支持简便的JavaScripts编码以及HTML资源定位等,类似的可能还有Prototype。
- Orbited 基于Javascript完成的socks实现,其官方已经提供了irc、xmpp等协议的实现。
- CSS框架:网页界面排版一项是个麻烦细碎的活儿,因而也有帮助解决网页界面定位的框架存在,比如YAML、YUI、Blueprint等等。
- Caja 通常能够保存内容的Web站点(比如论坛、Web邮箱等等)会完全过滤提交内容中嵌入的Javascript脚本,而Caja提供了一个对第三方脚本进行检测的解决方案,能够使Javascript的一个安全子集得到保留和执行。
- Web应用程序的自动化测试研究:自动化测试能够提高应用程序质量几乎已经被公认了,那么又如何模拟客户的行为对Web应用程序的整体进行自动化测试呢?
- http://www.shanxiwindow.net/teaching/htmlbook/index.htm HTML教程,用于参考。
- Bindows x-Desktop flex laszlo 都是用于开发基于浏览器和JavaScript的所谓胖客户端图形界面的类库,跟Mozilla的XUL体系的概念其实挺像的。目前微软等公司在改进自己的网络服务产品(比如新版hotmail)时(IBM则在Developers Works上发文章简单介绍如何用这种技术开发应用),都在使用一种称为AJAX(Asynchronous JavaScript and XML 异步JavaScript和XML,是指一种创建交互式网页应用的网页开发技术)的技术,也许这也是一种基于浏览器的胖客户端解决方案,而且说不定会成为新的Web应用标准,而且也有各种各样的AJAX支持库,比如ZK等。至于Web2.0,那会是什么呢?(胖客户端几大阵营:Flash、SVG、AJAX、微软的XAML、Sun的Java、Mozilla基金会的XUL等,参考链接。最近发现了Swingweb,可以将Swing的桌面程序完全转化为一个AJAX的Web应用程序。
- 什么是Web 2.0 粗略归纳起来,大约就是:服务,而不是打包的软件,具有高成本效益的可伸缩性;控制独特的、难以再造的数据源,并且用户越多内容越丰富;把用户作为共同开发者来信任;利用集体智慧;通过客户的自服务来发挥长尾的力量;软件超越单一设备;轻量型用户界面、开发模式、和商业模式。部分Web 2.0应用列表
- Getting Started with XForms、在 Firefox 中使用 XForms,其中后一个链接中说明的内容我已测试通过。
- HAProxy 号称简单高效的负载均衡前端实现。
标准协议:
- OAuth 现在一些社交网站在收集用户邮箱内的好友名单时,要求用户输入用户名和密码的明文,这显然是一种相当糟糕的体验。Google、微软等公司合作建立了OAuth协议规范来解决这个互通性。第三方网站通过此协议与邮箱服务商建立联系,在需要获取用户在邮箱中的数据时,第三方网站将用户导向邮箱服务商的登陆、认证界面,成功后第三方网站完成数据读取。该协议的实现主要汇集在oauth的Google Code页面。
数据库:
分布式计算:
- Hadoop:Google MapReduce机制的开源实现,帮助处理分布式计算任务,传说IBM正在推动的云计算概念就用到了Hadoop,而雅虎则在利用Hadoop重构自己的搜索引擎。
搜索引擎组件:
- Lucene:可以说是搜索领域的事实标准,有很多其他的搜索项目都是基于Lucene来做的。
- Xapian:用C和C++实现的搜索引擎,采用概率模型,与Lucene使用的向量模型是有所差别的。因为是C++实现,因而可以与许多其他编程语言进行绑定。中文分词则可以将libmmseg嵌入来完成。
工作流相关:
- flow4j:一个基于Eclipse的,完成Java和工作流建模的插件,准备研究一下。
编码规范
参考资料和书籍:
其他:
|