﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>语源科技BlogJava-wtf</title><link>http://www.blogjava.net/wtf/</link><description /><language>zh-cn</language><lastBuildDate>Tue, 28 Apr 2026 18:56:31 GMT</lastBuildDate><pubDate>Tue, 28 Apr 2026 18:56:31 GMT</pubDate><ttl>60</ttl><item><title>三十而惑</title><link>http://www.blogjava.net/wtf/archive/2006/01/12/27699.html</link><dc:creator>SongOfSky</dc:creator><author>SongOfSky</author><pubDate>Thu, 12 Jan 2006 03:40:00 GMT</pubDate><guid>http://www.blogjava.net/wtf/archive/2006/01/12/27699.html</guid><wfw:comment>http://www.blogjava.net/wtf/comments/27699.html</wfw:comment><comments>http://www.blogjava.net/wtf/archive/2006/01/12/27699.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wtf/comments/commentRss/27699.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wtf/services/trackbacks/27699.html</trackback:ping><description><![CDATA[最近一直在忙于写代码,因为春节前必须提交用户.所以每天便是疯狂的敲击键盘,为了赶进度,为了按时完成任务.这几天做的差不多了,也开始考虑自己的个人发展问题.很快就30的人了,虽然还是喜欢写代码、喜欢调试程序、喜欢面对各种有意思的问题、喜欢钻研技术，但年龄还是把我推向了一个该好好考虑自己的个人定位的时间，因为在中国30岁应该是程序员的坟墓了。结束编码生活，开始一个全新的开始，但应该开始什么呢？我自己也不知道，这么多年的编程，让我除了编程还能干什么呢？现在可以想到的就是系统分析、或者再钻研一下业务，去搞需求，或者就是告别这个行业，进行一种全新的创业，但项目是什么？头疼呀，但却不得不头疼。三十而立，马上就三十，可是三十我将要一无所有，想想毕业时一心想搞开发，现在呢，说不清当时的决定是对还是错？？？？？<img src ="http://www.blogjava.net/wtf/aggbug/27699.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wtf/" target="_blank">SongOfSky</a> 2006-01-12 11:40 <a href="http://www.blogjava.net/wtf/archive/2006/01/12/27699.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>hibernate3 + mysql5.015 Unknown type '246 in column 问题解决</title><link>http://www.blogjava.net/wtf/archive/2005/11/18/20384.html</link><dc:creator>SongOfSky</dc:creator><author>SongOfSky</author><pubDate>Fri, 18 Nov 2005 02:33:00 GMT</pubDate><guid>http://www.blogjava.net/wtf/archive/2005/11/18/20384.html</guid><wfw:comment>http://www.blogjava.net/wtf/comments/20384.html</wfw:comment><comments>http://www.blogjava.net/wtf/archive/2005/11/18/20384.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wtf/comments/commentRss/20384.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wtf/services/trackbacks/20384.html</trackback:ping><description><![CDATA[mysql的jdbc驱动的问题，到http://downloads.mysql.com/snapshots.php下载了mysql-
connector-java-3.1-nightly-20051118.zip或mysql-connector-java-5.0-nightly
-20051118.zip都可以解决<img src ="http://www.blogjava.net/wtf/aggbug/20384.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wtf/" target="_blank">SongOfSky</a> 2005-11-18 10:33 <a href="http://www.blogjava.net/wtf/archive/2005/11/18/20384.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>IOC的简单理解</title><link>http://www.blogjava.net/wtf/archive/2005/11/07/18530.html</link><dc:creator>SongOfSky</dc:creator><author>SongOfSky</author><pubDate>Mon, 07 Nov 2005 01:57:00 GMT</pubDate><guid>http://www.blogjava.net/wtf/archive/2005/11/07/18530.html</guid><wfw:comment>http://www.blogjava.net/wtf/comments/18530.html</wfw:comment><comments>http://www.blogjava.net/wtf/archive/2005/11/07/18530.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/wtf/comments/commentRss/18530.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wtf/services/trackbacks/18530.html</trackback:ping><description><![CDATA[看了好几天的IOC,今天才算看明白,实际上使用的就是一个很简单的面相对象的理解,就是子类可以替换父类原则,使用一个类尽量要使用抽象的父类(抽象类和接口),需要具体实现的时候,用具体子类进行替换.替换的方式包括构造注射、值注射和接口注射。<br>
构造注射：在使用类的构造方法中，通过参数，将使用类作为参数（抽象类）<br>
值注射：可以理解为一个属性，通过set方法进行设置（参数当然还是抽象类）<br>
接口注射:没太仔细看，好像是在使用者和被使用者之间添加了一个中介<br>
总之所谓的注射也就是一种解耦的办法罢了。<br>
<img src ="http://www.blogjava.net/wtf/aggbug/18530.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wtf/" target="_blank">SongOfSky</a> 2005-11-07 09:57 <a href="http://www.blogjava.net/wtf/archive/2005/11/07/18530.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>重构代码的一点感受</title><link>http://www.blogjava.net/wtf/archive/2005/10/28/17131.html</link><dc:creator>SongOfSky</dc:creator><author>SongOfSky</author><pubDate>Fri, 28 Oct 2005 01:54:00 GMT</pubDate><guid>http://www.blogjava.net/wtf/archive/2005/10/28/17131.html</guid><wfw:comment>http://www.blogjava.net/wtf/comments/17131.html</wfw:comment><comments>http://www.blogjava.net/wtf/archive/2005/10/28/17131.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wtf/comments/commentRss/17131.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wtf/services/trackbacks/17131.html</trackback:ping><description><![CDATA[最近两周一直在忙于重构以前的一段代码。代码是一个很复杂的算法，总共有4个主要的方法，代码行数之和大概有4千多行。这个算法以前不是我写的是一位已经离职人员的大作，刚开始接受的时候我看的头都大了。现在想想造成这种情况主要原因主要有：<br>
1 因为这是一个很复杂的算法，需求文档写的也不是很详细，导致理解起来很费力，最后是通过不断和测试人员不断交流，才了解了整个算法的大概。<br>
2
看代码最可怕的事情是什么？结构不好、变量命名不规则、实现思路不符合常规。都不是，最可怕的是没有注释，我所要面对的是我可以自由发挥想象的代码，可是
一个算法不是我可以随意定的。刚接手代码时的主要工作就是，给代码添加注释，一边看一边补注释，最后可能达到每5行代码就可能有一行注释，就这样才把代码
的实现丝路搞得差不多了。<br>
3 方法过长 4个方法，4千多行代码，平均每个1千行，但最大的那个方法有2千多行，看着无注释的两千行代码，我晕。<br>
4 重复功能的代码 接受别人的代码，如果感觉是重复的代码，自己也不敢给立刻改造，需要把两段代码仔细的比较，生怕有纰漏，导致一些更可怕的问题，毕竟当时对代码和算法不熟悉<br>
5 庞大的if else、for while 循环，看代码的时候需要对那些{},眼晕，代码太长了，如果你想了解一段代码的功能，难了。<br>
6 数据类的命名 那位老兄懒点，有些后来添加的属性，他懒得添加代码，就用原来的方法，看看代码就给带沟里去了。<br>
7 很多无用的变量充斥其中，让你四处查找该变量在哪用的，最后发现，没用，气疯了<br>
<br>
&nbsp;&nbsp;&nbsp; 痛苦的经历，当时看这些代码辞职的心都有，型号当时在外面做项目，可以慢慢的消化，如果在公司，问题日清，恐怕我也要被清理走了。<br>
下面说说我重构的过程，主要是针对上面提到的几点：<br>
1 不用说了，理解算法，才能作出正确的实现，也才能保证修改的代码减少出错的机率。<br>
2
注释以前添加了很多，现在在回头再仔细看，当时有些理解是不正确的，修正那些注释，同时把自己最新的理解添加到程序上。添加注释时对于实现长点的代码可以
用一些特殊的符号 象＃$等一些特殊的符号分隔开，注释里说明这段代码实现的功能，同时在开始和结束的注释上
添加一个简单的start、end，看起来舒服多了<br>
3 方法过大，没有其他的解决办法，拆方法，但拆方法的时候要考虑变量的作用域，尽量确保一个变量的作用域在一个方法中，这样可以减少代码的出错的可能性，是在不行的就通过返回数据的方式，给变量重新赋值<br>
4 对于重复的代码，没其他的办法，抽象出一个新的方法，让后在主方法中调用。但这种修改可能会造成一个不太好的现象，就是代码调用层次太多，调试起来也很麻烦，这问题只能等以后在做大的重构的时候，对实现思路的重构了<br>
5 对于if else ,或者循环，看看是否可以通过continue、break 来减少嵌套层次<br>
6 数据命名，这是每个程序员进入新公司的必修课，如果没人管，那只能说管理有问题。可以通过一些重构工具来修改变量、方法的名称、相应的工具会修改引用的名称，减少出错的可能性<br>
7 多余变量已经要坚决删除，不是考虑什么效率问题，知识考虑代码的可读性。现在地很多开发工具可以表示出没有引用的变量，删除、重新编译看看有没有引起相关的错误<br>
<br>
本来前些时刚看完设计模式，想用用呢，因为算法中有很多相对的算法可以通过策略模式解决，可是最后犯懒，以后再说吧。<br>
一点感受，希望能和大家交流：）<br>
<img src ="http://www.blogjava.net/wtf/aggbug/17131.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wtf/" target="_blank">SongOfSky</a> 2005-10-28 09:54 <a href="http://www.blogjava.net/wtf/archive/2005/10/28/17131.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>mvc是model驱动view还是view驱动model</title><link>http://www.blogjava.net/wtf/archive/2005/10/20/16141.html</link><dc:creator>SongOfSky</dc:creator><author>SongOfSky</author><pubDate>Thu, 20 Oct 2005 07:19:00 GMT</pubDate><guid>http://www.blogjava.net/wtf/archive/2005/10/20/16141.html</guid><wfw:comment>http://www.blogjava.net/wtf/comments/16141.html</wfw:comment><comments>http://www.blogjava.net/wtf/archive/2005/10/20/16141.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/wtf/comments/commentRss/16141.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wtf/services/trackbacks/16141.html</trackback:ping><description><![CDATA[这几天想用java做一个数据窗口，就是一个和PB中相同的数据窗口，以实现快速开发。但有一个问题我却不知道怎么该怎么办，就是如果用view驱动
model对于表格的编程应该简单一些，但在.net中发现是在用model驱动view，对于表格的操作锁的很死，连基本的添行删行都不能控制，微软这
么设计肯定有他的道理，但编程中确实有很多问题不好处理，所以现在郁闷中！！！！<img src ="http://www.blogjava.net/wtf/aggbug/16141.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wtf/" target="_blank">SongOfSky</a> 2005-10-20 15:19 <a href="http://www.blogjava.net/wtf/archive/2005/10/20/16141.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>