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

我们应该如何对待开源?——看完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)?" 本文主要讨论了开源软件在企业中的应用情况、开发前景和对企业的影响。通过对多家公司的调查,我们可以看到,开源软件在中国的发展前景...

    吴耀武背单词(开源)——version 0.0.001

    【标题】"吴耀武背单词(开源)——version 0.0.001" 涉及的知识点 1. **开源软件**: 这个应用是开源的,意味着它的源代码对公众开放,任何人都可以查看、使用、修改和分发。开源软件通常遵循特定的许可协议,如MIT...

    Solaris开源了——Solaris 10 VS Linux 2.6开源兄弟大比拼.pdf

    《Solaris开源了——Solaris 10 VS Linux 2.6开源兄弟大比拼》这篇文章探讨了两个操作系统之间的竞争,主要围绕Solaris 10和Linux 2.6在软件性能、系统安全、硬件支持、文件系统、集群技术和系统虚拟化六个方面的...

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

    《开源奇兵——嵌入式——嵌入式Linux引领后PC时代》这本书主要探讨的是嵌入式Linux在信息科技领域的崛起及其对后PC时代的影响。嵌入式系统,特别是那些基于Linux的操作系统,已经成为现代计算不可或缺的一部分,...

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

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

    OA开源项目——超级好哦

    OA开源项目——超级好哦 OA(Office Automation)即办公自动化,是一种利用信息化技术提高办公效率,实现组织内部信息共享和协同工作的系统。开源OA系统则意味着其源代码对外公开,用户可以自由地查看、使用、修改...

    PHP开源在线学习系统——课廊

    "PHP开源在线学习系统——课廊"是一款基于PHP开发的教育平台,名为Claroline,它致力于为教育者和学生提供一个高效、灵活的在线学习环境。这个系统是开源的,这意味着用户可以自由地查看、使用、修改其源代码,根据...

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

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

    STM32开源代码——lcd1602

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

    开源软件文集:开源革命之声.pdf

    《开源软件文集:开源革命之声》是一本集结了多位开源运动领袖和软件界大牛们观点的书籍。本书不仅回顾了开源软件的发展历程,还深入探讨了开源革命成功的原因以及未来的发展趋势。在这个过程中,书中涉及了多个重要...

    前端开源库-ssh2-sftp-client

    **前端开源库-ssh2-sftp-client** 在IT行业中,前端开发经常需要与服务器进行交互,传输文件,例如上传、下载或管理服务器上的文件。`ssh2-sftp-client`是这样一个专门为前端开发者设计的开源库,它使得在Node.js...

    前端开源库-alinex-ssh

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

    Java的ssh开源项目

    虽然这个特定的开源项目由于上传问题无法获取,但我们可以深入探讨一下SSH框架本身以及它们在实际开发中的应用。 1. **Struts框架**: Struts 是一个基于MVC(Model-View-Controller)设计模式的Java Web框架,它...

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

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

    柚子社区团购小程序 1.1.9全开源版——学习使用

    柚子社区团购小程序 1.1.9全开源版是一款适用于各门店的程序商店。用户可在程序上进行先预约后线下取货与消费。或者直接在程序上进行线上购物。 本套门店微商店小程序集有优惠券、拼团、砍价、限时购、分享赚钱等...

    Java 开发区块链的开源项目 —— 中文名:激凸链

    用 Java 开发独立的区块链项目,一个项目搞定! 模块说明: core —— 区块链核心模块 demo —— 基于 Web 的区块链应用演示项目

    极速五笔——开源输入法

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

    开源项目-Eun-sshkeys.zip

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

    CScrollMenu:开源控件——导航菜单

    开源控件——导航菜单 简书: 控件名称:XSlidingLayout 可以设置是否关联viewpager xsliding.setViewPager(vpager) 可以设置是否横向铺满显示 xsliding.isFillViewport = isFixation 可以设置菜单切换距离左边的距离...

Global site tag (gtag.js) - Google Analytics