`
alexcheng
  • 浏览: 181930 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

SSH, 又见SSH

阅读更多

这里的SSH不是指的Secure Shell,而是指的Struts + Spring + Hibernate。关于这3个东西,大家都不陌生了。合在一起是目前主流的Java Web应用开发模式。写这篇博文的出发点是我今天的一个面试。实际上我之前也面试过一些人,SSH是我很常听到的一个词。每次听到这个词,我不由自主的有种感觉,是不知道该如何发问。我并非SSH的专家,我所用到SSH的地方也就是之前自己做过一两个小应用,纯粹是学习的用途。SSH肯定也有很多我不知道的技术细节。
 
SSH的流行有它们很多必然的因素。Structs是老牌的前端框架了;Spring,我仍然记得当年看Rod Johnson的那本J2EE Without EJB时的兴奋心情;Hibernate则影响了Java的持久化模式。我所担心的是SSH的流行对于普通开发人员的影响,对于刚毕业的学生的影响。SSH使得开发人员之间的同质化加剧。对公司来说,这是好事,一个人离职了,很快就可以找到相同技能的人来替代;对于个人来说,一方面是好事,跳槽很容易。不在这个地方SSH,就在另外一个地方SSH。不好的地方则是比较竞争优势的缺失以及思维的局限。大家都用一样的东西,自然没有什么很大的区别。局限在一种开发模式,则容易迷失。SSH也许可以保证你5年,甚至10年的饭碗,但未必能保证你20年的饭碗(也许可以?)。拥抱更多的可能性才是更好的办法。
 
下面是一些我觉得不错的做法:
1)在了解框架的同时,了解背后的设计理念和实现细节。比如读读SSH这些框架的源代码。
2)拥抱更多的可能性。把眼光挪到其它的模式上看看,了解了解。
 
有点感触就随便写了这么多,不存在对SSH的任何偏见。

 

 

12
5
分享到:
评论
21 楼 sosyi 2010-02-21  
struts 搞错了吧。。。
20 楼 lizhuang 2010-02-20  
数据结构和J2SE学好的,还真不是很多,线程和反射这两个问题就能放倒一大片了。
19 楼 Tomzheng 2010-02-20  
之前学过ssh,后来用的时候,webwork2.0+spring+hibernate都是差不多的。很多的都是在于java的本质上的突破,反射,映射,解偶合上做文章。
18 楼 SoloTerran 2010-02-16  
能真正理解ssh的人,至少会脱离ssh去写一个中型web app
17 楼 yuan 2010-02-15  
struts写错了
16 楼 moshalanye 2010-02-11  
    对个人成长来说,了解一个技术解决的问题远比使用一个技术来的重要,因为前者意味你有能力去思考技术存在的意图,以及现存技术的所属范围。这点十分重要。
15 楼 sarin 2010-02-11  
您文中的Struts拼错了
14 楼 ynstudio 2010-02-10  
如果你了解struts1,那么看struts2和springmvc虽然有很大不同,但基本掌握的时间应该是一两天吧。所以既然我们不自己生产框架,那么就随他变吧,哪个好就用哪个。有这些基础学的很快的。就像楼主所说掌握了之后花时间想想这些框架的所以然。

另外,我们还可以做些工作,就是在这些基础上做一些工作提高开发效率。
13 楼 風一樣的男子 2010-02-10  
一直用SSH,最近很真有LZ所说的感慨。。。
12 楼 ynstudio 2010-02-10  
fanfq 写道
ynstudio 写道
呵呵,所以我们培训的时候,首先花了很多时间在反射,xml,servlet基础等内容上,然后带领学员自己实现了minimvc,miniorm,minidi来帮助学员理解struts2,Hibernate,spring的大致原理。不过miniorm虽然是非常简单的模仿,但对初学者还是太复杂了。
三个mini实现,可以在我们的http://code.google.com/p/simplejee上下到。


不知道为什么鄙视部分培训讲师。原因一个同学做了2年不到就去做培训讲师了,而且还是在著名的培训公司,有点无语。简历拿出来都不敢相信这是我的同学。



我们可不是青鸟。我们只是帮初学者入门,包培训,不包就业。我们的目标是帮助初学者节省一些时间,减少一些痛苦。我们只告诉人们我们是怎么做的,我们认为如何做比较合适。
11 楼 geweixin 2010-02-10  
fanfq 写道
ynstudio 写道
呵呵,所以我们培训的时候,首先花了很多时间在反射,xml,servlet基础等内容上,然后带领学员自己实现了minimvc,miniorm,minidi来帮助学员理解struts2,Hibernate,spring的大致原理。不过miniorm虽然是非常简单的模仿,但对初学者还是太复杂了。
三个mini实现,可以在我们的http://code.google.com/p/simplejee上下到。


不知道为什么鄙视部分培训讲师。原因一个同学做了2年不到就去做培训讲师了,而且还是在著名的培训公司,有点无语。简历拿出来都不敢相信这是我的同学。

所谓的著名培训机构: XX青鸟?
10 楼 fanfq 2010-02-10  
ynstudio 写道
呵呵,所以我们培训的时候,首先花了很多时间在反射,xml,servlet基础等内容上,然后带领学员自己实现了minimvc,miniorm,minidi来帮助学员理解struts2,Hibernate,spring的大致原理。不过miniorm虽然是非常简单的模仿,但对初学者还是太复杂了。
三个mini实现,可以在我们的http://code.google.com/p/simplejee上下到。


不知道为什么鄙视部分培训讲师。原因一个同学做了2年不到就去做培训讲师了,而且还是在著名的培训公司,有点无语。简历拿出来都不敢相信这是我的同学。
9 楼 ynstudio 2010-02-09  
呵呵,所以我们培训的时候,首先花了很多时间在反射,xml,servlet基础等内容上,然后带领学员自己实现了minimvc,miniorm,minidi来帮助学员理解struts2,Hibernate,spring的大致原理。不过miniorm虽然是非常简单的模仿,但对初学者还是太复杂了。
三个mini实现,可以在我们的http://code.google.com/p/simplejee上下到。
8 楼 lkj107 2010-02-09  
能够解决问题(或者说实现需求)的才是好程序员
用SSH并不可怕,团队作战肯定是要有框架的,要不项目基本就要玩完
关键在于发现SSH有BUG或者有瓶颈的时候,能够解决,那就是牛人了
7 楼 eimhee 2010-02-09  
simlee 写道
做了10,20年还会做ssh?

那时侯知道ssh的人是老古董了
6 楼 simlee 2010-02-09  
做了10,20年还会做ssh?
5 楼 liveHappy 2010-02-09  
对于SSH来说 LZ说的也对。局限一个模式是很容易迷失的。
对于开发人员来说,眼睛应该一直都是在站在最高处的,要不时的望一望而且要望的远;直接去接触迎面的风,才能亲身感受。
4 楼 不复记忆 2010-02-09  
Structs是老牌的前端框架了
拼错了....
3 楼 lynopl111404010622 2010-02-09  
让我们 拥抱  变化吧
2 楼 smaer 2010-02-09  
ssh用的用得蛮多,就是啥都不懂,哎,失败~~~

相关推荐

    ssh框架 ssh框架 ssh框架 ssh框架 ssh框架 ssh框架 ssh框架 ssh框架

    ssh ssh shhs ssh ssh shhs ssh ssh shhs ssh ssh shhs ssh ssh shhs ssh ssh shhs ssh ssh shhs ssh ssh shhs ssh ssh shhs ssh ssh shhs ssh ssh shhs ssh ssh shhs ssh ssh shhs ssh ssh shhs ssh ssh shhs ssh ...

    ssh 框架 ssh 框架 ssh 框架 ssh 框架 ssh 框架 ssh 框架

    ssh 框架 ssh 框架 ssh 框架 ssh 框架 ssh 框架 ssh 框架 ssh 框架 ssh 框架 ssh 框架 ssh 框架 ssh 框架 ssh 框架 ssh 框架 ssh 框架 ssh 框架 ssh 框架 ssh 框架 ssh 框架 ssh 框架 ssh 框架 ssh 框架 ssh 框架 ...

    SSH.NET-develop.zip_SSH.net_VI1Q_ssh

    SSH.NET 是一个开源的.NET库,专为.NET开发者设计,用于实现Secure Shell(SSH)协议。这个库使得在C#、VB.NET或其他.NET语言中安全地执行远程命令、传输文件或者建立安全隧道变得简单。"SSH.NET-develop.zip_SSH...

    ssh集成 ssh集成

    SSH(Secure Shell)是一种网络协议,用于在不安全的网络上提供安全的远程登录和其他服务。SSH集成通常指的是将SSH功能与其他系统或工具整合,以实现更高效、更安全的远程管理和服务交互。在IT领域,SSH集成尤其常见...

    sshshell.zip

    SSH(Secure Shell)是一种网络协议,用于在不安全的网络上提供安全的远程登录和其他服务。在IT领域,SSHshell是Linux或Unix类系统中常用的一种命令行接口,用于远程控制和管理服务器。通过SSH,用户可以执行命令、...

    OpenSSH登录SSH2

    SSH2是SSH协议的第二个版本,提供了更安全的数据传输方式。OpenSSH是SSH协议的一种免费实现,广泛应用于各种操作系统中。 #### 二、如何确定使用的SSH版本 为了判断当前系统中安装的是OpenSSH还是SSH2,可以通过...

    ssh.rar_vb ssh

    标题中的"ssh.rar_vb ssh"表明这是一个关于SSH(Secure Shell)协议的资源,而“vb”则指VB(Visual Basic),是一种常用的编程语言。这个压缩包可能包含了一个使用VB编写的SSH相关程序或者代码示例。描述中提到的是...

    sqlserver数据库SSH配置1

    SQLServer 数据库 SSH 配置详解 SQLServer 数据库 SSH 配置是将 SQLServer 数据库与 Secure Shell(SSH)协议集成,以实现加密的数据传输和身份验证。本文将详细介绍 SQLServer 数据库 SSH 配置的实现步骤和相关...

    BvSsh Bitvise SSH Bitvise SSH Client Bitvise SSH service

    Bitvise SSH是一款由Bitvise公司开发的强大的SSH(Secure Shell)客户端和服务端软件,其全称为BvSsh Bitvise Secure Shell。这款工具提供了安全的远程访问和文件传输功能,广泛应用于IT专业人士和系统管理员之间。...

    SSH协议相关rfc文档

    本资源包含了SSH协议相关的主要rfc文档 其中有: rfc4250 The Secure Shell SSH Protocol Assigned Numbers pdf rfc4251 The Secure Shell SSH Protocol Architecture pdf rfc4252 The Secure Shell SSH ...

    android 实现 ssh功能

    在Android平台上实现SSH(Secure Shell)功能,可以让用户通过安全的网络协议远程访问和控制设备。SSH是一种网络协议,主要用于安全地执行命令行操作、传输文件等,它使用加密技术确保数据传输的安全性。以下是对...

    ssh离线升级版本,不用卸载旧版本ssh直接替换历史版本,迁移密钥重启ssh

    记录一下ssh离线升级版本(有openssh8.8安装包和依赖),redhad的ssh7.4升级到8.8,不用卸载旧版本ssh直接替换历史版本,迁移密钥重启ssh。有一定危险,我这有安全限制不能用telnet连接,需要多开几个ssh连接已被...

    H3C 5500 ssh登录配置

    H3C 5500 ssh登录配置 H3C 5500 ssh登录配置是一种常用的网络设备登录方式,它通过使用 SSH(Secure Shell)协议来确保数据信息交换的安全。下面是H3C 5500 ssh登录配置的详细过程和相关知识点: 一、 SSH 登录...

    电子商城SSH SSH SSH SSH

    SSH SSH SSH SSH SSH SSH SSH SSH SSH SSH SSH SSH

    SSH_Test.rar_C ssh_C#ssh_C++ ssh_C++ SSH_libssh2库

    SSH_Test.rar_C ssh_C#ssh_C++ ssh_C++ SSH_libssh2库是一个针对C、C#和C++编程语言的SSH实现示例,特别提到了libssh2库的使用。在Visual Studio 2010环境下,这个压缩包提供了通过SSH进行文件上传的功能。接下来,...

    在juniper路油器上配置ssh  

    ### 在Juniper路由器上配置SSH服务 #### 一、引言 随着网络安全需求的日益增长,采用安全的方式管理网络设备变得至关重要。SSH(Secure Shell)作为一种加密的网络协议,为远程登录提供了强大的安全保障。本文将...

    SSH Secure Shell工具

    SSH(Secure Shell)是一种网络协议,用于在不安全的网络上提供安全的远程登录和其他服务。SSH Secure Shell工具是Linux环境中广泛使用的工具,它允许用户通过加密的方式与远程服务器进行交互,确保数据传输的安全性...

    ssh协议依赖jar包:ganymed-ssh2-build

    SSH(Secure Shell)协议是一种网络协议,用于在不安全的网络上提供安全的远程登录和其他服务。在Java环境中,开发人员通常使用库来实现SSH功能,其中一个常用的库就是Ganymed SSH-2。这个库名为ganymed-ssh2-build...

    Node.js-WebSSH2基于Web的SSH2客户端使用xterm.jssocket.io和ssh2实现

    在本项目中,"Node.js-WebSSH2基于Web的SSH2客户端使用xterm.js、socket.io和ssh2实现",我们关注的是构建一个在浏览器环境中运行的SSH2客户端。这个客户端允许用户通过Web界面安全地连接到远程服务器执行命令,从而...

Global site tag (gtag.js) - Google Analytics