游戏电视苹果数码历史美丽
投稿投诉
美丽时装
彩妆资讯
历史明星
乐活安卓
数码常识
驾车健康
苹果问答
网络发型
电视车载
室内电影
游戏科学
音乐整形

阅读别人编写的代码的最有效方法?如何4步加速阅读别人代码?

  作为开发人员,无论我们的专业是什么,无论是数据科学、前端还是后端,我们都会花费超过75的时间阅读他人编写的代码。该任务可能是一项艰巨的任务。
  话虽如此,有效阅读他人代码的能力是可以使软件工程工作变得更加愉快的技能之一。不幸的是,这也是一项被学校、训练营和公司广泛忽视的技能。这是每个人都认为您知道或擅长的技能之一,只是因为您知道如何编写代码。
  关于编写代码的事情是,每个人都有自己的编码风格。阅读代码不同于阅读小说或故事;这不仅仅是阅读屏幕上的说明。相反,当您阅读别人编写的代码时,您不仅仅是在阅读他们的代码。您正在尝试了解他们的思维过程以及他们在编写该代码时的想法。
  不用说,这是一项极具挑战性的任务。但是,这项任务可以成倍地简化。在本文中,我将带您完成阅读和理解他人代码的4个步骤。
  为了解释不同的步骤,我将通过我为网络抓取教程编写的代码。
  Importneededlibrariesfrombs4importBeautifulSoupasbsimportrequestsasrqimportpygalimporttimeimportpygalfromIPython。displayimportdisplay,HTMLbasehtml!DOCTYPEhtmlhtmlheadheadbodyfigure{renderedchart}figurebodyhtmldefinefunctionsfordatacollectiondeffindbookname(table):iftable。find(caption):nametable。find(caption)returnname。textdefgetauthor(table):authornametable。find(textAuthor)。next。textreturnauthornamedefgetgenre(table):iftable。find(textGenre):genretable。find(textGenre)。next。textelse:genretable。find(textSubject)。next。next。next。textreturngenredefgetpublishingdate(table):iftable。find(textPublicationdate):datetable。find(textPublicationdate)。next。textelse:datetable。find(textPublished)。next。textpatternre。compile(rd{4})yearre。findall(pattern,date)〔0〕returnint(year)defgetpagescount(table):pagestable。find(textPages)。next。textreturnint(pages)defparsewikipage(url):pagerq。get(url)。textreturnbs(page)defgetbookinforobust(bookurl):Toavoidbreakingthecodetry:booksoupparsewikipage(bookurl)booktablebooksoup。find(table,classinfoboxvcard)except:print(fCannotparsetable:{bookurl})returnNonebookinfo{}getinfowithcustomfunctionsvalues〔Author,BookName,Genre,PublicationYear,PageCount〕functions〔getauthor,findbookname,getgenre,getpublishingdate,getpagescount〕forval,funcinzip(values,functions):try:bookinfo〔val〕func(booktable)except:bookinfo〔val〕NonereturnbookinfoGetbooksurlhttps:en。wikipedia。orgwikiTime27sListofthe100BestNovelspagerq。get(url)。textsoupbs(page)rowssoup。find(table,classwikitablesortable)。findall(tr)〔1:〕bookslinks〔row。find(a)〔href〕forrowinrows〕baseurlhttps:en。wikipedia。orgbooksurls〔baseurllinkforlinkinbookslinks〕tostorebooksinfobookinfolist〔〕loopfirstbooksforlinkinbooksurls:getbookinfobookinfogetbookinforobust(link)ifeverythingiscorrectandnoerroroccursifbookinfo:bookinfolist。append(bookinfo)puaseasecondbetweeneachbooktime。sleep(1)Collectdifferentgenresgenres{}forbookinbookinfolist:bookgenbook〔Genre〕ifbookgen:iffictioninbookgenorFictioninbookgen:bookgenfictionifbookgennotingenres:countbooksineachgenregenres〔bookgen〕1else:genres〔bookgen〕1print(genres)Plotresultsbarchartpygal。Bar(height400)〔barchart。add(k,v)fork,vingenres。items()〕display(HTML(basehtml。format(renderedchartbarchart。render(isunicodeTrue))))第1步:运行代码并查看其作用
  每当您获得需要阅读和理解的代码时,要做的第一件事也是最明显的,我可能会争辩说就是运行代码并查看它的作用。它需要什么作为输入?输出是什么?
  那么,让我们继续运行上面的代码并探索结果。
  并非所有代码都会生成图表;一些代码的输出将是文本输出。无论输出类型如何,我们都可以探索它来猜测(如果您还不知道)编写代码的大致目的。
  但是,这可能不会为您提供有关代码细节的很多细节,或者如果此代码是更大项目的一部分,您可能不知道它是如何连接的,但您将学习如何构建和运行它。此外,您还将了解它使用的库和它所依赖的框架。
  尽管如此,运行代码将为您提供更好地理解它所需的信息,并确保您获得每个依赖项,您需要开始工作并扩展它。步骤2:找到主要功能或起点
  现在我们知道了代码的作用和输出是什么,我们可以开始更深入地研究它的细节。为此,我们需要精确定位代码的开头。如果您使用的编程语言具有必须的main功能,如C、C或Java,请从那里开始,逐步了解其他功能。
  但是,如果您使用的是Python,则并非所有代码都有函数main,但您可以使用缩进来了解代码的起始位置。比如上面的代码,我们有多个函数,那么代码的起点就在第80行。
  因此,我们可以首先开始查看注释(如果有的话)并查看代码的整个主要部分,而无需深入了解子函数的细节。
  遍历该main函数可为您提供代码的一般流程,每个子函数的作用,而不是它们的工作方式,而是它们的作用。步骤3:在调试模式下运行代码
  仔细阅读代码的主要部分后,您可能会发现在调试模式下运行代码很有用。这样做的原因是,当您在调试器中运行代码时,它允许您观察您的代码如何与内存交互。
  它将向您展示每个变量如何随着代码中的每一步而变化。这样做将使您对代码的内部功能及其不同功能有更深入的了解。
  一旦您看到代码中的每个变量如何随每一行变化,您就可以开始在代码中添加自己的注释,向自己解释每一行代码的作用。步骤4:构建代码不同部分之间联系的思维导图
  我发现有很大帮助的一件事是在调试器模式下运行时构建代码连接的思维导图。调试器模式向您展示了不同代码项之间的清晰联系。
  从思维导图中间的代码文件的名称开始,然后分支出不同的功能以及它们的连接方式。尝试将代码中的变量也鼓励到思维导图中,也许不是所有变量,而是对整体结果影响最大的变量。
  此外,尝试包括代码的输入和输出以及它们的类型或预期类型。这是上面代码的思维导图。
  每当您与此代码库交互时,构建思维导图将为您节省大量时间。如果您想添加或删除代码的任何部分,它将帮助您了解连接。带走
  阅读其他开发人员编写的代码可能是一项极具挑战性的任务;你需要了解他们的逻辑,他们的风格,以及他们的具体选择。看了那么多不同层次、不同年龄的程序员写的代码。经历过这些之后,我提出了自己的4步流程来简化阅读、探索和理解基本上不是我的人编写的代码。
  这4步过程很简单,将为您节省大量时间和精力;您需要做的就是:运行代码并浏览结果。找到主要功能或代码的起点。在调试器下运行代码并充分理解代码的机制。构建不同代码元素之间连接的思维导图,并在您与代码交互时随时使用它。
  我希望您发现这些步骤对您在下一次代码探索冒险中节省大量时间和精力很有用。事实上,阅读与写作所花费的时间之比远远超过10比1。我们不断阅读旧代码,以此作为编写新代码的一部分。。。。。。。〔因此〕使其易于阅读使得编写起来更容易。
  罗伯特C马丁

程潇出席活动阵势大,几十名保安围成人墙,保安比粉丝多太尴尬近日,有网友曝光了一段程潇现身海南出席活动的视频,现场的保安比粉丝还多,引发广泛热议。从画面中可以看到,几十名保安手拉着手围成了人墙,他们都穿着统一的工作服,右边的围观群……这碗三痹汤,逼走关节寒湿,活血祛风通筋络,吓跑痛风,尿酸降笑口常开研习社原创美文第1021期果然,大雪节气前后,寒湿痛风的患者就多了起来,而且还是久治不愈反复发作的老痛风,那种胀痛、麻木、灼热,一到了深冬,感觉确实更严重。……如果我有一支马良的神笔来源:【铁人先锋】2022年已经和我们挥手再见,2023年也正式走进了我们的生活。回顾过往,有欢呼雀跃的喜悦也有扼腕叹息的遗憾,无论是回味喜悦还是感叹遗憾,我们脑海里都会……从汪小菲事件看富豪与女明星婚姻囧状汪小菲大S离婚后的床垫事件还在持续发酵,曾经名噪一时的京城四少之一汪小菲已经被离婚后遗症狂虐到焦头烂额、身心俱疲!可事情还远远没有结束的预兆!如果,这里强调如果,如果汪小菲没有……科研揭榜挂帅英雄不问出处中国小康网独家专稿文《小康》中国小康网记者赵狄娜坚定决心揭榜挂帅频频被点名的背后,是坚定的国家决心:千方百计把创新能力搞上去。图片TUCHONG揭榜挂帅机制的……2023全球及中国夹层玻璃中间膜行业研究及十四五规划分析报告辰宇信息咨询市场调研公司最近发布《20232029全球与中国夹层玻璃中间膜市场调研报告》内容摘要本文同时着重分析夹层玻璃中间膜行业竞争格局,包括全球市场主要厂商竞争……儿童性教育有多重要,快告诉孩子这四句话(漫画揭秘)儿童性教育有多重要?第一点,不要躲避孩子的提问,在这一方面,家长往往认为小孩子还小难以启齿,刻意或者下意识去躲避回答。这么做是不对的,通过家长的引导下。孩子可以逐步了解男……LOL因为太强而被删除的装备,如果不删,玩家根本玩不了武器大师有一句台词,最强的武器,只有补丁。没错,在英雄联盟历史上,也曾经出现过一群逆天装备,后面因为太强影响平衡,而不得不删除这些装备。今天咱们就来回忆一下曾经那些神级装备吧。……就是这张萌萌的外国脸把国人都融化了中国文化的包容力和魅力冰雪2022天才少女谷爱凌又夺得了一枚金牌。这是她在本届冬奥会上收获的第二枚金牌,也是咱们国家在本届冬奥会上获得的第八枚金牌。自然是举国欢天喜地,咱老百姓用妞妞、小妞这淳朴的称……马云药明系接力扶持,刚成立3年的防脱发企业要上市12月23日,科笛集团向港交所提交招股说明书,计划在主板挂牌上市,高盛与中金为其联席保荐人。根据招股说明书显示,科笛集团成立刚刚三年,目前公司正处于商业化的初级阶段,20……近3天主力资金最大买入100股及大幅卖出100股名单若不喜欢看表格,输入任何数字进入底部图片区域。更新日期:10月10日收盘近3日主力资金大幅买入最多的100股序号代码名称最新价3日涨跌……甘肃金塔在穗推介大漠胡杨中国青年报客户端广州3月24日电(中青报中青网记者林洁)今天,甘肃省酒泉市金塔沙漠胡杨林景区和弱水环流景区在广州举行2023年广东旅游联盟交流推介会。现场,主办方介绍了金塔县文……
RNG靠积分进世界赛,条件苛刻,张嘉文必须滔搏夺冠,EDG亚今年的LPL夏季赛其实已经接近尾声了,在这个赛季从目前的整体走势来看的话,一切还是在观众他们所预期之中,常规赛比较强势的四大队伍,目前只有RNG战队是被EDG战队抬走了,虽然说……炸油条的紧身牛仔裤搭配飞机上衣,刘诗诗变身极品少妇说到大明星刘诗诗,其实我们大家应该也都非常的熟悉了。刘诗诗自从出道以来,一直都是一位备受关注的女明星,凭借自己出色的颜值和气质赢得了大多数网友的偏爱,名气也是越来越大,刘诗诗也……谭松韵繁花油画纱裙造型,露美背香肩美艳动人,笑起来超甜娱兔迎春谭松韵今日亮相央视盛典活动,一袭繁花油画纱裙,像从画中走出的小仙女。她凭借电视剧《向风而行》中饰演的程霄提名年度突破女演员,恭喜谭松韵在新的一年里获此殊荣,也期待……李斌的第四个IPO要来了!盘点他的出行生态版图策划丨海腰制图丨kk、邬海雯2月20日,嘀嗒出行再次向港交所主板递交上市申请,第三次冲刺IPO。此前在2020年10月、2021年4月,嘀嗒出行曾先后两次冲刺港股上……几个像素可以测温在日常工作中经常被问到,几个像素点可以测温。比较常见的答案是33个像素点可以测温。这个答案应该是各家红外公司宣传的标准答案。那么这个33是怎么来的呢,这个说法是不是准确,这个文……红米note10和红米note10pro之间,该如何抉择?根据小芳的实际体验以及两款手机的综合配置来说,我个人是更加推荐大家购买机身更薄、性能更好、屏幕质量更加出色、拍照能力更强、充电速度更快以及功能更加全面的红米note10pro这……自带天线可看电视,这款二手夏普滑盖手机,功能设计超越原生安卓拒绝参数,只谈体验,关注导盲犬小抠,真实解读您熟悉的数码产品,本文阅读预计耗时3分钟。国产智能手机的发展,自安卓机器人统一江湖后,其外观造型似乎也被圈定,直板手机成为唯一……辽宁男篮大变天!二公子任总经理,李洪庆隐退边队身兼两职近日李洪庆在自己的朋友圈发布了一张郭艾伦签约后的照片,可以说是刷爆了朋友圈,而李洪庆在朋友圈下面则是相当不客气的回怼了牛洪波,也可以说二人的矛盾也是越来越深。与此同时,这……詹姆斯更接近记录了,数据完美,无奈输球!季后赛又悬了北京时间10月19日,湖人客场挑战勇士队,赛前颁发了上赛季的冠军戒指。勇士队戴着刻有自己名字的冠军戒指,打起比赛没有丝毫手软,库里三分手感不佳13投中4,全场22投10中,拿下……口袋妖怪小智放生最亏的宝可梦!有它们在战力直接提一个档次爱生活,爱游戏,大家好,我是你们的好朋友汤圆。关注汤圆,收获更多快乐哦!在口袋妖怪后期的游戏中,我们不光可以踏遍所有地图收集自己想要的宝可梦,还可以和一些动漫中的很多NP……早资道抖音不支持医疗健康认证账号交由MCN代运营飞书将上线智抖音:不支持医疗健康认证账号交由MCN代运营近日,抖音健康官方微信公众号发布公告强调,不支持医疗健康认证账号交由MCN代运营。公告称,抖音始终致力于打造风清气正的社区氛围……小白看球星(45)米利唐全名:埃德尔加布里埃尔米利唐(derMILITO)别名绰号:新佩佩(米利唐与皇马传奇中卫佩佩同样出道于葡超波尔图队,其巴西国籍的身份以及风格特点也让他收获了新佩佩的称号)……
友情链接:易事利快生活快传网聚热点七猫云快好知快百科中准网快好找文好找中准网快软网