“这代码真垃圾”,当我们翻查一些代码寻找一个特别讨厌的bug时,同事大声这样说。“是吗”,我回答到。 像 这样的谴责,以及其它一些类似的话,在办公室里经常会听到,而且频率在增加。而最令人不安的是,这代码并不是特别的糟糕。我这话是什么意思?不能把它们写 的更好吗?当然!大多数的代码都有改善的空间——只要有足够的时间和资源。垃圾代码确实有,我们都看得见,而且都是我们自己写的,但这并不是问题。 问题是我们有一个不良的“这代码真垃圾”文化。 这是一种我感觉在web开发社区中越来越常见的文化。接着上面的例子,我请同事解释一下,解释为什么这代码很垃圾,我得不到一个直接的答复。 “这还不垃圾,你看这代码”,他回答说,那种趾高气扬我需要仰头才能看到他,紧邹的眉头就好象是说,如果不能看出这代码有多烂,那就是个傻子。结果你知道怎么着?我开始感觉有点傻了。我差点就忍不住开始跟着他一起嘲笑,认定这代码真的有多烂,多糟糕。 在 我继续下面的内容之前,我发现上面的内容并没有在最好的光线下描绘我的同事。所以,让我弥补一下。他是个非常好的小伙。坦白的说,他是我见过的最和善的小 伙之一。他友善,有一个他很爱的家庭,他跑马拉松,乐于助人,聪明,等等等等。还有一点要说明:他是一个经验不多的新手。他还在学一些基础的开发知识。这 没什么好羞愧的,我们都经历过这个阶段。那么,为什么这样一个友善、聪明的小伙,在他参与的第一个大型web项目上,他的第一反应就是去指责一些代码很垃 圾?——他甚至还没有真正的去理解它。 生活规律:垃圾往下倒。 这个问题并不单独出现在程序员新手中。很多精明人士都有这 习惯。你也许是一个奇才,一个久经考验的程序员,但如果有这样一种习惯,整个团队和项目都会受到负面影响。因为新手们把你当作知识和经验的源泉。越多的人 拥抱这种“这代码真垃圾”文化,这种文化就会越被认可,越成为模仿的对象。很快,程序员开始变的不是积极在项目上出力,而是去贬低别人在项目上的贡献。最 大嘴、最反面的程序员很快就成了最受尊敬的人。所有人都受折磨,项目受影响,而一部分人却能能得到赞美,为倒是都是垃圾而感到心满意足。 我们应该怎么做? 没有人想显得愚蠢,没有人想自己的工作被认为劣质。一旦“这代码真垃圾”文化开始传播,唯一能确保自己在别人之上的办法就是贬低别人。最终,这变成了一种负能量,而不是想着去解决问题。 那 么,对这样的一种特殊现象有什么解决方法?阻止它。不要不加思索的否定别人的代码——在没有原因、没有理解的情况下。有很多的方式可以处理那些看起来有问 题的代码。如果发现代码中有异味,想办法改进它。从理解这些代码开始,在此基础上修正。如果你发现项目中有一些不良风气,不要跟随。如果有人对你说“这代 码真垃圾”,问他为什么,然后了解查明,去做一些事情让它变的不垃圾。向最初写这些代码的人了解,也许他们这样写代码是有原因的。帮助他们,而不是诋毁他 们。 下一次,当我发现从显示器里飘出可疑的异味时,我会转身问我的同事,“我们如何改进这段它?”因为,我们要面对它们,有时候代码会很垃圾,但这不意味着我们也去变成垃圾。 [英文原文: Code culture problem ] 转自:http://www.oschina.net/news/44112/code-culture-problem
View Details项目管理对一个项目的设计和开发起着至关重要的作用;因此选择一个项目管理工具有时候是非常讲究的。它完全取决于你的需求,你是需要任何时候都可以提供在线方案,或只是一个本地应用。 项目管理是管理该项目计划,定义,监控,控制以及交付的过程,因此它的优势是大家公认的。项目是即时的,唯一的,是极力的去完成某一既定目标的。项目管理是为不断变化的项目提供专业的管理。 whats_java 翻译于 昨天(10:59) 0人顶 顶 翻译的不错哦! 它不仅包含技术还有工具的使用来描述,管理,发布一系列活动成果,预算及时限。你需要的工具是一个能满足你所有关于项目管理的需求。 随着不同地域的软件产业提出越来越多的明确需求,需要一个更好的免费的项目管理工具来管理越来越高效的软件。一个高效的好的项目管理必须是健壮的快速的且必须包含以下几个特点: 项目时间点安排 成本控制 资源分配 预算管理 文档管理 通力协作 沟通交流 在这篇文章里,我们将特别讨论10个最佳的免费项目管理工具,这将会对你的项目管理有所帮助。 whats_java 翻译于 昨天(11:20) 0人顶 顶 翻译的不错哦! OpenProj 这是一款免费并且开源的桌面应用用于替代到微软的项目中。OpenProj为桌面应用项目的管理人员提供了完美的解决方案,并且它在Unix,Linux,Windows甚至是Mac上都是相当可靠的。他是所有微软项目桌面应用的替代品,甚至可以打开本地的项目文件。它分享了业界许多基于项目需求的高质量的时间调度引擎。该方案具有成本核算,网络图(PERT图),Gantt图表,RBS、WBS报表,等等。 GanttProject 这是一款非常容易上手使用的,基于Gantt图表的项目时间调度和管理的免费工具。主要功能包括任务的分配和层级的划分,Gantt图表,生成PERT图表,资源负荷图表,HTML和PDF报告,MS项目的导出/导入,还有基于WebDAV的工作组管理。 DotProject 这是一款支持在线,多语言,多用户的项目管理解决方案。它是开源免费的,并且有开源社区的志愿者们在不断的维护更新。它主要的特点如下: 任务和项目管理 公司,联系人和部门管理 资源分配 待办事项 论坛功能 日历功能 横道图功能 报告功能 whats_java 翻译于 昨天(12:25) 0人顶 顶 翻译的不错哦! TaskJuggler 这是一款功能非常强大的现代化的,开源免费的项目管理工具。它采用了全新的方式来规划和跟踪项目,它是一个更好、更灵活地编辑一贯使用的横道图的工具。它总是被成功地应用在许多项目中,其中也包括一些有许多资源和任务比例的小项目。这成为了高级项目经理的解决方案。这涵盖了完整的项目管理开始从最初的想法到完成项目任务的整个过程。它在项目范围内的收支计划、资源调配、沟通交流和风险管理给你提供帮助。 TaskJuggler可以提供最优的时间调度,计算出你项目的时间线,资源分配,基于你给出的项目大纲和一些限制条件。内置的一致性检查和资源平衡卸载使你不需要担心不恰当的细节和警告,如果项目顺利进展,你可以腾出手来。灵活的"根据实际的需要"的方法,提供尽可能多的细节让你规划你的项目,它也非常适合新颖的管理策略,例如轻量级的项目管理和极限情况下的规划。 whats_java 翻译于 昨天(12:52) 0人顶 顶 翻译的不错哦! PHProjekt 这也是一款开源免费的模块化应用,用于协调工作组的活动,通过网络分享文档好信息。构成PHP项目的是组员日程,时间片系统,项目管理,文件管理,邮件客户端,与管理者接触,当然还有很多就不一一列举了。 ConsultComm 这是一款轻量级的,小型化的,独立的开发平台使用java语言编写的,可以让任何人同时管理多个项目,任务,客户,可以高效地跟踪在每个项目上花费的确切时间。关键特征包含如下: 轻松集成在现有的计费系统或时间管理,还包括JDBC支持,瞬间让你可以上传你的项目和所需的时间到大多数ODBC和JDBC兼容数据库。 作为一个开源免费的项目,让你不必担心专用化或供应商锁定问题。 跨平台,这样你就能联合你的Windows,OS X,Solaris和Linux工作站去处理同一个应用。 可以利用标准的JavaBean框架创建的组件迅速拓展功能,用户和其他的开发人员可以很轻松地创建他们自己的插件,快速的添加自定义功能。 定制适合你的独特的风格偏好。 whats_java 翻译于 昨天(13:21) 0人顶 顶 翻译的不错哦! ProjectPier 这也是一款自己管理PHP的,开源免费的项目管理工具,用于管理任务,团队和项目,通过自带的Web接口。这将有助于您的公司沟通,携手共进,完成既定的任务。事实上它的功能类似于其他的商业项目管理产品,不同点是可拓展性和允许自托管。 OpenGoo 它是一个完整的基于Web的解决方案,致力于提升您的团队的生产力,协作,管理和沟通。主要功能包括: 管理任务,联系人,文档,日历,电子邮件。 管理项目的进展情况,为你的客户制定账单,并跟踪时间段。 访问优雅和简洁的仪表板的信息。 与供应商,客户和同事沟通。 whats_java 翻译于 昨天(13:32) 0人顶 顶 翻译的不错哦! Collabtive 这是另一种现代化风格的Web应用程序,它使得项目团队共同努力,管理文件、项目节点和任务,并发送即时消息给对方。它支持多语言,甚至超过20种语言。它使用XML API集成了其他的Web服务。它提供的导入功能也可以从其他应用程序导入数据。 Redmine 这是一个开源的,灵活的项目管理的在线解决方案。使用的Ruby on Rails框架写的,它是跨数据库和跨平台。主要功能包括: 基于灵活的访问控制 多个项目支持 灵活的问题跟踪系统 横道图 […]
View DetailsPHP是在实践中发展迅速并被最多使用的脚本语言;包含了诸如详细的文档、庞大的社区、无数可使用的脚本及支持框架等许多特性。PHP提供的这些特性使得它比Python或Ruby等脚本语言更容易上手。 为构建极具创新乐趣的Web应用,PHP开发人员持续搜寻着有用的工具。在这篇文章中,我收集了开发人员的12个PHP调试工具,它们将有助于开发人员轻松找出并调试应用程序及脚本中的错误。下面的PHP调试工具支持Ajax请求,并包含通用数据采集器和基于堆栈的错误处理器。我希望你能在未来的项目中体会到这个列表的方便和有用之处。 1. Kint 当调试PHP代码时,var_dump()、print_r()和debug_backtrace()是我们最常用的工具。Kint,一个开源软件,一个不需安装的替代者,它提供了更好的调试体验。它巧妙地检测几乎不可读的数据,并将它们定制成规则的输出显示。变量名、文件、行号及包装的函数它全能提示出来。 源码 2. DebugBar DebugBar是一个自由开源软件,它可以被集成到任何PHP项目用来收集和定位数据。它没有第三方依赖,支持Ajax请求,包含通用数据收集器且集成常见的库。生成的bar是100% JavaScript实现的并被放置在页面底部(像开发工具一样)。新的收集器和视图可以被轻松的添加,并且可以保存或重新运行以前的请求。 源码 3. Pinba Pinba是一个可作为PHP统计服务使用的开源MySQL存储引擎。它使用收到的数据来分析PHP应用性能并快速定位任何问题。 源码 4. PHPMD PHPMD是一个易于配置,对PHP原始依赖指标友好的前端。它在你的代码中的寻找多种潜在问题,包括可能的bug、不适合的代码、未使用的参数等。 源码 5. Xde Bug Xdebug是一个自由开源的用于调试和分析PHP脚本细节的PHP扩展。由于它是一个扩展,所以使用起来很方便,且在编码端只需要很少的设置。它可以提供错误信息中堆栈跟踪和函数跟踪的所有数据,包括用户定义函数的所有参数、函数名、文件名以及行标志。Xdebug还可以提供内存分配、分析信息和代码覆盖率分析的数据。 源码 6. Whoops Whoops是一个使错误处理和调试更容易的PHP库。这个库提供基于堆栈的错误处理,并且有一个好看的界面。它有一个处理异常的简单API,能够跟踪帧及它们的数据,并可以与任何框架整合(end和Silex已经内置集成)。 源码 7. Krumo 很多PHP开发者使用print_r()和var_dump()对输出难读或未格式化的结果进行调试。Krumo是这些函数的一个替代者,它可以显示任何PHP变量的结构化信息。Krumo运行后,输出会显示成一个围绕PHP变量的可折叠的DHTML树结构。同时,它通过自身把调试过程“关掉”而不是禁用代码里的所有追溯路径的能力加快了调试过程。 源码 8. Php Debugger 调试是发现并修复bug的过程,PHP Debugger是帮助你快速的找到错误并将它们从你的PHP程序中移除的最好的工具。你可以在PHPEd中设置远程调试,通过Wizardand DBG向导中的PHP调试设置开启。 源码 9. Php Debug PHP_Debug的基本目的是在调试PHP代码时提供援助。 源码 10. Webgrind Xdebug是最受欢迎的PHP调试扩展之一。它提供了许多有用数据来帮助你在源码中查找bug。 源码 11. PHP_Dyn PHP_Dyn是有一个优秀的开源PHP调试工具。你可以跟踪函数执行并得到函数参数和返回值的一个输出。 源码 12. MacGDBp MacGDBp是一个MAC OS上的PHP调试器。它有你所期望的所有特性,是一个包含逐句运行及设置断点等功能的全功能调试器。 源码 转自:http://www.oschina.net/translate/12-php-debugging-tools-for-developers
View Details