??xml version="1.0" encoding="utf-8" standalone="yes"?>青青在线精品,国际精品欧美精品,国产欧美日韩中文字幕http://www.aygfsteel.com/kaiwang/我们的成长日?记录我们的点Ҏ?zh-cnThu, 17 Jul 2025 23:00:51 GMTThu, 17 Jul 2025 23:00:51 GMT60制定计划的几个技?http://www.aygfsteel.com/kaiwang/archive/2006/03/12/34931.html成长记录成长记录Sun, 12 Mar 2006 13:34:00 GMThttp://www.aygfsteel.com/kaiwang/archive/2006/03/12/34931.htmlhttp://www.aygfsteel.com/kaiwang/comments/34931.htmlhttp://www.aygfsteel.com/kaiwang/archive/2006/03/12/34931.html#Feedback1http://www.aygfsteel.com/kaiwang/comments/commentRss/34931.htmlhttp://www.aygfsteel.com/kaiwang/services/trackbacks/34931.html制定计划是一件困隄事情Q在软g开发中哪一件事情不隑֑Q)Q不只是新手Q就是有好几q工作经验的人,对制定计划也颇感为难Q往往随便l出个时间了事。我曾亲历过不少场面Q大家对d计划的态度很随意,Ҏ间的估计都是随口而出的。大多数时候,理者都会对勇士们夸几句Q对谨慎者报以轻视?/FONT>

 

实践证明q些计划都是U怸谈兵Q有的严重超期,有的质量不过养I有的功能遗漏Q很按预期完成的。这也难怪,是_ֿ制定的计划都有偏差,何况是随便给出的呢?/FONT>

 

q里ȝ一些个人经验,q是对简单Q务而言的。所谓简单Q务指的是能分到某个h头上的Q务,不包括需要一个小l协同完成的dQ当焉分也适用于小lQ务的Q?/FONT>

 

1.         对Q务尽可能的细划。Q务分得越l,考虑得越周到Q遗漏的可能少。同时我们对l小d的估计更准确Q我惌也是大家钟爱WBS的缘故吧?/SPAN>

 

2.         建立d的风险列表。外在环境、技术难炏V甚臌一D|间工作状态,都会影响d的进度。风险很多,列出我们能处理的风险差不多了,至于W三ơ世界大战之cȝ风险完全可以抛开。根据风险列表,在理想的计划上,加上一定的风险储备?/FONT>

 

3.         征求做过cMd的同事的意见。我们不是神仙,对从未有cMl验的Q务,很难估计准确Q征求做q类gQ务的同事的意见是明智的做法,臛_我们能从中了解一些潜在的风险?/FONT>

 

4.         不断调整计划。计划不是不变的Q早期的估计或多或少的有些偏差。随着d的进展,一些风险的消除Q以及这期间的经验积累,我们可以更准的估计旉了。一般来说在d预定旉q去30%左右Ӟ重新评估一下Q务计划是比较好的习惯?/SPAN>

 

5.         及时反馈d的执行情c特别是研究性Q务,出现计划与实际较大差异的情况是很常见的。让你的上司清楚d的执行情况,很有必要Q一旦出现较大偏差,他可以对你提供帮助,或者对整体计划q行调整。切C要在旉快完了,才报告出了大问题?/FONT>

 

6.         计划要实事求是,不是估计旉短好。不要因为面子上的问题,把时间估计得q短。否则你的Q务太重,不但会媄响你的正怼息和工作情AQ最l无法完成时Q面子丢了是,影响整体计划是大?/FONT>

 

7.         采用PSP中一些方法,评估自己的效率。记录在执行dq程Q你的时间分配情况,估计你在做某cM情时的效率,Z后类似的d提供l验数据?/SPAN>



成长记录 2006-03-12 21:34 发表评论
]]>
prototype.js开发笔?/title><link>http://www.aygfsteel.com/kaiwang/archive/2005/12/08/23041.html</link><dc:creator>成长记录</dc:creator><author>成长记录</author><pubDate>Thu, 08 Dec 2005 13:25:00 GMT</pubDate><guid>http://www.aygfsteel.com/kaiwang/archive/2005/12/08/23041.html</guid><wfw:comment>http://www.aygfsteel.com/kaiwang/comments/23041.html</wfw:comment><comments>http://www.aygfsteel.com/kaiwang/archive/2005/12/08/23041.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/kaiwang/comments/commentRss/23041.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/kaiwang/services/trackbacks/23041.html</trackback:ping><description><![CDATA[     摘要: prototype.js开发笔? 覆盖版本 1.3.1 1. Prototype是什? 或许你还没有用过它, prototype.js 是一个由Sam Stephenson写的JavaScript包。这个构思奇妙编写良好的一D兼Ҏ准的一D代码将承担创造胖客户端, 高交互性WEB应用E序的重担。轻村֊入Web 2.0Ҏ?如果你最q体验了q个E序...  <a href='http://www.aygfsteel.com/kaiwang/archive/2005/12/08/23041.html'>阅读全文</a><img src ="http://www.aygfsteel.com/kaiwang/aggbug/23041.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/kaiwang/" target="_blank">成长记录</a> 2005-12-08 21:25 <a href="http://www.aygfsteel.com/kaiwang/archive/2005/12/08/23041.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JDK日志分http://www.aygfsteel.com/kaiwang/archive/2005/10/30/17472.html成长记录成长记录Sun, 30 Oct 2005 14:40:00 GMThttp://www.aygfsteel.com/kaiwang/archive/2005/10/30/17472.htmlhttp://www.aygfsteel.com/kaiwang/comments/17472.htmlhttp://www.aygfsteel.com/kaiwang/archive/2005/10/30/17472.html#Feedback0http://www.aygfsteel.com/kaiwang/comments/commentRss/17472.htmlhttp://www.aygfsteel.com/kaiwang/services/trackbacks/17472.html日志QLogQ是什么?字典对其的解释是"ҎU机器工作情冉|某项dq展情况的记?。对于应用系l来_日志应该记录应用系l的q行状况了?BR>
是否需要记录日志?q个问题无需回答Q这是毋庸置疑的--当然要记了?BR>剩下的问题就是应该如何记录日志才能确保日志具有高可用性和低耗性了。日志信息过于简化,乃至于没有日志,则用h法找到解决问题所需的信息,q而妨问题的解决Q然而日志信息过于详l不仅会降低pȝ的性能而且会真正有用的信息没在文字的vz中?BR>
为此JDKl出了徏议的日志分标准。将不同的信息根据其重要性分U。与此同时可以根据实际需要在JRE中设|需要记录的日志U别--U别高于此值的日志才被记录。依照JDK提供的标准(java.util.logging.LevelQ将日志划分为OFF、SEVERE、WARNING、INFO、CONFIG、FINE、FINER、FINEST、ALL{从高到低九个别。他们都分别对应着唯一的整数|即OFF=Integer.MAX_VALUE、SEVERE=1000、WARNING=900、INFO=800、CONFIG=700、FINE=500、FINER=400、FINEST=300、ALL=Integer.MIN_VALUE。通过对java.util.logging.Level的泛化(扩展Q,开发h员可以在JDK提供的标准基之上定义自己的日志分U标准?BR>
在这九个U别中OFF、SEVERE、WARNING、INFO、CONFIG、ALL比较Ҏ理解?BR>
OFFU别主要用于JRE日志输出控制Q表CZ输出M信息?BR>
SEVEREQ严重)U别描述l织E序正常q行的重大事件。这些事件的表述必须能够让最l用户和pȝ理员清晰地了解到底发生了什么事情?BR>
WARNINGQ警告)U别描述了最l用hpȝ理员维护时比较感兴的事gQ或指示pȝ存在潜在问题的事件。这些事仉需要特别提醒最l用hpȝ理员注意?BR>
INFOQ信息)U别主要用于描述输出到控制台或其替代品的Q具有相当程度重大意义的事g。譬如系l的心蟩信息Q以及其他系l希望告知最l用hpȝ理员的信息{?BR>
CONFIGQ配|)U别主要用于描述可以辅助调试解决问题的静态配|信息。譬如CPUcd、操作系l类型、内存容量、系l语a{等?BR>
ALLU别也是主要用于JRE日志输出控制Q表C出所有日志信息?BR>
FINE、FINER、FINEST{三个别被用于描述不同E度的跟t信息。这三个U别被sun分别译?良好"Q?较好"?最?Q但是笔者认为翻译ؓ"略细"Q?较细"Q?最l?更合适。这三个U别比较Ҏ使h难于区分。到底什么样的信息应该以哪个U别输出呢?

一般说来,FINEU别用于输出开发h员广泛关注的信息。包括小的可恢复的故障,潜在的性能问题、数据源q接不、服务超时等?BR>
FINERU别描述比FINEU别更详l的信息。包括进?q回Ҏ调用Q抛Z一个异常等信息?BR>
FINESTU别描述更详l的调试信息。包括开发h员在Ҏ内ؓ了调试方便而输出的调试信息Q即某些日志分pȝ中定义的DEBUGU别信息?BR>
方法调?q回信息作ؓ一个单独的U别处理是一个明智的选择。在解决pȝq行问题Ӟ通常ҎҎ调用/q回q程p大致定问题所在?BR>
此日志分U标准被q泛地应用于中小型系l中。更详细的信息可以参考JDK
API文档的java.util.logging部分?BR>



成长记录 2005-10-30 22:40 发表评论
]]>
优秀E序员的两大要素Q懒 + W?/title><link>http://www.aygfsteel.com/kaiwang/archive/2005/10/30/17471.html</link><dc:creator>成长记录</dc:creator><author>成长记录</author><pubDate>Sun, 30 Oct 2005 14:33:00 GMT</pubDate><guid>http://www.aygfsteel.com/kaiwang/archive/2005/10/30/17471.html</guid><wfw:comment>http://www.aygfsteel.com/kaiwang/comments/17471.html</wfw:comment><comments>http://www.aygfsteel.com/kaiwang/archive/2005/10/30/17471.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.aygfsteel.com/kaiwang/comments/commentRss/17471.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/kaiwang/services/trackbacks/17471.html</trackback:ping><description><![CDATA[<P style="TEXT-INDENT: 2em"><STRONG>?</STRONG></P> <P style="TEXT-INDENT: 2em">只有懒惰的程序员才会ȝ写那些可以最l代替自己工作的自动化工P才不会成天ؓ了实现相似的功能ȝ写大D大D冗余重复的代码 - q种代码往往是Y件后期维护和重构的天敌。通常来说Q由于惰性的׃所产生出来的工具和E序最l极大的提高生开发的速度?/P> <P style="TEXT-INDENT: 2em">当然Q对于一个程序员来说Q光光具备懒惰这个要素还是不够的。在享受懒惰之前Q他必须以最大的热情和最高的效率ȝI解放自q途径Q比如:扑ֈ最有助于开发的工具Q最能体现“一ơ编写,多次复用”精的代码架构的设计。只有在q些必要的工作之后,才可能真正n受轻杄E的乐趣?/P> <P style="TEXT-INDENT: 2em">所以“懒”的_N用一句老话来描qͼ那就是磨刀不误砍柴功。如果你不想办法亮手中的柴刀Q就一天二十四时都在砍柴Q效果也不如拿把锋利的斧头一天只砍一时?/P> <P style="TEXT-INDENT: 2em">从这个角度来_Googlel员工的20%自由旉是完全发挥了“懒”的能动力。ؓ了更好的享受h的乐,员工会更加具有创造力的去高效完成自己的Q务?/P> <P style="TEXT-INDENT: 2em">夸张一Ҏ_懒惰才是人类q步的原动力?/P> <P></P> <P style="TEXT-INDENT: 2em"></P> <P style="TEXT-INDENT: 2em"><STRONG>W?/STRONG> <P style="TEXT-INDENT: 2em">q一点似乎比懒更让h不能接受。在解释q里所说的W的具体含义之前Q我们先看看一个聪明hQ或者说认ؓ自己_聪明Q会做什么: <BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px"> <P></P> <P style="TEXT-INDENT: 2em">1) 停止学习新的东西</P> <P style="TEXT-INDENT: 2em">2) 不愿意用批判的眼光去审视自己的工?</P></BLOCKQUOTE> <P></P> <P style="TEXT-INDENT: 2em">W?点将使我们很隑֎接受或者主动的ȝI一Ҏ的技?- 即新技术能带给他更多工作上的便利。第2点会使我们无法清晰的分析自n工作的问题所在,要对其进行改q或者重构就更加困难?/P> <P style="TEXT-INDENT: 2em">从这两点来考虑Q作Z个程序员太自以ؓ是不见得是g好事情。由于对自n的过于自信,往往无法客观的看待自己和自己的工作。相反的Q笨一点(切的说Q谦逊一点)有时候倒有助于开发的利q行。D例来_当程序出现bug的时候,最好尽早承认问题是出在自己~写的代码上面而不是在于编译器Q当焉非是字节高低位编码方式之cȝ问题Q这U问题编译器会是错误的根源之一Q。如果你太自负的认ؓ自己的程序没有问题而去猜测可能是编译器或者其他的什么外部因素出问题的话Q那么十有八九你会在调试q程中走上一长段的弯路?/P> <P></P> <P style="TEXT-INDENT: 2em"></P> <P style="TEXT-INDENT: 2em">E序员应该笨一些的更ؓ关键的原因在于,当需要思考问题的最佌x案的时候,往往要求我们首先要蟩出思维定式。你对系l了解的多Q积累了多的经验,p难走出已有的局限,可以试的范围就小。相反的Q对于一个什么也不懂的门外汉来说Q因为没有Q何失败的记忆和潜规则的约束,也就没有什么是“不可能”的Q这L大脑所能迸发出来的在专业h士看h愚不可及的想法往往正是解决问题所需要的关键Ҏ在?BR></P> <P style="TEXT-INDENT: 2em">可能很多E序员都会有cM的经历,在面对别人(其是其他部门)对于一个bug的描q的时候,必须把自己摆在一个普通用戯不是程序开发者的角度来分析问题,否则的话可能你永q都惌不到q种错误也会发生。越能让自己变得“笨”v来,能很快的定位到问题所在。我们先看看q么一D关于web开发问题的E序员和客服人员的对话: <BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px"> <P></P> <P style="TEXT-INDENT: 2em">“从昨天开始我们的用户q不到我们站点上的Logo了。?/P> <P style="TEXT-INDENT: 2em">“他试过重启览器么Q?/P> <P style="TEXT-INDENT: 2em">“是的。?/P> <P style="TEXT-INDENT: 2em">“他试过重启电脑么??/P> <P style="TEXT-INDENT: 2em">“是的。?/P> <P style="TEXT-INDENT: 2em">“他清空q浏览器Cache么??/P> <P style="TEXT-INDENT: 2em">“是的。?/P> <P style="TEXT-INDENT: 2em">“他的浏览器版本是IE6么??/P> <P style="TEXT-INDENT: 2em">“是的。?/P> <P style="TEXT-INDENT: 2em">“他信是真的看不到Logo了么Q?/P> <P style="TEXT-INDENT: 2em">“是的。?/P> <P style="TEXT-INDENT: 2em">“他是在电脑昄器屏q上看我们的站点么??/P> <P style="TEXT-INDENT: 2em">“什么??/P> <P style="TEXT-INDENT: 2em">“比如说Q它可能是打印出来看不到Q?/P> <P style="TEXT-INDENT: 2em">“不。他是在昄器上看的。?/P> <P style="TEXT-INDENT: 2em">“除了站点Logo之外Q他是不是其他的囄都看不到Q?/P> <P style="TEXT-INDENT: 2em">“什么?哦。我再问问他。?/P></BLOCKQUOTE> <P></P> <P style="TEXT-INDENT: 2em">从这D对话来_估计用户实际上是止了浏览器昄囄的功能(或者他儿子q的Q。不怎么P如果你不是用q种ȝ式的思维方式d扄案的话,可能怎么也找不到问题的根源?/P> <P style="TEXT-INDENT: 2em">很多时候,问题发现者对于问题的描述往往是非常片面的Qƈ且加上了主观推测的成分在里面。如果你不能透过q些主观的描q去发现问题的实际表象,或者说Ҏ是你自己根据程序员的经验逻辑来判断问题所在的话,十有八九会在歧途上走远?/P> <P style="TEXT-INDENT: 2em">对于白痴U的问题Q只有用白痴的行为方式才能得到答案?/P> <P></P> <P style="TEXT-INDENT: 2em"></P> <P style="TEXT-INDENT: 2em">即便同样是程序员Q但对于你的E序q不熟悉Q也会经常有q样的疑问:“ؓ什么我调用你的代码出错了?”这U问题的{案Q很多时候是因ؓ他们的调用方式不对,或者调用了错误的库文gQ或者库文g的版本用不当,或者根本就没有联接到库文g上。当你想让同事帮你检查一下程序中的一个莫名其妙的bug的时候,一般来说希望他对你的系l了解的少好Q只有这样他才会问一些你自己认ؓl对不可能出问题的“笨”问题?/P> <P style="TEXT-INDENT: 2em">所以“笨”的_N在于你如何去思考问题:不要假设些什么,把自己假讄太完或者把别h假设的很聪明都会使你忽视一些很显的事实。思考的前提必须是完整的事实表象Q思考的q程必须是抛弃成见的问题跟踪。在发现事实之前作太多的主观思考和臆断Q倒不如把自己当作白痴一h行动更好?/P> <P style="TEXT-INDENT: 2em">当然Q不思考的一个极端是不分情况都直接去做,另一个极端是完全q事实Q用思想办事。一个优U的程序员应该做好权衡?0ơ决定里面的1ơ错误决定不是致命的Q只?ơ正的军_而另?ơ没有Q何决定才更糟p?/P> <P style="TEXT-INDENT: 2em">最后是一个蜈蚣的故事。蜈蚣本来用自己的几癑֏脚走路走的很快很好,但他从来没有花时间去惌Z么。直到有一天,一只臭虫问他:“你是怎么理好你的几癑֏脚的Q你不觉得这是g很困隄事情吗?”臭虫问完之后就C。只剩下蜈蚣坐在CQ不停的思考这个问题,却一直想不出个究竟。从此以后,q只蜈蚣再也没办法好好的走\?/P><img src ="http://www.aygfsteel.com/kaiwang/aggbug/17471.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/kaiwang/" target="_blank">成长记录</a> 2005-10-30 22:33 <a href="http://www.aygfsteel.com/kaiwang/archive/2005/10/30/17471.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>XML数据?/title><link>http://www.aygfsteel.com/kaiwang/archive/2005/10/30/17470.html</link><dc:creator>成长记录</dc:creator><author>成长记录</author><pubDate>Sun, 30 Oct 2005 14:26:00 GMT</pubDate><guid>http://www.aygfsteel.com/kaiwang/archive/2005/10/30/17470.html</guid><wfw:comment>http://www.aygfsteel.com/kaiwang/comments/17470.html</wfw:comment><comments>http://www.aygfsteel.com/kaiwang/archive/2005/10/30/17470.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/kaiwang/comments/commentRss/17470.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/kaiwang/services/trackbacks/17470.html</trackback:ping><description><![CDATA[<FONT face=Verdana>什么是XML数据? <BR>数据岛是指存在于HTML面中的XML代码。数据岛允许你在HTML面中集成XMLQ对XML~?nbsp;<BR>写脚本,而不需要通过脚本?lt;OBJECT>标签dXML。几乎所有能够存在于一个结构完?nbsp;<BR>的XML文档中的东西都能存在于一个数据岛中。包括处理指C、DOCTYPE声明和内部子?nbsp;<BR>。(注意Q编码串不能攑֜数据岛中? <BR><XML>元素标记数据岛的开始,它的ID属性提供了一个可以用来引用数据岛的名U?nbsp;<BR>数据岛的XML可以是内嵌的Q?nbsp;<BR><XML ID="XMLID"> <BR>   <customer> <BR>      <name>Herbert Hanley</name> <BR>      <custID>81422</custID> <BR>   </customer>  </FONT> <P></P> <P></XML> <BR>或者在XML标签中通过SRC属性引用: <BR><XML ID="XMLID" SRC="customer.xml"></XML> <BR>也可以?lt;SCRIPT>标签来创Z个数据岛Q?nbsp;<BR><SCRIPT LANGUAGE="xml" ID="XMLID"> <BR>  <customer> <BR>    <name>Mark Hanson</name> <BR>    <custID>81422</custID> <BR>  </customer> <BR></SCRIPT></P><img src ="http://www.aygfsteel.com/kaiwang/aggbug/17470.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/kaiwang/" target="_blank">成长记录</a> 2005-10-30 22:26 <a href="http://www.aygfsteel.com/kaiwang/archive/2005/10/30/17470.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <a href="http://www.aygfsteel.com/" title="狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频">狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频</a> </div> </footer> վ֩ģ壺 <a href="http://" target="_blank">ɳ</a>| <a href="http://" target="_blank">Ž</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">캵</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ƽ</a>| <a href="http://" target="_blank">ɽ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">֯</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ޭ</a>| <a href="http://" target="_blank">Ͽ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">̫</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ˮ</a>| <a href="http://" target="_blank">ԭ</a>| <a href="http://" target="_blank">ڳ</a>| <a href="http://" target="_blank">²</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ɽ</a>| <a href="http://" target="_blank">¤</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">־</a>| <a href="http://" target="_blank">˫</a>| <a href="http://" target="_blank">ƺ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">˱</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ƫ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ƽ</a>| <a href="http://" target="_blank">㺺</a>| <a href="http://" target="_blank"></a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>