• 造轮子


    说法一:

    简明来说就是重新实现已有的功能(的软件),以达到更高效率,稳定性等等的目的。
    举一个人的例子:在上大学的时候,他觉得老师教学用的操作系统Minix不够好用,于是就自己写了一个操作系统来代替,这东西就叫Linux,,市场份额占到了服务器市场的一半甚至更多
    在与其他人开发Linux的过程中,他们一直使用的版本控制系统Bitkeeper终止了授权,而Torvalds觉得其他的版本控制系统太蠢了,于是花了一周又自己写了一个东西,叫做Git。于是这个东西又占到了版本控制系统市场的七成甚至八成以上的份额

    这就是造轮子

    说法二:

    对于程序员来说,就是根据基本原理,自己造工具或者库。

    说法三:

    一般把可以直接使用的功能、库或是代码块比喻作轮子,那么我重新发明它的意义就在于,在它们能正常被我使用的前提下,我再重新学习、打一遍代码,使轮子背后的原理被自己彻底掌握。
    现在的话,一般就是指上GitHub搜到的代码,自己再掌握一遍,或者换个方式写一遍。

    说法四:

    自己写框架,库,工具类

    说法五:

    了解现有的轮子背后的原理

    面试官:你简历上写了精通Spring,那你回答一下Spring为什么用“三级缓存”去解决循环依赖?
    我:.......应该有三个缓存的map结构
    面试官:具体回答一下
    我:平时没认真深入过
    面试官:公司的门在那里,自己走还是我送你?
    这并不是个例,很多开发者在开发 Spring 程序的时候,被动接受了已经做好的 Spring 特性案例。虽然这样减少了开发成本,但是也限制了自身的横向扩展能力。
    只知道如何使用,却不知道做了什么,那么注定只可能是一个码农。因为Spring 框架几乎集成了一半 Java Web 开发的江山,而只知道写,却不知道为什么这么写、不知道如何优化,是非常危险的。
    作为一个轻量级的 Java 开发框架,Spring将面向接口的编程思想贯穿整个 Java 系统应用,所以在面试中一直是高频考察点。而Spring两大特性IOC和AOP,也是通过面试必须要掌握的知识点。在几次参与面试的经历中我发现了一个问题:很多Java程序员并没有彻底的理解IOC和AOP,只是仅限于IOC就是控制反转和AOP就是面向切面。
    以IOC为突破口,它是控制反转,表示Spring接管了创建对象的工作,程序员只需要定义对象即可。被Spring创建的对象叫做Bean,而Spring在创建一个对象时,并不是仅仅只会简单的new出来一个对象,而是有一套Bean的生命周期,所以,在说到IOC时,请务必说一下Bean的生命周期。
    于是可以发现,我们每天都在使用的Spring中还有很多的技术和问题是我们不知道的。
    经常听说要学会造轮子,因为只有这样才会在用别人的轮子时明白其原理,用的得心应手。如果对一个框架的理解只是停留在使用得熟练程度,那么也可能会长期停留在“码畜”的阶段,别人随时有可能替代你。

    说法五:

    不是「不要重复造轮子」,而是「不要重复发明轮子」
    "不要重复造轮子" vs "开发要继往开来而不是闭门造车以至于重复发明"

  • 相关阅读:
    正则表达式匹配可以更快更简单 (but is slow in Java, Perl, PHP, Python, Ruby, ...)
    ++i? i++? i+=1? i=i+1? 何必纠结?
    数独题的生成与解决方法
    VIM常用设置
    我的“MIT Challenge”
    NDK开发之javaVM
    十二月寒冬
    Linux epoll 笔记(高并发事件处理机制)
    Linux之我见
    半夜惊醒
  • 原文地址:https://www.cnblogs.com/lanyuejiagou/p/13889945.html
Copyright © 2020-2023  润新知