On this page... (hide)
1. 关于开发模式
- 世界顶尖运动队教练的成功秘诀 虽然是讲曲棍球队管理的,但是其原则和软件开发团队管理是一致的。
- 用户故事估算技巧
- 硝烟中的Scrum和XP 通过实际项目实施过程案例来讲解Scrum和XP。
- Scrum 大白话总结
- Getting Real By 37signals
2. IDE和代码管理
- Eclipse号称是21世纪的EMACS,好多插件哦。
- 一个介绍美化代码风格软件的页面。
- Subversion(替代CVS的版本控制工具)最简使用说明 个人感觉目前最常用的还是Subversion。
- UseCVS 简单记录CVS工具的使用,在自己管理代码的时候,我都会使用Subversion,万不得已才用cvs去下载一些源代码。
- 分布式版本控制工具:分布式版本控制工具不但能够模拟中心服务器式的工作模式(类似Subversion和CVS),还能够支持很多对敏捷开发、开源项目合作非常重要的协同工作习惯,很多时候是更为方便好用的选择。其中最流行的几个工具是:Python实现的Bazaar和mercurial,以及git、GNU Arch、monotone等。Tailor则是一个可以帮助在几乎所有知名版本控制工具之间进行相互转换的工具。
- BugTracker 问题跟踪系统,用于记录开发进度。
- Trac开发管理平台上手笔记 Trac是一个集代码管理、文档管理、Bug管理、开发进度管理于一体的管理平台,很好地整合使用了SVN、Wiki、Bug Tracker等技术。Trac可以作为开发管理的一个轻量、好用的选择,应该能够很好地支持XP编程等开发模式。有一个类似的实现是基于ROR完成的Redmine。
- GForge 也是一个集成的项目管理平台,最初代码来自Source Forge平台,目前提供的功能也仍然与Source Forge很类似。
- Review Board是一个基于Web的代码Review平台。目前还不清楚是否还有其他好用的类似工具。
- Trello:我觉得互联网式的快速轻量开发应该用类似这样的工具管理。
- 如果是非程序开发类的事务可以考虑用 WunderKit 。
- 持续集成工具有 Python 实现的Bitten和 Java 实现的Hudson等等很多(并不是说持续集成工具本身用什么语言它就只能支持对什么语言的测试,这是两回事)。
3. 关于编程语言
- 十年学会编程:学会一门语言的基本语法并不难,可是掌握一门语言不易。真正提升技术水平才是正路,而这必然需要持续投入大量的时间。另外参见Peter Norvig:编程语言的选择并不重要。
- Python页面记录我学习Python的一点小经验。
- Java汇总与Java语言相关的资料。
- ROR一篇完整的资源和概念介绍
- http://www.cngnu.org/technology/0556/266.html Perl编译为可执行程序的介绍,也有其他方面关于Perl的东西,很详细。
- http://chs.gotdotnet.com/quickstart/aspplus/ Asp.net快速入门。
- Ultimate++:新的跨平台图形框架库,代码相当简洁。http://upp.sourceforge.net/
- Erlang:Erlang是一个结构化,动态类型编程语言,内建并行计算支持。最初是由爱立信专门为通信应用设计的,比如控制交换机或者变换协议等,因此非常适合于构建分布式,实时软并行计算系统。
- Haskell:号称世界上语法最优美的编程语言,这是一种“函数式”编程语言。参考:跨越边界: 用 Haskell 研究函数性编程和Haskell教程。
- Lua:小巧轻量强大的C/C++的扩展脚本语言。
- Smalltalk:被称为学习面向对象编程的最佳语言,并且Smalltalk还是一个完整的环境,特别设计用于应用的开发和发布。 Squeak是一个开源的、高便携性的Smalltalk实现,不但是成熟的Smalltalk开发环境,而且也可以作为儿童教育的平台来使用。Smalltalk还有一个较为著名的Web开发框架Seaside。
4. 网页开发
工具:
- 50 个Web 设计师必备的超便利工具
- Selenium:一个用于Web系统自动化验收/功能测试的工具。应用Selenium和Ruby进行面向领域的Web测试提到了一些正确使用Selenium的要领。与之类似的工具还有Windmill。
- http://www.owasp.org/ 用Java实现的Web安全检测工具包,包括监控HTTP通讯的WebScarab、研究Web程序漏洞的WebGoat等工具包。
- Web应用程序的自动化测试研究:自动化测试能够提高应用程序质量几乎已经被公认了,那么又如何模拟客户的行为对Web应用程序的整体进行自动化测试呢?
前端技术:
- http://www.shanxiwindow.net/teaching/htmlbook/index.htm HTML教程,用于参考。
- 网页开发常见文件模板:css、js、php等网页开发资源文件的常见书写模板(标准化总不是坏事不是吗~)。
- Open Source Web Design(OSWD)开源设计:提供英文CSS+DVI的XHTML模板。
- JavaScripts框架:JavaScripts本身是强大的,但是API比较琐碎复杂,因此有人建立JavaScripts Framework来封装这门语言,比如jQuery支持简便的JavaScripts编码以及HTML资源定位等,类似的还有Prototype、yui、dojo、MooTools等等不少。也有的进一步在框架基础上提供了很多封装好的控件,比如ExtJs。
- MochiKit:使用体验相当特别的 JavaScript 库。它不是把 JS 嵌入到 html 中,而是给 html 标签增加一些新属性,并且给标签绑定一些事件来实现功能,听起来很像一般桌面程序的界面处理方法。
- KindEditor:国产开源所见即所得 HTML 编辑器,功能丰富、方便易用。
- Orbited 基于Javascript完成的socks实现,其官方已经提供了irc、xmpp等协议的实现。
- JiaThis:分享到各种 Web 2.0 网站的公共组件,有按钮、图标、侧栏三种风格。
- LazyLoad:一段无依赖的袖珍 JS 代码,可以延后载入 JS 和 CSS 代码,改善页面载入速度、优化前端体验。
- Caja 通常能够保存内容的Web站点(比如论坛、Web邮箱等等)会完全过滤提交内容中嵌入的Javascript脚本,而Caja提供了一个对第三方脚本进行检测的解决方案,能够使Javascript的一个安全子集得到保留和执行。
- 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应用程序。
- CSS框架:网页界面排版一项是个麻烦细碎的活儿,因而也有帮助解决网页界面定位的框架存在,比如YAML、YUI、Blueprint等等。参考:Choosing The Best CSS Framework: A Complete Guide
- Getting Started with XForms、在 Firefox 中使用 XForms,其中后一个链接中说明的内容我已测试通过。
前端技巧:
- Internet Explorer 6 Bugs 解决方法
- [CSS] IE6 模擬 position:fixed 純 CSS 解法:IE6 下下拉选单的宽度不大容易控制(会受到下拉选单备选项宽度的影响),这篇文章可能是给出了这种情况的一个替代解法。
- HtmlInHtml:讨论在一个Html页面中嵌入其他页面的方法,虽然可以使用Frame的架构来完成,但也存在别的可用的方法,或许有的时候使用那些方法反而更好一些。
语言:
- PHP:关于PHP编程的一点点东西,对这种语言主要就是用用,比如用来做个人主页什么的,很少自己动手改动,这里只有一点应用部署类的经验。
- JspAll:与JSP开发相关的汇集页,包括IDE配置、软件安装及相关经验等。
架构:
- 网站架构相关PPT、文章整理
- Grails:Java社区利用Groovy整合典型MVC框架形成的ROR仿制品,能够帮助实现Java平台上的快速Web应用开发。Grails 与遗留数据库文章介绍了在Grails中处理遗留数据库的一些要点。
- Play framework:开发高效、运行高效的 Restful 风格开发框架,或许这将拯救 Java 程序员于水火之中。。
- 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页面对当前基于网页的应用开发过程中,一个重要工具——模板进行一些简单的分析和讨论。
服务器:
其他:
- 什么是Web 2.0 粗略归纳起来,大约就是:服务,而不是打包的软件,具有高成本效益的可伸缩性;控制独特的、难以再造的数据源,并且用户越多内容越丰富;把用户作为共同开发者来信任;利用集体智慧;通过客户的自服务来发挥长尾的力量;软件超越单一设备;轻量型用户界面、开发模式、和商业模式。部分Web 2.0应用列表
5. 数据库
- MySQL:记录使用MySQL的一些经验。
- Infobright:基于 MySQL 实现的开源数据仓库解决方案,并且支持联机分析。
- PostgreSQL:记录一点PostgreSQL的使用经验。
- SQLite:关于SQLite使用的一点经验。
6. 标准协议
- OAuth 现在一些社交网站在收集用户邮箱内的好友名单时,要求用户输入用户名和密码的明文,这显然是一种相当糟糕的体验。Google、微软等公司合作建立了OAuth协议规范来解决这个互通性。第三方网站通过此协议与邮箱服务商建立联系,在需要获取用户在邮箱中的数据时,第三方网站将用户导向邮箱服务商的登陆、认证界面,成功后第三方网站完成数据读取。该协议的实现主要汇集在oauth的Google Code页面。
- Sync4j:一个开源的SyncML实现,用于同步分布式的数据,可能是PIM软件中的数据,也可以是数据库条目。
7. 互联网基础服务
8. 分布式计算
- 云计算初步 探讨 Hadoop 等云计算解决方案及应用模式。
- 分布式系统的工程化开发方法 这里的分布式系统既包括分布式数据分析,也包括一般的高可用性 Web 集群等,文档讨论的是具有通用性的原则和经验。
9. 搜索引擎组件
- Lucene:可以说是搜索领域的事实标准,有很多其他的搜索项目都是基于Lucene来做的。
- Xapian:用C和C++实现的搜索引擎,采用概率模型,与Lucene使用的向量模型是有所差别的。因为是C++实现,因而可以与许多其他编程语言进行绑定。中文分词则可以将libmmseg嵌入来完成。
10. 工作流相关
- flow4j:一个基于Eclipse的,完成Java和工作流建模的插件,准备研究一下。
11. 编码规范
- Trac系统的源代码目录 该项目随代码带有的文档内容十分丰富且标准,建立新的项目时可以参考设立这些文件。
- API 設計 與 命名 技巧
12. 参考资料和书籍
- 转载《翻译的艺术——致译者的一封信》
- GoodBook:看过的、觉得不错的书。
13. 其他
- Tango Desktop Project是一套开源软件用的图标库!DeveloperWorks上Web设计的免费资源介绍
- DataSets:给出几个提供模式识别训练集的网址,用于检测你的算法的正确性。