首页 开发编程 正文

php怎么进行断点 如何提高Debug能力

具有智能代码助手、代码自动提示、重构、JavaEE支持、各类版本工具(git、svn等)、JUnit、CVS整合、代码分析、创新的GUI设计等方面的功能。Logonconsole的功能可以帮你检查多线程执行的情况2、你初学编程的时候是怎么提高自己的Debug能力的?一编程的学习方法1.1明确目标及范围互联网这个行业不同于其他行业,我首...

php怎么进行断点,ij是什么意思网络用语?

ij是IntelliJ IDEA。

IntelliJ IDEA,是java编程语言开发的集成环境。IntelliJ在业界被公认为最好的java开发工具,具有智能代码助手、代码自动提示、重构、JavaEE支持、各类版本工具(git、svn等)、JUnit、CVS整合、代码分析、创新的GUI设计等方面的功能。

它的旗舰版本还支持HTML,CSS,PHP,MySQL,Python等。免费版只支持Java,Kotlin等少数语言。

优点:

最突出的功能是调试(Debug),可以对Java代码,JavaScript,JQuery,Ajax等技术进行调试。比如查看Map类型的对象,如果实现类采用的是哈希映射,则会自动过滤空的Entry实例。

其次,需要动态Evaluate一个表达式的值,比如我得到了一个类的实例,但是并不知晓它的API,可以通过Code Completion点出它所支持的方法。

最后,在多线程调试的情况下,Log on console的功能可以帮你检查多线程执行的情况

你初学编程的时候是怎么提高自己的Debug能力的?

前言

互联网行业是一个充满挑战且内卷比较严重的行业,作为程序员如何让自己一直保持不错的水准或者避免让自己掉队,那就需要通过不断的学习提升自己。本文就和大家交流下我们如何提高编程能力及技巧水平。

一 编程的学习方法

1.1明确目标及范围

互联网这个行业不同于其他行业,知识体系实在是过于庞大,知识更新非常快。作为一个普通人无法全部学完,所以我们在提升技术的时候,首先需要明确一个目标,然后制定好完整的计划,同时找到好的学习方法,这样才能更快的提升自己。

举例:我是做Android开发的,我不会今天去看看C++,明天去学学Python。我首先会选择提升Android开发能力,优先学习Android开发相关内容,本领域学习掌握到一定深度,再去拓宽其他知识面。学习自己领域内知识我会优先汇总整理本专业范围内的知识体系图谱,类似这种:

这样可以清楚明确自己需要学习知识的范围,明确范围后,然后制定一个完整可行的计划,按计划逐步学习,每天学习消化一点,按这种思路学习完你的知识才成体系。

1.2学习方法

内容明确了,计划制定好了,接下来就是如何去学习了,学习的方法有很多种,现在获取知识的途径太多了,但是我们的时间是有限的,如果能规划利用好自己的时间,选对适合自己的学习方法,是提高学习效率的前提条件。这里我简单列举几种方式,对比一下几种方式的优缺点,详细内容我就不一一阐述了。

1.2.1看书

优点:书最大的特点我觉得是知识全面 、严谨

缺点:有些枯燥,一本书可能很多内容都对自己帮助不大,可能对我有用的就一两个章节

1.2.2看视频

优点:视频容易入门,可以看到操作及演示

缺点:不成体系,一般都是讲重点,忽略细节,很多系列的视频后面的都是收费的

1.2.3逛技术类网站

优点:获取新技术、可以看到同行们都学哪些,不至于掉队

缺点:内容庞杂,水平参差不齐,没有鉴别能力容易被误导

1.2.4报培训班

优点:完整、成体系

缺点:时间要求高、学习成本高

1.2.5有领导或者同事在工作中指导你

优点:我认为这样学习的方法是最快的

缺点:碰到这样的人需要运气,要珍惜

二 编程技巧的提高:做到这“5多”

为什么上面要啰啰嗦嗦的说一大堆学习方法,因为我认为所谓的技巧提高也是有前置条件的,就是你得有一个好的基础,不然谈不上提高,想要提高,基础必须得很牢固,所以你得先打好基础。

举个例子:我2012年刚开始学Java编程时候,那会开发都是用Eclipse手写Bean实体类,后来随着开发工具改为IDEA,再后来转移动开发用Android Studio知道有插件可以直接生成Bean实体类,不用手动写了,直接把后台的JSON字符串拿过来拷贝到工具中一键生成,生成好就可以直接用了。但是如果你没有手写过,直接就用工具生成,那么生成出来的代码有多少方法、每个方法的作用,可能你都不清楚,所以这就是基础的重要性。

那么我们打好基础后,如何能快速提高我们的水平呢?

2.1多实践

编程行业可能对于你的理论基础要求不那么高,但是对于你的实践动手能力要求是非常非常高的。直白点说:你说的再多都没用,你得能做出东西来。我佩服的不是满嘴长篇大论的人,我佩服的是能解决各种问题的大神。那种大神没有解决不了的bug,没有实现不了的功能,做出来的各种功能、各种项目不能说没有bug,但是出现的bug非常少,系统功能非常稳定。

那如何才能达到大神的水平呢?其实大神也是普通人,他之所以能成为大神也是一个坑一个坑踩出来的,他碰到并解决的bug比一般人都要多,所以他在做任何功能的时候都会考虑到各种工况、各种数据出口入口、各种风险。经验都是来源于实践,实践出真理!对于编程这个行业,实践尤其重要!离开了实践,学习就是无源之水无本之木。

举个例子:我当时刚入行学java编程,我的培训老师讲到空指针知识点的时候就说:如果将来你们从事编程行业,这个问题会一直陪伴你们!其实当时我听到这句话,内心想的是:这么简单的东西,还会出问题?

后来我想不用我多说,只要真正写过代码的人,99%的人都应该碰到过这个问题。所以别人教你各种方法,和你说再多都不如你真正写一次让你记忆深刻。

编程技巧的提高我理解没有什么捷径可走,一定是做的项目多了,踩的坑多了积累出的经验。

2.2多思考

除了实践,还有一点就是在做任何功能、解决任何问题的时候都要多一些思考。如果脱离思考,即便你做的项目再多,也只是机械的重复,这次我碰到一个空指针bug,解决后是不是要思考下下次如何避免?下次再写类似的代码时,是不是要多加一些判断?是不是要考虑和后台商量数据传输规则,过滤掉空项?即便后台处理了,是不是要考虑后台传值有异常时,我们前端如何处理展示?有人说后台犯错,还需要我买单?小伙子,格局要提高下。大家是一个团队,是一个整体,先不管谁的问题,项目出了问题,大家都有责任,要把自己负责的功能做好、提前规避掉各种风险才是一个成熟的程序员。

2.3多沟通

提升自己还有一个很好的途径是和行业内的人多沟通,可以是你的同学、你的同事、你的领导都可以。因为在聊天的时候可能会不经意就知道了一些新的知识点,学到了新的技能,我以前是做Android开发的,不瞒大家说,我当时都做到部门经理了,还没用过ADB无线调试,以前习惯了插根线去真机上调试,有次和部门新来的一个开发聊天时,从他那里学到的无线调试方法。方便了很多,有的时候线坏了也不担心了,类似的这种场景还有很多。所以平时多和周围的人沟通一下、聊聊技术是一个很不错的方式。

2.4多学习

互联网行业技术的发展日新月异,新技术层出不穷,具有良好的学习能力,能及时获取新知识、随时补充和丰富自己,已成为程序员职业发展的核心竞争力。一个能够不断进步的人才有更辽阔的未来和更可观的前景,尤其是对于IT行业这种每时每刻都充斥着改变的领域,学习能力更是必不可少的存在。所以我们必须不停的去学习才能保证我们不掉队,本身就是一个活到老学到老的行业,可以针对性的去看行业内一些大神的博客和公众号,我有很多东西都是从一个大神的博客学到的,其他的学习方式在第一部分我也都提到了,大家根据自己实际情况做选择即可。

2.5多总结

每天的工作和学习其实是很枯燥的,需要坚持,最好的办法就是自己回忆每天学到的内容,然后把他写下来。写博客是一个很好的方式,可以帮你加深记忆,同时提高对这个知识点的理解。很多人不敢开始,怕自己写的内容太简单被别人笑话,其实大可不必,只要是自己思考过的内容都可以记录下来,我们需要做的是给自己做积累,不用在意其他人眼光。

我在刚开始创作的时候就是记录基础的知识点,后来慢慢写一些解决具体问题的文章,再到后面就写归纳总结类的文章。现在转管理慢慢会写一些行业类和管理类的文章,总之就是一直在写。这个过程坚持下来会帮助你加深对知识的理解,另外后面碰到同类问题还是看下之前是如何解决的,我经常碰到同样的问题,但是还是忘记自己当时是如何解决的,后来就去自己的博客看一下当时如何解决的,还是那句老话:好记性不如烂笔头,不断复盘总结是非常重要的。

三 编程的习惯和技巧

开发做了这么多年,积累了一些经验,这里和大家分享下:

1.做项目,先问清楚需求,然后自己用思维导图工具,把各种可能性都罗列出来,都想清楚后再去建项目,写代码。有一句非常经典的话:Think more, Code less!

2.碰到没接触过的功能直接去github上面搜、搜的时候找star比较多的下载下来跑一下试试,学会用关键字检索,关键字一定要精简,这样你搜出来的内容匹配度才高,比如你搜一个开源视频功能组件,可以这样写:视频播放器,然后选择Most stars ,一般前几个都是主流的。

3.写代码一定要保持良好编码习惯,最好按照一套固定的编码规范来写,编码规范很多大厂都有发过。比如 函数、变量需要定义的有意义,让别人要能一眼就看懂,这部分建议多看源码提高,定义的变量可能还需要避开一些三方库函数或者变量名。

4.写代码的时候对于一些关键的函数和逻辑要写注释,加上必要说明,解释基本逻辑。但是千万别到处都是注释,如果是那样,一定是你的代码写的比较差,不易理解。

5.写代码不是越复杂越好,反而是越简单越好,函数一定要定义的简单,如果太复杂就定义多个函数。比如:for循环一定要减少层级,层级太多一定要想办法优化处理。

6.定义变量一定要注意初始化,定义数组一定要防止下标越界。

7.一些好的函数或者功能一定要单独记录保存,我建议整理一个自己的工具库,把好用的功能或者工具类都保存下来。

8.养成一个随时ctrl+s 保存的习惯,这个不必多说,吃过一次亏就记住了。

9.尽量复用对象、多定义使用局部变量、避免随意使用静态变量

10.养成加TODO的习惯,比如一些自己不太理解的点、一些需要后续优化的点、一些没有处理好的逻辑等等加上TODO后续查找起来非常方便。

11.删除不必要的代码,保持整体的整洁,留着以备不时之需可以通过git版本控制等来解决。

12.重构有利于提高代码维护的效率,对于当时因为时间等原因写出来的一些比较乱的代码需要花时间去重构,一定是对自己有帮助。

13.把自己常用的技术网站、工具网站、资源网站都做好分类收藏为页签,可以方便查找,提高效率。

上面是个人的一些经验分享,如有错误希望大家批评指出,后续想到其他内容也会随时补充,写代码需要考虑正确性、可读性、鲁棒性、可测试性、可以扩展性、可以移植性、性能等等一系列问题,所以需要抱着一个严谨的态度对待,做这行有一个好的心态是非常重要的。

四 个人经历

这个章节说些题外话,和大家聊一下我的个人经历,希望大家能从我的一些个人经历当中受到一点点的启发。

我是大专毕业,不是本科毕业。当时在学校期间对自己的未来感到很迷茫,担心毕业后找不到工作,在上大学期间培训了Java开发,毕业后找的工作岗位是Java开发工程师,在第一家公司因公司业务扩展和公司的一位同事学习的Android开发,后来为了涨工资陆续跳过几次槽,在上一家公司做了5年时间。工作从Android开发工程师->Android开发组组长(6人)->移动端开发负责人(11人)->项目经理->部门经理(30人左右),目前在国内某上市公司担任项目经理岗位。

工作久了慢慢理解技术实现只是整个产品生命周期中的一个环节,而且是一个很容易被替代的环节。为什么这么说,就是我后来转管理岗后经历的一些事,包括和公司的领导沟通,他们传达给我的就是这个理念。技术实现在他们一些人眼里说的难听些就是工具环节,这个人做不了,就换一个人!公司没有人能做,就招一个,招不到人就找外包公司做,总之不能影响我产品发布上线,不能影响给用户交付的日期。所以作为技术人来考虑,我们就需要一直提升自己,让自己不容易被替代,华为云3月内容共创活动我也参与了,当时的任务标题是《如何才能修炼成一名不可替代的程序员? 》,文中也说明了如何让自己保持竞争力,变得不容易替代,感兴趣的同学可以去看看。对于如何提高自己,让自己保持竞争力,我和大家分享下我个人的一些习惯:

1.我刚入行的时候,java的servlet调用都不会,我碰到不会的问题就问当时带我的那个组长,他当时每天都对我很不耐烦,但是我从来没有为了自己的面子放弃第二天去问他,因为我觉得比起他看不起我,我一直不会写才更让我尴尬。

2.我写代码大概有8年时间,我自己负责的功能测试提出来bug,我都会自己各种查资料想办法去解决,熬夜的次数真的数不清了...

3.我每次下班前,都会把每天的工作在大脑里面做个回顾,然后整理一下一天的工作,在文档里面做个记录,然后提前规划一下第二天要处理哪些工作。

4.我每天会在下班路上经常去逛一些技术类的网站,然后看看有没有什么新的技术类的东西。

5.我从2015年开始写博客以来,保持每月更新,从来没有间断过,这个习惯对我帮助挺大的,因为很多内容写出来真的会加深理解。

6.我博客早期写的一些功能实现类的文章,我都会单独整理一个DEMO,然后上传到平台,我觉得这个习惯可以帮我加深对这个功能的理解。

7.接到新需求的时候,我都会先仔细考虑一下各种工况、各种风险、然后想好技术实现方案,包括后续可能的扩展,是否可以做成组件化在后续同类项目中使用等各种情况,我从来不着急写代码,都是先仔细理清楚思路,这里我推荐大家用下思维导图。

8.后来写代码基本都是复制粘贴,我自己封装了一个common项目,将历史做过的很多项目的同类项都整理到common里面,新接一个项目直接以此为框架,在此框架上新增业务需求类的代码,真正需要手敲的非常少。

9.实话讲,我很少看书看视频学习,但是我会经常看一些大平台的开源项目,感觉一下子就能学到很多东西,里面很多我觉得不错的部分都会照搬到自己的项目中。

10.我平时有收藏的习惯,如好的技术实现类的文章、好用的技术网站、好用的工具类网站、好的开源项目...

11.碰到一些技术难点或者需求不好实现的,一般不会直接和产品battle,调整心态,心态真的很重要,多想方案,少想困难,一般都是实在解决不了才会去砍他...

总结

我们当初是因为热爱才进入这个行业,最后希望大家在编程的道路上保持初心,越来越好!

本文分享自华为云社区《【云驻共创】《编程学习过程中有哪些快速提高编程技巧的方法?》》,作者:再见孙悟空_。

编程零基础应当如何开始学习python?

零基础如何开始学习python?作为一门起源比较早的编程语言,python语法简单、易学易懂,设计之初就是面向大众,降低编程入门门槛,零基础也可以轻松掌握,下面我简单介绍一下python的学习过程,感兴趣的朋友可以尝试一下:

第一阶段:搭建python开发环境

安装python

也就是安装python解释器,这个直接到官网下载即可,windows环境下就是一个exe安装包,直接双击安装,目前有2版本和3版本之分,建议选择3版本,2版本现在官方已经停止更新和维护,在后期开发中也会遇到好多包不支持,当然,你也可以选择其他集成环境,像anaconda等,更方便,会自带有许多第三方包,但会占用更多空间:

常用开发工具

python安装完成后,官方会带一个简单的开发软件—IDLE,但功能太弱,开发和使用起来会非常不方便,这里介绍2个非常不错的python开发软件,分别是visual studio code和pycharm,对于初学者使用来说非常合适:

01、免费开源visual studio code

听名字就知道哪个公司的产品了,没错就是微软,界面设计风格和visual studio非常相似,但没有visual studio那么臃肿复杂,免费开源、轻便灵活、友好强大,常见的智能补全、语法提示、代码高亮、git等功能这个软件都能很好支持,对于python开发来说,只需简单安装一个插件便可直接运行程序,不管是代码的编写还是调试来说都非常方便,初学来说也非常容易掌握:

02、专业强大pycharm

这是一个比较专业的python开发软件,和idea、clion、webstorm、phpstorm等同属姊妹,jetbrains公司的产品,相比较轻量级的vs code,pycharm更强大也更智能,支持单元测试、代码分析、代码重构等高级功能,因此开发效率更高,也更适合大型项目,尤其团队协作来说,非常方便,必不可少:

第二阶段:python基础入门

python环境搭建完成后,就是python基础入门,这里可以找一本专业书籍,或者找一个比较全的视频教程,一边学习一边练习,最重要的就是多动手,多调试代码,眼过千遍不如手过一遍,常见的变量、函数、类、模块、文件操作、异常处理等都需要熟悉掌握,可以结合着一些小项目做专项训练,提高自己的编码能力,积累开发经验:

第三阶段:python深入学习

python基础熟悉后,就是深入学习的过程,作为一门胶水型语言,python应用场景非常多,机器学习、人工智能、数据分析、web开发、网络爬虫、自动化测试、运维等都有涉及,每个方面都投入精力显然是不可能的,找一两个自己感兴趣、薪资又不错的方向坚持下去,多做项目,多逛逛开源社区,不断拓宽自己的知识面,提高综合实力:

目前,就分享这3个方面吧,python入门来说,其实非常容易,零基础也可以轻松掌握,最主要的就是多看多练,多编写代码,但想学精学通,需要一个漫长的积累过程,每门编程语言都一样,网上也有相关教程和资料,介绍的非常详细,感兴趣的话,可以搜一下,希望以上分享的内容能对你有所帮助吧,也欢迎大家评论、留言进行补充。

编程自学难不难?

自学编程难不难?肯定难。原因是基础薄弱,缺少完整的软件知识体系,但是根据我多年的招聘结果来看,至少有接近一半数量的应聘者都是培训班+自学成才的,真正科班的实际上也有一部分人是自学编程的。

那就有一个问题,如何通过自学学会编程?个人建议如下:

1、至少有一点计算机的基础,如果没有,可能需要找个培训班先打个基础。如果编辑软件不会用,普通软件不会装,赤手空拳地学软件开发,虽然勇气可嘉,但付出的代价可能会很大。

2、如果有c语言的基础或者是一点脚本的编程基础,原则上就可以去学习java、python等语言。如果没有语言知识,建议先了解脚本语言,比如html、php、jsp等,实际上对于没有语言基础的网友来说,主要是缺乏一些基础概念,比如说,变量、数据类型、程序流程等,可能需要自己耐心地花一点时间了解一下软件语言的基本结构以及软件开发的基本流程。

3、有了一点基础的,还需要注意一些方法,比如,即使不上培训班,也应该有个可以请教的人,虽然网上也能搜索,但是效果不一样,有个老师回答问题,这是有针对性的。其次,一定要有一本教材,电子版、纸质的无所谓,但还是建议纸质的,电子的会让人容易疲劳,而且容易分散注意力。教材不要太高端、太综合,要有针对性。再次,自学的网友往往很有计划性,每天看10页,多一页不看,另外一个习惯就是每一页必看,这可能都不是好习惯,建议先粗看一遍,自己了解的略去,集中时间去细看关键章节。有人说了,我的问题就在于我不知道应该细看哪些章节,关于这点,应该要请教身边的老师或网上的朋友。

4、自学软件因为沒有经验,眉毛胡子一把抓属于正常现象,需要尽快走出这种困境,办法就是实战,只有实战,才能获得场景感,才能更深刻地理解软件的架构,才能验证过去对知识的理解是否正确。但是并不是每个人都能有实战的机会,对于没有实战机会的可以自己创造机会,比如用C#做个个人记事本,参考网上代码改进一下,也可以将网上的小姐姐相册爬虫代码研究并修改一下,甚至放到github上获取一点成就感,不要小看这些动作,你的每一次表现都会给你带来进一步探索的动力。

总之,自学软件不仅不是不可能的,而且鼓励自学。但是每一个阶段目标、方法都不一样,需要把握好。

打开网页时出现504错误怎么解决?

PHP 是这样了,worker 忙不过来,Nginx 还能撑住,所以返回 502 bad gayway ,意思是机油你坏坏,不对意思是生意太火了伙计忙不过来。

你先看一下PHP到底在忙些啥,如果是 CPU 密集型计算(应该不会),看看CPU和内存满没满,没满就多开一些worker,满了就多加一些机子。

我猜测可能是数据库响应缓慢,然后人多了数据库是否能撑住也是一个考虑,多用一些缓存吧。

防流量攻击真没啥好办法,找牛逼一些的机房/CDN 吧。

本文转载自互联网,如有侵权,联系删除