`
zljpp
  • 浏览: 259948 次
社区版块
存档分类
最新评论

我们应该如何对待开源?——看完ssh有感

 
阅读更多

前天把SSH全部看完了,拖了很长的时间。从223号开始看的SSH,前前后后用了两个半月。以为一个多月就能看完的。但是总是有很多事来拖慢进度。真的是应了那句话“计划赶不上变化”。

SSH是进入java方向的第二个教程了,从第一个的drp到现在的ssh。让自己感觉到了java的世界真的是浩瀚无边。这里特别要感谢一下米老师,如果没有老师的指点,真的很难知道自己要学什么,从那里下手。我也深刻的体会到,一个导师对你的帮助是多么的巨大。明白了很多人学习编程坚持不过来的原因,如果你不知道你该学习什么,等你把所有的东西都了解一遍以后,你会发现你一无所获,而且更为悲伤的是你已经没有时间和精力再去学习了,最后得出的结论就是:你不适合学习这行!

下面谈谈学习的感触。

SSH是一个开源的框架,这里重点是在开源上面。也就是这个开源让我这次感触最深。

很早就听别人说java现在很火,为什么很火呢?很多人给我的回答就是java开源,多好啊!

对,java开源真的很好,从进入java就明显的感觉到了,你想要的东西,大家都已经帮你实现好了,很多时候有很多种方案。你只需要拿来用就行。而且还能看到人家的源代码。真的是很惬意。但是很多时候这样的想法错了。

错在哪里呢?很多时候人们以为开源就意味着不收费,你可以随便拿来人家的东西,随便用,随便看。这样对吗?如此这样的对待开源。会让我们变得越来越愚昧。你只是方便的拿来了人家的东西,人家的思想呢?你只能一点点的看着人家把版本从1.0升级到n.0。而自己只能在网上从1.0下载到n.0。没有了思考,也没有了进步。

这样对待开源当然是不对的,那么怎么对待开源的产品呢?

我本人认为开源既然提供了这么宝贵的机会让我们看人家的源代码。何不用心的研究一下呢?这里的研究不是去看人家是怎么调用的。最重要的是看看他们是怎么编程的。看看大师是怎么编写程序的。

1:看看源代码的编写风格,他们是如何对待编程的。对于你经常不注意的地方比如:注释,参数命名,参数类型组织。参考一下他们。


2:看看大师的代码里面是怎么体现面向对象精神的。这一点也是我最提倡的。很多时候我们对外宣称我们用的java纯面向对象的,但是摸摸自己的良心,你在用人家的框架的时候你用到了多少面向对象的东西。我自己发现基本上就是一个继承。我们基本上就是继承人家的一个东西,然后用配置文件声明一下。

真正体现面向对象,体现设计模式的地方。就是大师写的那些框架,他们把面向对象的精神发挥到了极致。这里也许能让你感觉到java真正的精神。


3:如果你有精力,可以去修改一下源代码。按照你的想法去设计。这点才是最高的阶段。就像是一台电脑一样,它出厂的时候是按照大众方式设计的,设计的时候考虑了很多因素。但是如果你买了一个电脑,我相信99%的人不会用电脑原来的系统和设置吧!你的把它调节到符合你的情况。这样才是最重要的。如果你看到那个人一直用着电脑出厂的设置和系统。那么你可以肯定这个人肯定是一个电脑白痴。同理使用开源软件也和这个类似。只不过这个门槛稍微高了一点。


前些天看到淘宝公布了他们的mysql使用方案。当时对我的触动很大,我原来以为大家使用的mysql都是一样的了。现在才知道,对于这样的开源软件。人家用的时候是完全改装过的。而自己是拿来就用。差的很远了。

当然同理可得,大家都在使用ssh框架,你用的和人家用的一样吗?这个你地的去思考。

最后,开源真的很好,给了我么站在巨人肩膀上的机会。我们要好好把握。

分享到:
评论

相关推荐

    开源软件,你用了么?——您是如何看待开源软件的?您所在公司是否有使用开源软件(如Linux)?.pdf

    ——您是如何看待开源软件的?您所在公司是否有使用开源软件(如Linux)?" 本文主要讨论了开源软件在企业中的应用情况、开发前景和对企业的影响。通过对多家公司的调查,我们可以看到,开源软件在中国的发展前景...

    1003————自动搭建SSH框架 1004————SSH框架手动搭建

    SSH是Spring、Struts和Hibernate三个开源框架的首字母缩写,它们分别负责应用的依赖注入、MVC模式实现以及对象关系映射。这里我们将深入探讨SSH框架的自动搭建与手动搭建。 首先,让我们了解SSH框架的核心组件: 1...

    开源力量——数据挖掘原理与实战

    整套大数据课程从hadoop入门开始,由浅入深,内置“hadoop源码解析与企业应用开发实战”,“Hive开发实战”,“Hbase开发实战”,“Spark,mahout,sqoop,storm诸模块开发实战”,“数据挖掘基础。...

    untangle 模块化的开源网关——说明

    untangle 模块化的开源网关——中文说明

    开源奇兵——嵌入式——嵌入式Linux引领后PC时代.pdf

    总而言之,《开源奇兵——嵌入式——嵌入式Linux引领后PC时代》一书为我们深入剖析了嵌入式Linux在后PC时代的重要性及其广泛的应用前景。在面对这一技术变革时,无论是个人还是企业,都应该紧跟这一潮流,以积极的...

    jsp毕业设计——JSP基于SSH2的网络在线问答系统.zip

    【标题】"jsp毕业设计——JSP基于SSH2的网络在线问答系统.zip"是一个典型的Java Web项目,旨在通过使用Java Server Pages(JSP)技术,结合Struts2、Spring和Hibernate(SSH2)三大框架来构建一个网络在线问答平台。...

    桌面机器人开源项目 —— 来自稚晖君

    本项目是一个桌面级小机器工具人,外观设计的灵感来源是WALL-E里面的EVE~机器人具备USB通信显示画面功能,具备6个自由度(手部roll、pitch,颈部,腰部各一个),使用自己修改的特制舵机支持关节角度回传。...

    STM32开源代码——lcd1602

    关于LCD的程序,STM32F103c8t6的文件,经过有效测试,可行的。特分享。

    前端开源库-alinex-ssh

    首先,我们来详细了解一下SSH。SSH是加密的网络协议,主要用于替代不安全的telnet等明文传输协议。它通过公钥/私钥对进行身份验证,确保只有授权用户能够访问远程系统。SSH还提供数据加密,使得在网络中传输的数据不...

    GitHub上有不错的 C 开源项目?(csdn)————程序.pdf

    在GitHub上,有许多优秀的C语言开源项目,本文章将介绍几个值得关注的C语言开源项目,包括云存储系统、分布式文件系统、游戏复刻版以及一些教学资源。 首先,Seafile是一个用C语言编写的云存储系统,它提供了隐私...

    ktv点歌系统开源——java

    【标题】:“ktv点歌系统开源——java” 在当今的娱乐行业中,KTV作为休闲娱乐的重要场所,其点歌系统扮演着至关重要的角色。一个高效、易用的点歌系统能够极大地提升消费者的体验。本开源项目正是基于Java语言开发...

    基于 Java ssh整合 开源博客系统 spring mvc,hibernate,spring,maven 整合开发

    【标题】中的“基于 Java ssh整合 开源博客系统”指的是一个使用Java技术栈开发的开源博客平台,这里的“ssh”是三个Java框架的缩写,分别代表Spring、Struts和Hibernate。Spring MVC、Hibernate和Spring是Java Web...

    极速五笔——开源输入法

    【极速五笔——开源输入法】是一款以快速、高效为特点的中文输入法软件,它以开源的形式提供给用户,鼓励社区参与开发和优化。开源意味着源代码对公众开放,任何人都可以查看、学习、修改并分发代码,这使得极速五笔...

    全能开源的SSH终端

    破解SecureCRT怕中毒,Xshell用着不爽,Putty太单薄,手头没Mac用不了iterm2,那就试试这个全能开源的终端吧(MobaXterm)!

    redis-desktop-manager 2020.2.0.0 不支持SSH

    标题中的“redis-desktop-manager 2020.2.0.0 不支持SSH”表明这是一个关于Redis Desktop Manager的讨论,具体版本为2020.2.0.0,而该版本的一个主要缺点是它不支持通过Secure Shell (SSH)进行连接。SSH是一种网络...

    SSH框架搭建——测试

    SSH框架,全称为Struts2 + Spring + Hibernate,是Java Web开发中常用的一种技术栈,它结合了三个强大的开源框架,用于构建高效、灵活且可扩展的企业级应用程序。本教程将带你逐步了解如何搭建SSH框架,并实现登录和...

    开源项目-Eun-sshkeys.zip

    开源项目-Eun-sshkeys.zip是一个包含用于获取SSH服务器所有公钥的开源工具。SSH(Secure Shell)是一种网络协议,广泛用于在不安全的网络环境中安全地管理远程服务器,进行命令行交互、文件传输等操作。这个项目的...

    完整java上传附件案例,SSH2架构,开源

    com/bestsoft/ssh/comm//upload/UploadTag.java 封装了在jsp页面显示的html标签 com/bestsoft/ssh/web/action/upload/UploadFileAction.java 封装了上传文件的方法 jsp文件 WEB-INF/jsp/upload/percent-ajax.jsp...

Global site tag (gtag.js) - Google Analytics