`
qindongliang1922
  • 浏览: 2147652 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
7265517b-f87e-3137-b62c-5c6e30e26109
证道Lucene4
浏览量:116328
097be4a0-491e-39c0-89ff-3456fadf8262
证道Hadoop
浏览量:124593
41c37529-f6d8-32e4-8563-3b42b2712a50
证道shell编程
浏览量:58457
43832365-bc15-3f5d-b3cd-c9161722a70c
ELK修真
浏览量:70354
社区版块
存档分类
最新评论

读开源项目的注意点

阅读更多

想成为IT大牛最快捷的方式就是看开源程序,那么看开源程序应该思考些什么问题呢?
①看程序中的变量,方法,参数,实现的接口,继承的类时要思考他们来自于哪里?
②程序调用执行的先后顺序是怎样的?
③它是怎样实现的这些参数的传递和方法的先后调用的?
④为什么要这么调用和传参,这么做的优缺点是什么?从中你学到了什么?

再高层次一点,你要了解他的架构是怎么样的,为什么要这样架构,他的工程结构是否合理,等等?



       看开源代码绝不能仅仅停留在看懂代码这层上,你必须得看出开源人的编程思维和思想;要懂得人家这样编程的利弊,自己怎样将好的编程思路运用到自己的项目中去,自己是否有更好的思路?其实认认真真读懂一份开源代码比你泛读要好的多,有些人说是说自己看过多少项目,将其技术来也是侃侃而谈但是真正让他做个东西就尿了,为什么?了解浮于表面,不懂人家的编程思想导致的。


       在深入研究计算机的某些个问题时很容易层层深究,比如你在一个类中使用某个参数时你会想他的来源;如果当他是另一个类中传过来的时候,你就会去看另一个类中的方法继承、接口调用,以及类中的具体细节;这样一路深究很容易就触及到支持你开发开发工具包中;当然进入到这个开发工具包中你就更晕了,那么你面临一个重要的抉择是接着往下走呢,还是不求甚解呢?接着往下走以为着需花费更多的时间和精力也不一定能得到你想要的结果,有可能你越走越远最终偏离了你的求知的初衷;总是选择不求甚解呢,那你可能永远没法提高成为大牛,应为你不懂的原理只会简单的实现起点就比这些大牛低了一级;这个时候的抉择应该是看你当时的时间安排,如果你有空那不妨深入研究研究,毕竟我们要知其然而知其所以然;如果没有那个时间那你可以先记下,等你有空的时候在来深究。有时候只是需要某些技术,你不必过于钻牛角尖。在科技企业工作不但要有快速学习新技术应用新技术的能力,还要有深入研究深挖技术实现的能力;快速学习的能力是为了适应企业快速发展的需求,但是深入研究的能力才是保持企业技术长远发展,是企业提升技术竞争力的关键。


本文非原创来自http://1184178955.iteye.com/blog/2023674
分享到:
评论

相关推荐

    DCloud开源项目集锦

    注意,所有开源项目并非全部托管在当前工程下,点击如下开源项目,会自动跳转到对应代码托管地址。 资讯类 新闻阅读器 开发者新闻APP 红旅动漫 闪读看书 电商类 灰狐E3 社交类 1.卡牌对战:基于MUI构建一个拥有90+...

    Google开源项目风格指南 C++ 4.4.5 (2016) 最新中文版

    让任何程序员都可以快速读懂你的代码这点非常重要. 保持统一编程风格并遵守约定意味着可以很容易根据 “模式匹配” 规则来推断各种标识符的含义. 创建通用, 必需的习惯用语和模式可以使代码更容易理解. 在一些情况...

    谷歌开源项目Python风格指南与编写简洁可读代码的建议.zip

    适合学习/练手、毕业设计、课程设计、期末/期中/大作业、工程实训、相关...# 注意 1. 本资源仅用于开源学习和技术交流。不可商用等,一切后果由使用者承担。 2. 部分字体以及插图等来自网络,若是侵权请联系删除。

    开源一STM32项目,CAN,UART,Input检测 原创相对高效性能与代码重用平衡思路,可直接做工程模板

    并使用内部软中断处理CAN数据,相当于事件响应,综合应该比查询方式节省不少时间,也应该比OS调度省点时间。Can.C:底层处理,Communi.C:与应用层高相关。 应用层处理流程用函数指针表的方式调用减少代码量及阅读...

    Android项目源码开源的 Material Design 豆瓣客户端.zip

    注意:本项目使用android studio开发,eclipse可能无法使用。 豆芽的名字取自“Douban, Yet Another”的缩写和中文词语“豆芽”的拼音正好相同的巧合。 取名之后,我才得知豆瓣的 Windows Phone 客户端的名字也...

    newweather:Newweather是一个基于canvasJS,Node.js和美国国家气象服务API的小型开源项目

    感谢opeNode支持开源项目!现在查看随机音符我已经忽略了这个项目一段时间了,主要是因为我不敢碰它。我几天前将其重新上线,但这并不意味着它非常稳定。另外,查看代码可能对您的健康有害。您已被警告。关于停机...

    Python项目-Python机器学习基础教程,Notebook中文化。mglearn 和 data 整合到项目中。

    Python机器学习基础教程,学习代码全部Python化,不需要使用Jupiter,部分...# 注意 1. 本资源仅用于开源学习和技术交流。不可商用等,一切后果由使用者承担。 2. 部分字体以及插图等来自网络,若是侵权请联系删除。

    开源bbs源码java-Android-ProGuard:Android分享:代码混淆那些事

    这里推荐两个开源项目,里面收集了一些第三方库的混淆规则: - android-proguard-snippets - android-proguard-cn 不难理解,混淆之后,类名会变成a,b,c这种,通过包名+类名自然就会找不到该类了,自然就会出现...

    java实现未读消息提醒源码-coderuci-public:一个为程序员设计的SpringBoot+MyBatis+MySQL问答论坛。内嵌

    许可的开源项目。 这是一个专为程序员讨论而设计的问答网站。 在网站上,用户可以发布问题、生成标签、使用 Markdown 进行编辑、发表评论、搜索问题和接收通知。 关键词:Java、Spring Boot、Maven、MyBatis、MySQL...

    mongodbfornodejs:用于 Nodejs 的 Mongodb

    mongodbfornodejs 用于 Nodejs 的 Mongodb ...Node.js 是一个开源项目,旨在帮助编写与网络、文件系统或其他 I/O(输入/输出、读/写)通信的 JavaScript 程序。 新产品管理 不谈 NPM 就不能谈论 Node 中的模块

    Google C++编程风格指南.pdf

    Google的开源项目大多使用C++开发。每一个C++程序员也都知道,C++具有很多强大的语言特性,但这种强大不可避免的导致它的复杂,这种复杂会使得代码更易于出现bug、难于阅读和维护。本指南的目的是通过详细阐述在C++...

    Google C++编程风格指南

    Google的开源项目大多使用C++开发。每一个C++程序员也都知道,C++具有很多强大的语言特性,但这种强大不可避免的导致它的复杂,这种复杂会使得代码更易于出现bug、难于阅读和维护。 本指南的目的是通过详细阐述在C++...

    Google 编程风格

    Google 的开源项目大多使用 C++开发。每一个 C++程序员也都知道,C++具有很多强大的 语言特性,但这种强大不可避免的导致它的复杂,这种复杂会使得代码更易于出现 bug、难于 阅读和维护。 本指南的目的是通过详细...

    doccano:基于网页的开源协同多语言文本标注工具-python

    只需创建一个项目,上传数据并开始注释。 您可以在几小时内构建一个数据集。 演示 您可以尝试注释演示。 功能 协同注解 多语言支持 移动端支持 Emoji :grinning_face_with_smiling_eyes: 支持深色主题 RESTful ...

    嵌入式Linux系统入门的六个步骤.doc

    我读研究生的实验室中也没有使用WinCE的,大都研究linux,也有少部分项目使用vxwork,但是就没有听说过使用WinCE的,原因就是开源!当然现在WinCE6.0听说也开源,不过在成本和资源上linux已经有了无人能挡的优势。与...

    java-bom-generator

    BOM生成器BOM.csv CSI Piemonte提供的标准,为项目的开源发布生成BOM.csv和THIRD_PARTY_NOTE.md文件。执行先决条件执行该操作必须满足以下先决条件: 对于Node.js项目: package.json和package-lock.json文件必须...

    harmonyos英文怎么读-MyTest:我的测试

    注意点: 必须先安装 lombok插件 使用它的好处:可以省略get set toString 等常用的胶水代码 gson google 提供的序列化和反序列化的包 特点:进行序列化的时候很灵活,并且比较稳定 okhttps 提供http访问的包 特点:...

    arm-linux入门

    我读研究生的的实验室中也没有使用WinCE的,大都研究linux,也有少部分项目使用vxwork,但是就没有听说过使用WinCE的,原因就是开源!当然现在WinCE6.0听说也开源,不过在成本和资源上linux已经有了无人能挡的优势。...

    asp.net知识库

    .net 2.0 访问Oracle --与Sql Server的差异,注意事项,常见异常 Ado.net 与NHibernate的关系? 动态创建数据库 SQL Server数据库安全规划全攻略 .net通用数据库访问组件SQL Artisan应用简介1 在Framework1.0下...

    java俄罗斯方块源码-GoodSourceCodes:好源代码

    碰巧读过之前大家提到的一些开源项目 网络编程: redis是单线程异步网络编程的范例: nginx是多进程网络编程的巅峰,模块化: memcached虽然是C++,但是C style的,多线程网络编程的巅峰数据结构: 数据库:SQLite,...

Global site tag (gtag.js) - Google Analytics