『壹』 学习IT为什么不要重新发明轮子
不需要重新发明轮子,因为别人已经发明好了,尤其的一些比较好的开源项目,可能自己写的没有别人的好,但是你要知道这个轮子是怎么创造的。
『贰』 一天读完一本书之《哪有没时间这回事》读后感
“任何时候,无论你是否已经确定了自己的习惯,我都推荐你尽可能的去找在该习惯上做得好的人请教。”有时候我们想去培养一些好的习惯或是去尝试一些新的技巧,但是我们身边没有这样的圈子和牛人,那就多读书,书中的好办法好点子层出不穷,“他们不仅可以帮助你明确方向,还能帮你排除可能遇到的地雷,其中一些深钻的人坑你已经总结出了操作步骤,这将大大加速你探索尝试期的进程。”大家常说,不撞南墙不回头,凡事只有发生在自己身上、只有自己有了亲身的感受才会领悟出别人“说烂了”的道理。平时多读书读好书,真的好像身边永远有位智慧且忠实于你的朋友在帮助你、引导你。在你内心脆弱时给你力量,在你深陷烦恼时给你方法,在你迷途时给你指引,我们总是在看到一本好书时豁然开朗,连心态都会发生转变,读书不仅使人博学,更重要的是看透事物的本质,获得内心的平和。“不要重复发明轮子”,已有的资源要懂得利用。
『叁』 如何开发一个隐藏源代码的library工程
Android Library Project(库工程)是一个可以被其他Android工程所引用的工程。那为什么需要使用这个工程呢,打个比方,我们在开发Android项目的时候,常常会遇到这样的问题,几个Android项目的开发过程中,会有可以重复利用的代码段或者资源。如果每个项目都要重复编写或者添加这些代码或者资源,将会非常的影响效率。为了避免重复发明轮子,我们可以将这些重复的资源添加到Android Library Project中。那么以后,我们要复用这些东西的时候,只要在当前项目中引用这个Android Library Project就可以了。当然我们的Android Lib Library不仅仅是给我们自己使用,如果我们要把这个Android Lib Project共享给别人,但是又不希望暴露自己的源代码,那么,这就是我们这篇文章要讲的内容。
How
首先,这篇文章中我们会提到三个项目。
LibraryProject : 我们需要共享给别人的不包含源代码的工程。
LibraryProjectSource : LibraryProject包含源代码的版本。
AndroidProject : 引用LibraryProject的版本。
和我们开发正常的Android项目一样,我们先建立一个项目,但是在开始正常的编码之前,我们需要先弄清楚原理和注意事项。不暴露源码的方式是将LibraryProjectSource中的源代码打包成JAR包,然后添加到我们要共享给他人的工程中。如果这个工程中没有引用到资源(res目录下的文件),那么就很容易实现了。但是如果有引用到资源(例如通过R.id.resource方式),我们就可以能会遇到资源引用错乱的问题。
打个比方,在AndroidProject中如果引用TextView可以会定位到一个ImageView上。这是因为,如果在源代码中有使用R.id.resource引用资源,在编译成JAR包的时候,R.id.resource会用R.java文件中相应的十六进制的int值替换。但是在AndroidProject文件中资源的会结合LibraryProject中的资源重新生成一个新的十六进制int值。而同一个资源,在LibraryProjectSource中的这个int值和AndroidProject中的就可能不相同了。
『肆』 重复发明轮子的语源是什么原始出处是哪里
源自英语:"Reinventing the wheel."
关于轮子Wheel 的发明,我读到的和@王宇 有些不同,它几乎同时回出现于美索不达米答亚、北高加索的Maykop文明,以及中部欧洲。而最早的轮子形象,则出自于波兰南部出土的公元前3500年左右的陶罐绘画。
总之轮子的发明,在西方人类学史上,被认为是一次跨越(这点在文明系列游戏中也有体现)。而重新发明轮子,被认为是费力不讨好的一种幽默说法。
『伍』 什么叫“轮子”,什么叫重复发明轮子
就是有人做过的事 不要再做了
『陆』 python 轮子是什么
此一词语的由来是因为轮子由人类所发明,且在各方面都带来许多便利。既然轮子已被发明,而且在使用上没有什么缺陷,重新再发明一次轮子是没有意义的,只是浪费时间,分散研究者的资源,使其无法投入更有意义及价值的目标。
重造轮子是重新创造一个已有的或是已被其他人优化的基本方法。此一词语常出现在软件开发和其他工程领域中。
显然,车轮子是圆形的,这是大家公认的,最合适的形状。而你非要发明另一种形状的轮子,这种行为就叫「重复发明轮子(Reinventing the wheel)」,即「造轮子」—— 明知道你做的不可能比前辈做得更好,却仍然坚持要做。放到编程中,就是说业界已经有公认的软件或者库了,你明知道自己不可能比它做得更好,却还坚持要做。作为练习,造轮子可以增加自己的经验,很多事情看起来简单,但只有自己动手,才会发现其中的难点。当然实际开发中也有很多情况不得不造轮子,比如希望做到「自主知识产权」、刷 KPI 之类的;或者造轮子的人真的觉得自己开发的版本有更强的功能、更好的性能也说不定呢。
众多python培训视频,尽在python学习网,欢迎在线学习!
『柒』 什么才算是真正的编程能力
计算机科学有两类根本问题。一类是理论:算法,数据结构,复杂度,机器学习,模式识别,等等等。一类是系统:操作系统,网络系统,分布式系统,存储系统,游戏引擎,等等等等。
理论走的是深度,是在追问在给定的计算能力约束下如何把一个问题解决得更快更好。而系统走的是广度,是在追问对于一个现实的需求如何在众多的技术中设计出最多快好省的技术组合。
搞ACM的人,只练第一类。像你这样的更偏向于第二类。其实挺难得的,但很可惜的是第二类能力没有简单高效的测量考察方法,不像算法和数据结构有ACM竞赛,所以很多系统的苗子都因为缺少激励和正确引导慢慢就消隐了。
所以比尔盖茨才会说,看到现在学编程的人经常都把编程看作解各种脑筋急转弯的问题,他觉得很遗憾。
做系统,确实不提倡“重复发明轮子”。但注意,是不提倡“重复发明”,不是不提倡“重新制造”。恰恰相反的,我以为,系统的编程能力正体现在“重新制造”的能力。
能把已有的部件接起来,这很好。但当你恰好缺一种关键的胶水的时候,你能写出来吗?当一个已有的部件不完全符合你的需求的时候,你能改进它吗?如果你用的部件中有bug,你能把它修好吗?在网上繁多的类似功能的部件中,谁好谁坏?为什么?差别本质吗?一个开源代码库,你能把它从一个语言翻译到另一个语言吗?从一个平台移植到另一个平台吗?能准确估计自己翻译和移植的过程需要多少时间吗?能准确估计翻译和移植之后性能是会有提升还是会有所下降吗?
系统编程能力体现在把已有的代码拿来并变成更好的代码,体现在把没用的代码拿来并变成有用的代码,体现在把一个做好的轮子拿来能画出来轮子的设计蓝图,并用道理解释出设计蓝图中哪些地方是关键的,哪些地方是次要的,哪些地方是不容触碰的,哪些地方是还可以改进的。
如果你一点不懂理论,还是应该学点的。对于系统性能的设计上,算法和数据结构就像在自己手头的钱一样,它们不是万能的,但不懂是万万不行的。
怎么提高系统编程能力呢?土办法:多造轮子。就像学画画要画鸡蛋一样,不是这世界上没有人会画鸡蛋,但画鸡蛋能驯服手指,感受阴影线条和笔触。所以,自己多写点东西吧。写个编译器?渲染器?操作系统?web服务器?web浏览器?部件都一个个换成自己手写的,然后和已有的现成部件比一比,看看谁的性能好,谁的易用性好?好在哪儿?差在哪儿?为什么?
更聪明一点的办法:多拆轮子。多研究别人的代码是怎么写的。然而这个实践起来经常很难。原因:大部分工业上用的轮子可能设计上的思想和技术是好的,都设计和制造过程都很烂,里面乱成一团,让人乍一看毫无头绪,导致其对新手来说非常难拆。这种状况其实非常糟糕。所以,此办法一般只对比较简单的轮子好使,对于复杂的轮子,请量力而行。
轮子不好拆,其实是一个非常严重的问题。重复发明轮子固然是时间的浪费,但当轮子复杂而又不好拆的时候,尤其是原来造轮子的人已经不在场的时候,重新发明和建造轮子往往会成为无奈之下最好的选择。这是为什么工业界在明知道重复发明/制造轮子非常不好的情况下还在不断重复发明/制造轮子的根本原因。
程序本质是逻辑演绎的形式化表达,记载的是人类对这个世界的数字化理解。不能拆的轮子就像那一篇篇丢了曲谱的宋词一样,能读,却不能唱。
『捌』 西方谚语:“不要重复发明轮子”,原句是怎么讲的
不要重复发明轮子, Don’t Reinvent the Wheel
『玖』 C++STL标准程序开发指南(不要重复发明轮子)的PDF,有的定采纳
这本书前面板先讲了一下c++基础知识,后面才讲得stl技术,看后面你就知道讲得stl技术了
『拾』 java工作原理
Java工作原理
由四方面组成:
(1)Java编程语言
(2)Java类文件格式
(3)Java虚拟机
(4)Java应用程序接口
当编辑并运行一个Java程序时,需要同时涉及到这四种方面。使用文字编辑软件(例如记事本、写字板、UltraEdit等)或集成开发环境(Eclipse、MyEclipse等)在Java源文件中定义不同的类 ,通过调用类(这些类实现了Java API)中的方法来访问资源系统,把源文件编译生成一种二进制中间码,存储在class文件中,然后再通过运行与操作系统平台环境相对应的Java虚拟机来运行class文件,执行编译产生的字节码,调用class文件中实现的方法来满足程序的Java API调用 。