当前位置:首页 » 操作系统 » 源码看不懂

源码看不懂

发布时间: 2023-09-08 03:22:15

❶ 怎样才能看懂网页的源代码

可用HTML语言理解网页源代码。

通常用来编写网页的计算机语言有如下三种:

1、HTML语言:最常用最基本的语言,在网页中不可或缺。网页的标题、框架、背景、字体、超链接、颜色和其他元素的设置是用HTML语言完成的。Html是VB和jav的载体,网页的后缀名一般为“.HTM”或者“.HTML”。

2、VB语言,又称visual basic语言,可以进行HTML语言在网页中无法完成的计算、效果、调用各种数据乱物御库等。它属于一种相对高级的语言蚂搏,赋予网页以灵魂,丰富了网页,使用HTML和VB语言共同编写的网页的后缀名一般为“.ASP”。

3、java语言,Java语言的功能与VB语言几乎相同,但它的功能更强大,其效果可能是压倒性的。现在大多数动态网页都是用HTML和Java语言编写的,后缀名一般为“.ASP”或者“.JSP”。

(1)源码看不懂扩展阅读:

HTML语言编辑方式:

HTML其实是文本,它需要浏览器的解释哗岩,它的编辑器大体可以分为以下几种:

基本的文本和文档编辑软件可以使用微软自己的记事本或写字板来编写,当然,如果使用WPS,你也可以,但是,保存磁盘时,请使用,HTM或,HTML作为扩展,使浏览器能够识别和直接解释执行。

半所见即所得软件,如:fck编辑器、e-webedit和其他在线网页编辑器;特别推荐:Sublime文本代码编辑器(由Jon Skinner开发,Sublime text2收费,但可以无限期试用)。

❷ 如何高效阅读源代码

下面是之前写的一篇文章:《如何快速阅读源码》

本文探讨在需要了解一个开源项目时,如何快速的理清开源项目的代码逻辑!

以下是个人认为行之有效的方法:

本文以Mybatis为例来进行演示!

先“跑起来”

程序界有个老传统,学习新技术时都是从“Hello World”开始的!无论是学习新语言时,打印“Hello World”;还是学习新框架时编写个demo!那为什么这里的“跑起来”要打个引号呢?

实际上,当你想要阅读一个开源项目的源码时,绝大部分情况下,你已经能够使用这个开源项目了!所以这里的“跑起来”就不是写个“Hello World”,也不是能跑起来的程序了!而是能__在你的脑子里“跑起来”__!什么意思?

Mybatis你会用了吧?那么请问Mybatis是如何执行的呢?仔细想想,你能否用完整的语句把它描述出来?

这里是Mybatis的官方入门文章!你是如何看这篇文章的?读一遍就行了吗?还是跟着文章跑一遍就够了吗?从这篇文章里你能获得多少信息?

我们来理一下:

回答出了上面这些问题!你也就基本能在脑子里把Mybatis“跑起来”了!之后,你才能正真的开始阅读源码!

当你能把一个开源项目“跑起来”后,实际上你就有了对开源项目最初步的了解了!就像“ 书的索引 ”一样!基于这个索引,我们一步步的进行拆解,来细化出下一层的结构和流程,期间可能需要深入技术细节,考量实现,考虑是否有更好的实现方案!也就是说后面的三步并不是线性的,而是__不断交替执行__的一个过程!最终就形成一个完整的源码执行流程!

自顶向下拆解

继续通过Mybatis来演示(限于篇幅,我只演示一个大概流程)!我们现在已经有了一个大概的流程了:

虽说每个点都可以往下细化,但是也分个轻重缓急!

很明显,sqlSession去执行 sql才是Mybatis的核心!我们先从这个点入手!

首先,你当然得先下载Mybatis的源码了(请自行下载)!

我们直接去看SqlSession!它是个接口,里面有一堆执行sql的方法!

这里只列出了一部分方法:

SqlSession就是通过这些方法来执行sql的!我们直接看我们常用的,也是Mybatis推荐的用法,就是基于Mapper的执行!也就是说“SqlSession通过Mapper来执行具体的sql”!上面的流程也就细化成了:

那SqlSession是如何获取Mapper的呢?Mapper又是如何执行sql的呢?

深入细节

我们来看SqlSession的实现!SqlSession有两个实现类SqlSessionManager和DefaultSqlSession!通过IDE的引用功能可以查看两个类的使用情况。你会发现SqlSessionManager实际并没有使用!而DefaultSqlSession是通过DefaultSqlSessionFactory构建的!所以我们来看DefaultSqlSession是如何构建Mapper的!

它直接委托给了Configuration的getMapper方法!

Configuration又委托给了MapperRegistry类的getMapper方法!

在MapperRegistry类的getMapper中:

在这里knowMappers是什么?MapperProxyFactory又是什么?mapperProxyFactory.newInstance(sqlSession)具体做了什么?

其实很简单,knowMappers是个Map,里面包含了class与对应的MapperProxyFactory的对应关系!MapperProxyFactory通过newInstance来构建对应的Mapper(实际上是Mapper的代理)!

快接近真相了,看mapperProxyFactory.newInstance(sqlSession)里的代码:

这里干了什么?

最终实际还是委托给了sqlSession去执行具体的sql!后面具体怎么实现的就自行查看吧!

延伸改进

现在我们的流程大概是这样的一个过程:

现在我们大概知道了:

那么,

这个问题列表可以很长,可以按个人需要去思考并尝试回答!可能最终这些问题已经和开源项目本身没有什么关系了!但是你思考后的收获要比看源码本身要多得多!

再循环

一轮结束后,可以再次进行:

不断的拆解->深入->改进,最终你能__通过一个开源项目,学习到远比开源项目本身多得多的知识__!

最重要的是,你的流程是完整的。无论是最初的大致流程:

还是到最终深入的细枝末节,都是个完整的流程!

这样的好处是,你的时间能自由控制:

而不像debug那样的方式,需要一下子花费很长的时间去一步步的理流程,费时费力、收效很小,而且如果中断了就很难继续了!

总结

本文通过梳理Mybatis源码的一个简单流程,来讲述一个个人认为比较好的阅读源码的方式,并阐述此方法与传统debug方式相比的优势。

阅读源码是每个优秀开发工程师的必经之路,那么这篇文章就来讲解下为什么要阅读源码以及如何阅读源码。

首先来说下为什么要读源码,有学习源码的必要吗?

为什么要阅读源码?

关于为什么阅读和学习源码,我个人认为可能有以下几点:

(一)吊打面试官,应对面试

为了找到更好的工作,应对面试,因为在面试中肯定会问到源码级别的问题,比如:为什么 HashMap 是线程不安全的?

如果你没有阅读过源码,面试官可能会对回答的结果不满意,进而导致面试结果不太理想,但如果你对源码有所研究,并能够很好地问答面试官的问题,这可能就是你的加分点,可以形成自己独特的竞争力,吊打面试官,升职加薪不是梦。

(二)解决问题(bug)

在开发过程中,我们或多或少会遇到 bug,比如:在 foreach 循环里进行元素的 remove/add 操作,为啥有可能会报 异常?

我们可以先在 Google、Stack Overflow 以及对应项目的 Issues 里看有没有类似问题以及解决办法,如果没有的话,我们只能通过阅读源码的方式去解决了。如果我们对相关源码有所涉猎,就可以快速定位到问题所在。

(三)提升编程能力

和阅读一本好书一样,阅读源码就是和编程大牛面对面交流的机会,在许多优秀的开源项目中,它们的编码规范和架构设计都是很棒的,另外在设计上也使用了大量的设计模式,通过阅读和学习源码,能够快速提升我们的编码水平,以及对设计模式有更深的理解。

同时,在我们阅读完一个源码后,可以触类旁通,能够快速地对其他框架的源码进行阅读和学习,减少时间成本。

除了上述提到的原因之外,可能还有许多,在这里就不一一赘述了,那么在确定了要阅读源码之后,就让我们看下如何阅读源码吧!

如何阅读源码?

如何阅读源码取决于你为什么要读源码,比如:

下面大概说下阅读源码的几点建议:

在阅读之前,可以先从开源项目的官网上看它的架构设计和功能文档,了解这个项目的 整体架构、模块组成以及各个模块之间的联系

如果没有对应的项目文档,可以根据代码的模块进行梳理,以形成对项目的初步了解,或者 查看已有的源码解析文章或者书籍 ,在阅读源码之前,了解项目的架构和思路会使阅读源码事半功倍。

在了解一个类的时候,可以使用 ctrl+F12 来查看类中的成员变量和方法。

可以通过 IDEA 的 Diagrams 功能去了解一个类的继承关系。

多打 断点调试 ,断点追踪源码是很好的阅读源码的方式,可以先通过 debug 了解下调用逻辑,都和哪些类有关联,有大致了解后再通过 debug 了解整体代码的功能实现,各个类都起到了什么作用,有没有涉及到设计模式等。

另外,优秀的开源项目中肯定会有许多地方应用到了 设计模式 ,建议在阅读源码之前,需要对常用的设计模式有大致的了解,不然阅读源码的效率会大大降低。

如果遇到读不懂某部分源码的时候,可以先跳过,之后再回来看,如果属于搞不懂这部分就茶不思饭不想的人,可以在网上找是否有该部分源码的解析或者文档,也可以自己通过 源码注释和测试用例 去阅读学习。

一般优秀的开源项目都会有 单元测试 ,可以通过对应类的单元测试去了解方法的含义和用法,加深对源码逻辑的理解。

在阅读源码的时候,可以在代码上加上 注释和总结 ,同时还可以画出 时序图和类图 ,这样对阅读源码有很大的帮助,可以很清楚地知道类之间的调用关系和依赖关系,也方便以后回顾,重新阅读。

在这里推荐大家一个 IDEA 插件 SequenceDiagram,可以根据源码生成调用时序图,便于阅读源码。

刚开始阅读源码,不建议直接看框架源码,可以先从 jdk 源码看起:

jdk 源码也是非常庞大的,可以分模块来阅读,下面是建议的阅读顺序:

其他包下的代码也可以做下了解,JDK源码阅读笔记:https://github.com/wupeixuan/JDKSourceCode1.8

再有了一定的源码阅读经验后,可以再去学习 Spring、Spring Boot、Dubbo、Spring Cloud 等框架的源码。

总结

主要介绍了为什么读源码以及如何读源码,供大家参考,每个人都有适合自己的阅读源码的方式,希望可以在学习中去摸索出一套属于自己的方式。

阅读源码不是一蹴而就的,这是持久战,只要你能够坚持下来,肯定受益匪浅。阅读源码的过程比较枯燥,可以在社群里一起讨论学习,这样可能效率更高些。

没看过源代码,都不好意思出来说了,最近刚好在看一些,来说一个。

先看使用 https://element.eleme.cn/#/zh-CN/component/installation


先看一下这个库是做什么用的,然后提供了哪些功能。

看GitHub https://github.com/elemefe


一般会看下项目最新的情况,然后没有关闭的issue,看下wiki,大家在讨论什么。

再看代码


clone 一份到本地,然后先看下目录结构,然后根据文档看几个简单的组件的时候,一边看掘金上的分析,一边自己看下实现。


e le

饿了么这个框架代码结构还是很清楚的,基本上每个组件都是分开的,所以你只要看其他的一个文件夹就行。然后一些工具的都在src文件夹。



要学会看issue,一般开源的项目都有人会来提建议,有些是bug,有些是功能,你可以看看自己是否有能力去解决,如果可以的话,你可以去fork代码,然后自己修改,再提pr。

我最近恰好找摸索出一个梳理遗留系统架构的技巧:自底向上 找到一个典型的切面 沿着调用和回调的路径 在代码中添加结构化注释(比如eclipse中加//TAG 流程A1.1 甲->>乙),这样便得到了一个code地图,并且在tasks视图中看起来很直观(看起来跟书的目录一样)可快速跳转。将目录到有道云笔记的markdown序列图中 就自动生成了一个序列图。

我觉得这基本上就是可缩放的可视化架构地图了,对维护一个比较乱和庞大的遗留系统非常有帮助,定位代码 修改维护都方便多了。

1、需要过硬的基础知识,这个前提。不然基本语法、常用的模式都不晓得怎么读。

2、多参考 历史 版本和更新变化,好的源码都是反复迭代出来的精华,开始就读精华是很不明智的,所以看看版本更新说明,版本的 历史 演变。就想人一样是怎样进化过来的。

3、参考别人阅读注释,想必在你读源码之前也有人读过了源码,并且总结,注释。和分享原理,可供你参考,毕竟每个人读一篇文章,理解的东西是有差异化的。

4、直接买书,有些作品直接出书就是源码精解

5、找个大神给你慢慢分析,这个最快。娓娓道来,直接面授比啥都强。缺点是,你容易跟着他的思维走下去。

我觉得阅读代码就不应该高效,而应该像看小说一样,看的过程就像是在和作者交流,有趣才是看代码的动力。

画图,看数据走向,逻辑走向

先弄清楚这些代码实现了哪些功能,然后从主线开始往下看,好的代码光看变量和接口名称就能明白是什么意思?扒出源码实现的整体框架逻辑,然后再对自己感兴趣的模块进行剖析,还是从整体把握,细节深入,慢慢地整个框架就被丰满了。

接下来是思考为什么要如此设计,这样设计的好处是什么?如果是你来做应该怎么设计,把你觉得源码缺点的地方进行仔细研究,了解里面是否包含自己不清楚的细节,避免遗漏。

接下来就是根据代码改造或者是调试错误,对于源码中遇到的不理解的地方一定要弄明白,有的确实是画蛇添足,有的有独特的作用。

多多学习,对每一种主流框架铭记于心,对主流设计模式了如指掌,万变不离其宗,源码看多了,跟看一个电视机遥控器的操作说明一样。

1、一边阅读代码一边写注释。这是我用过的最好的方法,对代码理解得更深入,看一些重要代码或者特别难懂的代码时挺有用。更何况,注释也是一种文档嘛。

2、一边阅读代码一边绘制UML。这个方法适用于类之间的关系较复杂和调用层次较深的情况,我一般都是先绘制顺序图,然后为顺序图中的类绘制关系图。

3、通过Debug来跟踪程序的主要执行过程,这样就可以分清主次了,阅读的时候更有针对性。

4、类的快速阅读。先弄清楚它在继承链中的位置,看看它的内部状态,也就是成员变量,一般来说,类的对外接口都是对成员变量的访问、加工、代理等,然后看看它的对外接口,也就是公有成员函数,识别核心的一个或多个函数,这时候你应该可以大概了解这个类的职责或作用了。可能这个类是某个设计模式中的一个组成部分,所以,设计模式的掌握对代码的快速阅读也是很有帮助的。

5、带着问题去阅读。比如想了解android中的消息机制,那么看看Looper、Handler、MessegeQueue这几个类就可以了,其他的不要去看,要不然就跑题了。

下面列几个阅读源码时所处的情景,在特定场景下用哪些方法: 不太熟悉业务逻辑,还不是很清楚它是干啥的,可以用3、5。 代码量很大,有几十万行,甚至百万行,可以用2、3、5。 你无法看见程序的运行过程,比如没有用户界面,也有可能是无法运行的,可以用3、5。 设计复杂,用了大量的设计模式,调用链很深,可以用1、2、3、4、5。 时间有限,没有那么多时间让你看源码,可以用3、5。

画出逻辑流程图,先了解整体流程,再详解具体函数

❸ stl源码剖析什么水平能看懂

高水平。芦缓STL是步进触点指令SequentialFunctionChart的简称,是PLC命令,用来作顺序功能图。是一种很很复杂的源码,在没有学习过的情况下是看不懂的,因此是很高水平的才能看懂源码剖析。此种命令可以让我们程式设消毁计人员在程式规划时,能够像平时写流程图一样,对于程式的步序更为清楚,更具有可拿哗备读性。

❹ 代码小白,想要把php网页中的某处文字内容做修改,但是在源码后台看不懂啊,请技术大神帮忙,谢谢。

你需要下载一个notepad++,然后打开这个目录里任意一个文件。

然后按ctrl+H

也可以直接使用在文件中替换,你只需要在替换为输入框里写入目标文字比如'LO萌娘社区'。

❺ 我很想学编程,但看不懂编程代码怎么办

我也在自学当中,起初是看不懂的,看了犯困是常事,首先,我觉得应该给自己定一个理想吧,你要真的喜欢上它,因为它真的具有魔法,可以改变现实。其次,可以先做有意思的事,产生兴趣,比如在网上跟着教程做一款小游戏。最后是认准方向,花时间,精力,投入热情,看书,文档,教程,小时候我们也不懂古诗是什么意思,当年纪大一些就理解了,你发现你已经会背诵很多年了,加油??,坚持也是一种魔力。???


1.确定你要干嘛然后在学,不要想搞设置学java,想做web学python,想搞人工智能学js.

2.选定目的后,选择语言.

3.选定语言后,google相关的语言,然后去辛苦的备战吧

-1.把官方文档看熟悉,搞清楚大脉络,如果是高级语言,应该离不开,类,函数,继承,数据类型,装饰器巴拉巴拉

-2.去163study或者bilibili随便找一个教程,做一些你喜欢的事情.

-3.等你把你想做的事情做成之后,拿着你的成果去面试吧,多面试失败几次你就大概懂了这行了

-4.失败无数次后你就成为了我一个程序猿天天爬树,荡来荡去,挺好玩的.


我本人也是一个编程爱好者,以下以我的个人见解,提出个人的一些橘让看法和建议。

我认为这个问题问得本身就显得有点矛盾,想学却担心自己看不懂代码学不来,试问哪个编程人员不是从零开始的。

1、坚定信念

我认为学习是一种从心开始的过程,圆绝局想学就说明有学习的心,有心之后就是行动。很多人开始有学习的心是受到外界因素的影响,比如说看别人学习编程可以自己编写一些小程序、APP之类的很酷,然后自己就滋生想学习编程的想法,又或者是看到别人、听别人说学习编程日后就业好、工资好、可以做副业等等之类的好处萌生学编程的想法,但真正把心落地,拿起编程书,看编程视频,开始接触代码时,发展学习编程并没有自己想象中的那么简单,又开始打退堂鼓了,觉得自己不行,学不来编程等等,开始对编程产生排斥心理,这样自然也就不可能学会编程。我认为学习编程,必须要有坚定的学习编程的信念。

2、从零开始

学习编程是一个逐渐积累、不断提升的过程。刚接触编程就得从最最基础的知识学习,砖头是盖成摩天大厦的基础,没有坚实的基础哪会有大厦。学习编程初期从零开始学习编程基础理论知识,记忆编程代码,有了初步的编程认知后,简单实操感受编程的魅力。有了基础以后就是提升,多看实例,学习编程的编程方法,看多了自然也就会了,同时融汇贯通形成自己的编程手法,这需要时间的积累、沉淀,正所谓没有量变怎么会有质变出现。

以上是我的个人见解,希望对你有所帮助,谢谢!


本人就是一个半路出家的程序猿,说一下自身的经历吧!当决定要去学编程的时候,首先是在网上找了一些相关的课程视频!了解一些基本的知识,对于一个小白来说,不建议上来就去看专业的编程数据!因为确实是看不懂,然后就会对自己产生质疑,是不是自己不是学这行的料,然后就放弃了,看视频的好处相对于书来说,更有吸引力一些。更有利于自己的坚持。然后就是报培训班的问题,报班的好处在于有一个很好的学习氛围,身边都是志同道合之人,这样不会半途而废,毕竟现在的培训班都不便宜,一旦报了培训班,就没有了退路,这样自宏基己只能一往无前的去学习!我在培训的时候,中途也想过放弃,到一想到自己交了这么多钱,花了这么多时间,就咬牙坚持了下来!最后就是培训出来后慢慢找工作!总之对于想学编程的朋友一定要考虑清楚,毕竟现在这个行业竞争真的很激烈,需要始终保持学习,不然说不定那天就被淘汰了,一旦想好,去一条道走到黑了


你出现这问题的原因,不是编程太难。是你基础都不了解就跑去看源码。还有就是你不是天才,才看不懂代码。

输入输出,变量声明,循环结构,分支结构看过吗?ide,运行环境配置好了么。

凡事不要急于求成,踏踏实实的慢慢学。代码不难,是人太笨,想法上有问题。去b站上学习吧。路子没找对,觉得难,其实很简单。


声明:我也是编程爱好者。这是我的原创回答!非搬运工!手工一个字一个字码出来的!答案往下看。

自学编程可以啊!方便透露下年龄,还有英语方面程度?还有你要做什么软件?我只能猜测个大概,作出如下表述。建议补全想法。好有针对性。

根据你所说的情况,结合我学编程的经历,建议如下

推荐使用“易语言”编程,因为是中文编程软件,不需要记英文!比起其他编程语言C、C++、Delphi等容易上手!重点来了,好多外G作者都是用易语言的。某些病毒也是易语言写的。

所以,建议你先从易语言着手,打好基础!再学别的!学易语言任何年龄段都能上手!

附:易语言最新版本5.9。自行搜索下载即可。这里就不贴出具体下载地址啦。

题外话,很好奇问答的答案为何非要凑字数??普遍是一堆废话。我用手机打字半小时,只是表达一个重点:请先从“易语言”学起!!保证立马见效果!附图是易语言官网截图。

除非你是天才,否则没有学过和有基础的前提下,你不太可能看懂,编程还是比较烧脑的,有兴趣做,有毅力做下去,且需要长期的学习和实践,这些你都能接受后,那就开始从基础学习吧,网上的各种教程,免费的,收费的,按照学习路线前进


你好,我是一个大学的任课老师,现在就是带学生软件编程的相关课程,每个初学编程都会有你这样的感受,学习软件编程是一个一点一滴积累的过程,没有谁开始就能懂得程序代码,他是一个循环渐进一步步边学习边理解的过程,需要时间去积累经验和理解的过程,随着学习的深入,慢慢的对于以前不理解的问题或者编码过程以及思想也就会慢慢理解的,不要着急,知识的沉淀需要一个过程,你要做的就是努力。加油


首先为你这个爱好点赞(?ò?ó?),编程又分好多种,

编写电脑软件c语言,要是个人写的玩易语言都可以。

手机呢你就关注华为那个鸿蒙系统学那个就好

网站又phphtm5..等

其实都很简单,多年以前我也这样晕??。工作用到一点就学一点知道就行。时间和精力有限不能浪费的就千万不要浪费。

都是从浅入深,确定了方向就努力学习吧??加油(???_??)?


"
热点内容
requestdatapython 发布:2025-01-31 08:02:01 浏览:43
javades加密工具 发布:2025-01-31 07:54:04 浏览:243
电话如何配置ip 发布:2025-01-31 07:48:48 浏览:299
2021奔驰e300l哪个配置性价比高 发布:2025-01-31 07:47:14 浏览:655
sqlserver2008光盘 发布:2025-01-31 07:32:13 浏览:577
sql查询小时 发布:2025-01-31 07:23:00 浏览:422
新车鉴别时怎么查看汽车配置 发布:2025-01-31 07:19:37 浏览:880
linux驱动程序开发 发布:2025-01-31 06:56:03 浏览:770
nlms算法 发布:2025-01-31 06:55:56 浏览:899
结束服务器怎么操作 发布:2025-01-31 06:54:17 浏览:393