看到一个JAVA程序员提出这样的问题,我就随口问了一下。我现在在一家互联网公司上班,刚刚写代码时间不长,领导有的时候会说我的代码质量不好,请问我该怎么提升自己的技能?每天的工作就是系统的功能优化,写写功能类的代码。
回复内容:
泻药。。。
这个嘛。。拿我个人来说。。(我是比较笨的)
首先就是
撸代码,PHP是个易上手的语言,但是并不代表就简单。
撸了比较多的代码发现很多代码都是可以重复引用的。于是我学会了
《封装》----------------------------
发现自己封装的代码还是有开发效率问题,于是我上网搜索解决方案,发现PHP有不少的
框架可以使用,可以节约不少的时间。
----------------------------
项目多了之后我发现很多稍微大的项目很难控制代码质量,比如东一块西一块的写代码,需要什么功能就在直接撸代码在哪块,我发现这样很不对劲,我试图上网查看解决方法于是我学会了
《设计模式》。
------------------------------
我开始发现我。。我的服务器死机了,我发现我写的SQL有性能瓶颈,在一台服务器上跑不动了,于是我学会了,
优化SQL。
-------------------------------
我又发现单单优化SQL还是木有用。。于是我又学会了,
MYSQL读写分离。。
------------------------------
现在问题又来了,单单数据库优化是不够的,于是我又学会了
负载均衡------------------------------------然后就是缓存,中间件,NOSQL,PHP扩展开发。总之:不积跬步无以至千里.
庖丁解牛,熟能生巧,他山之石可以攻玉
关于代码质量问题,个人认为好的代码应该符合以下条件,依重要程度排序:
1、可用性。没什么好说的,代码必须是以实现需求为前提,并且是可正确运行的,否则工整优美如诗也不过是屎。
2、可靠性。代码这个东西啊,不能加很多特技,看到很快很牛,结果用户一用一定骂娘,根本没有这种代码,证明你写的代码都是假的。好的代码在逻辑上应该能考虑到业务上的各种场景,以及在实际线上运营的压力下是稳定可用的。说起来很简单,足够复杂的模块,习惯先用文档进行初步构建和检验,再者测试,测试,测试~
3、可读性。实现功能、通过测试上线运行,只是基础……
一、看下命名,用词是否简明,含义是否清晰,不要用拼音,不要用拼音,不要用拼音;风格是否统一(有没有驼峰和下划线同时存在的情况)或是否符合团队/框架的书写规范。
二、最好找别人的代码,或者自己已经放下一段时间的,读一下大段的代码,读一下大段的代码,读一下大段的代码……读一下n层嵌套的代码,读一下n层嵌套的代码,读一下n层嵌套的代码……读到吐了大概就知道怎么改了。
三、良好的书写格式,注意空行,缩进的使用,总之要自己看着舒服。
四、注释,注释,注释。
如果不想将来接手的程序员经常问候你娘亲,现在就开始改吧。
4、结构化(复用性,可维护性等……)。“结构化的程序设计”这个在读书时,上C语言的时候提出的东西,看似并没有什么卵用,其实是相当于独孤九剑中的总决篇。现在的PHP能实现抽象程度较高的面向对象方法,也比较完善的面向对象实现方式;有前人帮忙总结了一套GoF设计模式。已经很幸福了,熟练掌握这些概念和各种技巧,然后忘掉,回归结构化设计的思想,所有技法可顺手拈来,无招胜有招。
5、高效。只要是对以上条件有助益,效率是可以在一定程度上做出牺牲的;但另外能做好上面的四条的代码效率不会低。
关于怎么提升,以下是本人的切身经验:
1、态度。容易出现在刚工作,接手维护现有代码的程序员身上。不是自己写的代码不主动关注,不但没有做好,也失去了提升的机会。更有甚者直接复制粘贴,连改动都不带一丁点。所以要有一个觉悟:所有交给你经过手的代码,不管原创是谁,就是你的代码,你需要对它们负责。
2、多读。找一些项目读,好的不好的都可以,分析它们写得好不好,好在哪,不好在哪。读代码是很枯燥的,要耐得住。
3、多写。没什么好说的
4、各种基础姿势。不止于PHP,不止于业务,哪里不会点哪里,自行体会。
不请自来
干了三年多PHP的程序员来回答一下
题主记住,任何语言程序员是靠代码量和BUG数堆起来的。
本人的成长方式就是大量刷别人的来源程序,研究为什么要这么写。
遇到的问题多了,以后再遇到相同性质的就可以直接解决了。甚至你可以知道为什么会出现这种问题。
总结起来就是
多看,多想,多实现。
最最基本的是先把手册看几遍,边看边敲。这是不可以跳过的一个步骤。
精通HTML、CSS和JS等技术,不管以后是否会用,必须要精通。
吃透服务器和数据库有关的部署和设置,不是完整的做过一次就行了。
然后尽量理解设计模式,MVC等基础知识,不仅仅是了解那么简单,一定要实际使用起来。
然后找一些O'REILLY的PHP有关的书啃一下,尽量找一些涉及的比较全面的,比较广泛的。推荐《构建可扩展的Web站点》
最后,多练多交流。
提个建议,很多初学者还没会基础只是就开始讨论性能、负载。不着急,先学基础,学会基础再去看那些假大空的东西。
新建php码农集合群,地址位于中关村软件园,欢迎大家前来,共同研究php以及共同解决BUG,106243666