2008-04的存档

面向对象-面向职责

2008-04-30 12:35 am

一些进来的学习心得,可能理解的不够透彻。不过随便写写,算是总结一下。不过感觉对oop还是有了更深的了解。

其实面向对象的内容不多,就三个名词,封装,继承,多态,但是要真正的弄清楚这些也不是一件容易的事情。面向对象的基本是封装,有了封装才有继承,有了继续才有多态。 对于面向对象的编程其实从另外一个角度也可以理解为面向职责的编程。就是有了这些思想之后,程序员开发的时候职责更加的明确了。每个人都有自己专注的任务,比如说可以让精通页面的人只做页面,精通业务逻辑的人只做业务,精通数据库的人只做数据库的操作。做业务的人可以不懂web得一些知识,甚至对数据库他也不需要去关注。  那就需要分层,分层从这个角度来说也是更好的体现出职责,当然从软件工程的概念来说是一个解耦的过程,也是一个可以更好的软件复用的过程,这也是软件开发这么多年来苦苦追求的。

分层有两种一种是学院派,一种是广义派的。对于学院派来说,是很严格的,上层只需要调用下面一层的接口。而下一层则完全不依赖于上一层,它更本不需要知道上面发生了什么事情,它只要做好自己的事情就可以了。  这样做的好处还有在项目更改的时候,你只需要改一层的代码,比如说持久层,因为它完全不依赖于上一层(一般是业务逻辑层)那么它的改动也就不会影响上面的层次,打个比方出于对市场的考虑,一个产品既要支持mysql又要支持oracle,那么对于上面的层次是不是根本就不需要改动。 除了解耦,这样最大的好处就改变了软件开发的工作发式和降低了维护的成本。以往的开发发式,比如说php,我们在做wordpressmu的二次开发的时候都是按模块的方式进行,一个人负责一个模块或者说功能点,从头到尾。而java ee中是用层的方式去分工的,当架构师把整个架构设计好之后,就可以很好的分工了,各自发挥自己的特长,而且是并发进行的,每个开发人员只要把自己的事做好,就跟前面说的一样。 那么还有什么好处呢,就是debug的时候了,这样很容易就可以找到bug。 当然这些是我理解的好处,对于javaee的妙处自然不是这些能概括的。

那么说说广义派吧,这个就没有学院派那么严格了,他允许跨层次的接口和少量的依赖。因为这也有他们的理由,他们的理由是一个特定的项目就有一个特定的环境,比如说我这个项目定了用mysql,那就没必要再去考虑别的数据库,等等。 因为我对这个学派不是很赞同,所以就不说这个了。

。。。。

现在每次写东西都是写了一半就不想写了。。 越写越发觉自己懂得东西太少了,理解的太太不够了。

这些天一直在理解oop,ioc,aop这样的一些原理。 也发了很多时间重新的看reflection这一块,整体上有一点认识,不过如果不用struts2,spring这样的框架,要怎样去自己实现这样的思想,还是有点晕,像依赖注入这样的东西,其实当系统足够复杂要是不用框架,要自己去实现是很难控制的。其实很多东西还是要理解的够透彻就行,比如说struts2确实很简单,如果只是会用的会而不去了解其背后的原理,那么项目中出现的一些怪异问题时候,就无法解决了,像那“神奇”的拦截器,不仅仅要会自己写一个拦截器还要理解它的运行机制等等。 不过现在能用好那些开源框架就可以了,其他的等用好了这些东西在考虑把。

mysql start service error

2008-04-28 1:40 am

cannot create windows service for mysql.error:0

解决方法:

C:>sc delete mysql

[SC] DeleteService SUCCESS

给自己的建议

2008-04-25 12:35 am

希望自己每天晚上可以抽出半个小时或者一个小时来看英文的技术文档。

android的学习要继续,不过目前可能要暂停一会,因为先要学别的东西。

然后呢,就是要合理的利用时间。

嗯。

累并快乐着

2008-04-22 10:36 pm

我开始渐渐明白那个道理.

人的一生总是要有一段时间要很努力的去付出,很辛苦很辛苦的过着每一天.可是辛苦后的回报就是快乐和享受人生.你的快乐和享受的程度可以说是和你的辛苦成正比的. 所以不要担心你付出多少,因为你付出的越多得到的其实也就越多.

Android Architecture

2008-04-18 3:03 am

system-architecture.jpg

怎样学习Android

2008-04-15 9:31 pm

关于怎样学习Android,介绍两篇文章:

第一篇是 A developer’s perspective on Google’s Android SDK http://www.linuxdevices.com/articles/AT9900056470.html 

跟我一样英语不好的人有第二篇文章(中文的,不过那人也是对第一篇文章的一个总结):

http://www.androidin.com/android-846-1-1.html

然后就是学习资料了:

首先当然是官方的了 :http://code.google.com/android/

然后呢,一个好的东东当然要有强大的社区支持,找了一些看上去还不错的.

Androidin开发者论坛:http://www.androidin.com/

Android爱好者:http://www.loveandroid.com/

Android中文论坛:http://www.thegphone.com.cn/

阅读全文…

Android的Hello,World

2008-04-14 11:43 pm

完成了配置后,开始了Android的学习。

先写一个hello,world吧。在这个过程中还是碰到了一些问题,主要是环境配置的问题。

至于怎么建立一个Android工程,就不在罗嗦了。在这记录一些问题。

新建工程后目录结构如下图:(我的工程是”StudyAndroid“)

snap8.gif

在建好一个工程后,必须为工程建立一个启动配置。方法是选择Run>Open Run Dialog …然后选择左边类型中的Androdi Application点击新建(在左上角)。输入一个配置的名字。在project中选择你的Androdid工程。如图: snap2.gif

其他两个选择可以默认,不过最好是去common中设置一下编码。Target中也可以设置一下Screen size 和Netword Speed。不过默认就好了。。

2 还要记得去windws->Preferences,设置一下Android SDK 的目录,千万要记得不要加上tools。直接你的解压路径就好了,如我的是D:\workspace\android-sdk_m5-rc15_windows。今天就是多加了一个tools害我郁闷了半天。

snap5.gif

然后就是关于 emulator-tcp-5555 disconnected! Cancelling …这个错误了,我刚开始一直不明白为什么. 后来才发现是自己太急了。写好代码后,run的时候记得选择如图:snap6.gif

之后,你要经过一段时间的等待,这个时候Android emulator正在启动(具体时间看你的配置了,我2G的内存启动了5分钟,汗死)千万不要关了Android emulator,不如就会有emulator-tcp-5555 disconnected! Cancelling…这个错误了。

接下来你会看到控制台出现如下信息,那么就ok了:

snap7.gif

附上:HelloWorld.java的代码,方便测试

package cn.wenjg;

import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;

public class HelloWorld extends Activity {
        /** Called when the activity is first created. */
       @Override
        public void onCreate(Bundle icicle) {
                super.onCreate(icicle);
               //setContentView(R.layout.main);
               TextView test = new TextView(this);
               test.setText(”hello,android”);
               setContentView(test);
       }
}

最后你就可以看到如下界面:

snap9.gif

再看看Android自带的Google Map,还有Google搜索引擎。搜了一下我的blog,哈哈。

googlemap.gif                     snap.gif

Android开发环境配置

10:58 pm

    下午上班的时候,全能的小郑经理在玩Android,我在旁边看了会也挺感兴趣的。晚上回家睡一觉起来,也决定开始学习一下Android。

那么什么是ANDROID呢,ANDROID是一个专用于移动设备的软件系统,它包括操作系统,中间件和关键应用,初略了解一下Android SDK提供必要的工具和API在Android平台上使用Java语言来开发应用程序……  不废话了,这些百度一下就可以了。

写blog是现在的一种好的学习方法,在完成学习后可以做个总结,把学习中遇到的一些问题记录下来,这样下次在看到就可以查一下了,也可以和大家一起学习。下面结合官网的资料,详细的写一下Android的开发环境配置。

1.System and Software Requirements

System: 我是在windows xp下安装的,当然还支持 Vista,Mac OS X 10.4.8 or later (x86 only),Linux (tested on Linux Ubuntu Dapper Drake) 。
Software Requirements:

Eclipse 3.2, 3.3 (Europa)
JDK 5 or JDK 6 (JRE alone is not sufficient)
Not compatible with Gnu Compiler for Java (gcj)
Android Development Tools plugin (optional)
2: Installing the SDK (安装SDK)

首先下载android sdk,http://code.google.com/android/download.html

然后直接解压到任意目录,如我解压的目录是“D:\workspace\android-sdk_m5-rc15_windows”。
接下来就是增加SDK的环境变量了。我的电脑->属性->高级->环境变量选择path,在后面加上“;youpath\tools”,你把“youpath”替换成你的解压路径就可以了,如我的:“;D:\workspace\android-sdk_m5-rc15_windows\tools”. 注意不要少掉“;”。

3. Installing the Eclipse Plugin (ADT) (安装eclipse插件)

这个官方写的很清楚,也很详细。我翻译一下。

To download and install the ADT plugin, follow the steps below.

(根据以下的步骤,下载和安装ADT插件)

  1. Start Eclipse, then select Help > Software Updates > Find and Install… (启动Eclipse,然后选择Help > Software Updates > Find and Install…)
  2. In the dialog that appears, select Search for new features to install and press Next.(在下一个对话框选择第二个选项:Search for new features to install,进入下一步)
  3. Press New Remote Site.(点击New Remote Site. )
  4. In the resulting dialog box, enter a name for the remote site (e.g. Android Plugin) and enter this as its URL:
    https://dl-ssl.google.com/android/eclipse/

    Press OK.(在name这个选项上输入remote site(如:Android Plugin),在url中输入https://dl-ssl.google.com/android/eclipse/)(接下来全部按默认就好了,就不翻译了。)

  5. You should now see the new site added to the search list (and checked). Press Finish.
  6. In the subsequent Search Results dialog box, select the checkbox for Android Plugin > Developer Tools. This will check both features: “Android Developer Tools”, and “Android Editors”. The Android Editors feature is optional, but recommended. If you choose to install it, you need the WST plugin mentioned earlier in this page. Now press Next.
  7. Read the license agreement and then select Accept terms of the license agreement, if appropriate. Press Next.
  8. Press Finish.
  9. The ADT plugin is not signed; you can accept the installation anyway by pressing Install All.
  10. Restart Eclipse.(重启Eclipse)
  11. After restart, update your Eclipse preferences to point to the SDK directory:
    1. Select Window > Preferences… to open the Preferences panel. (Mac OS X: Eclipse > Preferences)
    2. Select Android from the left panel.
    3. For the SDK Location in the main panel, press Browse… and locate the SDK directory.
    4. Press Apply, then OK.
      (重启完毕后,Window > Preferences >android选项   SDK Location选择你Android SDK解压路径. )   好了,Android的开发环境就配置好了。

下面就可以Android之旅了。还是从经典的Hello world开始学习。

在厦门最幸福的事

12:59 am

不知不觉在厦门已经五年了,今天夜里突然想总结一下在厦门最幸福是什么:

1:最大的幸福就是可以随时去鼓浪屿散步,而且可以选择不同的天气晴天,小雨天(雷阵雨恐怕也行),阴天…… 不过你不能选择下雪天,因为厦门不下雪。每种天气都有不一样的心情。也可以选择是白天,黄昏,和夜晚都会有不一样的意境。 我常说看一个地方的美是要用心去看的,鼓浪屿更是。浮躁的人恐怕不能完全领悟鼓浪屿的美。

2: 如今毕业了觉得回学校走走也是一件幸福的事,突然觉得学校还是很漂亮的。图书馆也是越来越像图书馆,现在集大有3个大的图书馆,分别是嘉庚图书馆,诚毅图书馆,陈延奎图书馆,都感觉很好。特别是新建的。

3:环岛路,不得不说那是厦门最美一条的画廊!蔚蓝的大海、连绵的沙滩一切都是那么的协调。可以看海,烧烤,摘草莓,骑车,聚会…… 当然最幸福的漫步在沙滩上了。记得大一的时候刚开学,和舍友波哥杀到环岛路,沿着沙滩一路及其细心的寻找着贝壳,虽然啥也没捡到,不过那时候那傻样现在还记忆犹新。

4:中山路,厦门的中山路区别于其他城市的中山路的地方,就是它的文化。骑楼,街巷风格很好的保存到了今天……

5:厦门外图(莲花那家新开的),这也是最近发现的好去处,这个周末基本上都泡在里面。除了发现我们公司强人涂传滨写的《深入浅出JDK6.0》正在热卖(恭喜涂老大),还发现了里面的书种确实很齐全。福建省规模最大、图书品种最齐全的对外图书交流中心图书城果然不是浪得虚名。 点上一杯咖啡或者奶茶,在那边坐上一天也是很划算的,嘿嘿。

6:不得不提的还有厦门的天气的,除了夏天有点热,基本上还是可以用四季如春来形容的。特别是冬天,简直是享受。

……

这是一些个人的感受。

最后感叹一下吧:

 5年时间过得真快,人生有多少个5年啊。。。

4月语言排行榜出炉

2008-04-11 11:39 pm
    TIOBE开发语言排行榜日前宣布了2008年4月流行开发语言的排名结果,曾经沉寂很久的ColdFusion 本月突破性地进入了前20名(虽然吊在榜尾)。TIOBE开发语言排行榜每月更新一次,依据的指数是基于世界范围内的资深软件工程师和第三方供应商提供,其结果作为当前业内程序开发语言的流行使用程度的有效指标。   Java 和C 依然占据榜首一二名的位置,不过C 的指数同比去年略有下降。(Visual) Basic上升到第3名,C++ 下降到第5名,Ruby 和Delphi 则保持继续上升的良好态势。详情见下图: