导航:首页 > 程序命令 > 程序员的斗图代码

程序员的斗图代码

发布时间:2023-07-15 22:25:15

A. 什么是程序员什么是代码

程序员所写的代码,是为某一特定程序或某一个应用程序所制定的编码和内部测试的组织实施,使此应用或程序应能够在程序员编写的代码中,实现各种功能。程序员(英文Programmer)是从事程序开发、程序维护的专业人员。一般将程序员分为程序设计人员和程序编码人员,但两者的界限并不非常清楚,特别是在中国。软件从业人员分为初级程序员、中级程序员、高级程序员(现为软件设计师)、系统分析员,系统架构师,测试工程师六大类。代码又臭又长
我见过最长的方法是5000多行,那段代码没人敢动,只敢往下加 if else,每次需要改这段代码的开发都战战兢兢,生怕出现什么莫名其妙的bug。java 可是一门面向对象的语言,一个方法里面有5000多行可以说是很可恶的事情了。我想一开始代码长度可能没这么夸张,是什么导致这种结果的?一个是当初写这段代码的人本身写的是直来直去的方法,一堆if else ;后面迭代的开发,面对这么长的代码瞬间失去了从头读到尾的耐心,直接继续在后面加 if else 迭代,最后这个方法就变成了一个缝合怪一样的玩意。
好的 sql 可以很大程度上简化代码的复杂程度,但是太过复杂sql 本身就会给后来的开发人员造成阅读困难,结果又是变成一条无人敢动的祖传代码,我想这应该是不少公司极度抵制存储过程的原因之一。当然不少银行应用开发还是大量使用存储过程,存储过程有用武之地的,但是一个又臭又长的存储过程就等着变成祖传代码吧。当年我见到一个60多个join的sql,看到第一眼就惊为天人从此难以忘怀,当然那段sql也成了没人敢去动的代码了。
代码逻辑不明
代码逻辑不明所以是我们开发很容易去犯的毛病,是一个不致命却烦人的毛病。在代码上的体现是,逻辑判断写的比较反人类各种双重否定是肯定,不把你绕晕不罢休。或者是写起代码来东一榔头西一棒槌,让人不知道你想干嘛。导致这个的原因有可能是开发人员在需求理解上出现偏差,做到后面发现不对劲,再回去改又不大可能了,只能硬着头皮往下写,结果就是代码弯弯绕绕;还有很重要的锅是在产品经理,任意变更需求,想一出是一出,开发人员无奈只能跟着想一出写一出。还用可能是开发人员方法或者类命名太艺术了,什么四川方言拼音这种没有十年脑血栓想不出的命名咱就不说了。就说那种国产凌凌漆式的无厘头命名——这看上去是个刮胡刀实际上是个吹风机,就这种不知道让人说什么好。
规划代码的核心思想
吐槽了一堆代码规范问题,接下来我们说说如何去规范我们的代码以及如何做到就算开发人员更换了,或者项目转手给他人了,仍然可以让后面的开发可以无碍的去阅读代码修改代码。当然各个公司/团队都有自己的一套代码规范,比如项目的结构、代码命名风格、代码格式等等。不同团队有不同的风格,但核心思想是大同小异的。接下来我就我个人的开发经验来分享一下一些代码规范的思想。

B. 如何提升程序员的代码编写能力

一、先列三个常见的开发场景:

1、拿到一个模块详细设计文档,大部分程序员的通常做法就是开始搭建界面代码,然后从第一个按钮点击事件或页面Load事件开始写第一行业务代码。写的差不多了,就运行一下,发现哪里不是自己想的那样,就改改,直到改到是自己预想的那样。

2、做完了一个功能模块或几块相关联的功能模块,输入111asd,发现新建正常、保存正常,就提交给测试人员。测试员用测试用数据、测试场景用例来测试,发现有问题,就登记bug。对于严重的影响下一步测试的BUG,测试员就用内部IM通知这个开发人员。对于不影响继续往下测试的BUG,测试员就登记下来,等程序员有空时处理。

3、程序员一般工作不希望大家打扰,所以开发起来就是开发。等手头开发告一段落,就看看BUG库。发现有与自己有关的BUG,就从第一个BUG开始看起。就开始通过IM和测试员掰扯起来(这不是个BUG啊、业务逻辑不是你想的那样啊、我这里不能重现啊、你给的信息描述不清晰啊),于是IM几来几往,甚至跑过去当面交流一番,甚至会拉扯上产品经理一起讨论,更甚者需要项目经理或产品经理发起一个会议来集体讨论一下

这是不是很熟悉呢?这就是大部分程序员开发的三个步骤:写代码、自测、修复BUG。

二、说好的代码设计、代码测试呢?

代码设计?那不是都有开发平台么,已经固化了啊。那不是维护旧功能做完善修改呢么,又不是写新代码,只能在现有代码基础上修改啊,你又不能大幅重构。

代码测试?你丫需求讨论期、产品设计期、设计评审期那么长,都把研发项目时间占光了,就留下2个星期让我们写代码,我们哪里有时间搞那么深的测试。还想让我们搞结对编程?还想让我们搞测试驱动开发?

而且你看测试,什么功能测试、集成测试、性能测试、安全测试、安装部署测试、升级测试、迁移测试、UAT测试,一大堆测试,测试也需要很多时间。

一个项目,需求讨论、产品范围规划与评审、产品设计与设计评审占了一个半月,开发+自测就一个月,测试占了一个半月,这就4个月了啊。

三、为啥程序员写代码总是写写测测?

刚才大家也都看到了,大部分程序员都是从界面代码开始写起,而且写一写,就运行一下看看。为什么会是这种开发方式?

那是因为大部分程序员缺乏在脑子中的整体建模能力。只能做出来一点,真实的感觉一下,然后再往下。

有些是产品经理的上游就有问题,没给出业务流程图(因为产品经理也没做过业务),也没画清楚产品功能操作流程图。

为啥没给出业务流程图?因为产品经理不熟悉业务,另外,产品经理也没有流程建模能力啊。为啥没画清楚产品功能操作流程图啊?因为不会清晰表达流程啊。

很多产品经理、程序员,都缺乏分类、分层、相关、先后能力,更别说总结、洞察能力。

这是基本训练,是一个做事头脑清醒的人必备的技能,这不是一个程序员或产品经理或测试员的特定技能要求。

我经常看书就梳理书的脉络,每看一本就写一篇总结。我过去闲扯淡还梳理过水浒传、红楼梦的人物关系图呢,其实就在事事上训练自己的关联性、层次性、洞察性。

我经常面试一个人时,我会问这样的问题:“你把我刚才说的话复述一遍,另外你再回答一下我为什么会这样?”,其实,我就在看一个人的细心记忆、完整梳理、重现能力,我也在看一个人的梳理、总结、洞察能力。

我个人写代码就喜欢先理解业务流,然后理解数据表关系,然后理解产品功能操作流,大致对功能为何这样设计、功能这样操作会取什么表、插入或更新哪些表,哪些表的状态字段是关键。

然后我写代码的时候,就根据我所理解的业务流、功能操作流、数据输入输出流,定义函数,定义函数的输入与输出。

然后,我会给函数的输入值,赋上一些固定值,跑下来看看能否跑通这几个关联函数,看看还需要怎样的新增函数,或者看看函数的输入输出参数是否满足跑通。

剩下的事,就是我填肉写详细逻辑代码了。

当然,大部分人没我这样的逻辑建模能力。怎么阅读理解也想象不出来,也没法定义函数。毕竟有逻辑建模能力的程序员都很少,100个人里有10个,已经是求爷爷告奶奶好幸运了。

那怎么办呢?

我建议是分离分工配合,这就是现实中没办法的办法。让有逻辑建模能力的人来设计函数框架、来设计工具来设计代码模板,然后让没有逻辑建模能力的人来填肉写详细逻辑代码。

我们可以先从最紧要的模块开始这么做。不紧要的模块,还让它放任自流,让熟练手程序员继续涂抹。

我曾经还让有头脑的程序员做榜样,给大家分享他是怎么规划函数的,怎么做维护性代码的代码结构改善的。但是发现效果并不佳,其他人并没有因此能做代码设计。可能逻辑建模能力是个人的基本素质,是从小到大训练成型的,不是你一个大学已经几年的人能够短时间内可以训练的。

所以啊,还是让能走的人先走,让从最紧要的模块开始这么做。

不必担心这样做后,因为过去一件事被分工(一个做代码框架一个填肉)成两个人做了会降低工作效率。我们很多的工作效率低就是因为半瓶子醋搞出来的,来回反复修改。

真是应了刘德华在电影里说的那句话:说你又不听,听又听不懂,听懂了又不做,做又做不好,做不好还不服气。

四、为什么大部分程序员不做代码测试或白盒测试或单元测试呢?

还是因为没有代码设计。因为没有函数啊。所以,一个按钮功能有多复杂,代码就有多长。我见过2000行的函数,我也见过1000多行的存储过程和视图SQL。怎么做白盒测试啊,这些代码都粘在一起呢,要测,就得从头到尾都得测。

所以啊,先学会设计函数,先写好函数,这就求爷爷告奶奶了。很多开发了5年的熟练手程序员,可能都未必会写函数。

函数的输入输出值就很有讲究。很多人都写死了,随着版本迭代,发现过去定义的函数参数不够用了,于是就新增了一个参数。然后,相关性异常就爆发了,其他关联的地方忘改了,到底哪些有关联,怎么查啊,本系统没有,没准其他系统就调用你了,你根本不知道哪个神经人曾经COPY过你的代码修吧修吧就改成了他的功能呢,而且里面的很多代码他看不懂也不敢删,只要他实现的功能正常了他也不管了。于是,你改了你这个函数,他的系统就莫名出错了。

所以,我一般会定义几个对象来做参数。另外,我也很注重函数的日志、函数的异常保护、异常抛出、异常返回。另外,我也很注重参数输入值的合法性校验。

所以啊,应该开发Leader们先制定函数编写规范最佳实践,输入输出参数怎么定义比较好,函数的返回值如何定义比较好,函数的日志记录应该怎么写比较好,函数的异常保护、异常抛出、异常返回如何写比较好。先教会一般程序员,先从会写函数开始啊。

当然,你光有一份规范,程序员们还是不理解、不实际应用啊。所以,还得Leader们做好典型的代码模板,里面是符合函数规范的代码框架,只有这样,一般程序员们才会照猫画虎适应了函数设计的编程习惯。

所以啊,我专门重新定义了leader的明确职责,其中第一个重要职责就是:负责工具/框架/模板/规范的制定,并且负责推广且普及应用落地。

你不明确定义Leader的这个重要职责,你不对这个职责做明确的KPI考核,谁尿你啊。你以为好的工具/框架/模板/规范是靠人们的热情、自发产生的么?我们还没有那么自觉高尚啊。

五、为什么大部分程序员不写注释啊?

我经常说一句话,千万别多写注释。为啥?

因为我们经常遇到的问题不是没有注释,而是更糟的是,注释和事实代码逻辑是不相符的。这就出现常见问题了:残存下来的设计文档是一个逻辑、注释是一个逻辑说明、真实代码逻辑又是一个,钟表多了,你也不知道正确时间了。

所以啊,产品文档、注释、真实代码,三者总是很难一致同步。我为了几百人研发团队能做到这个同步花了大量心血和办法,但我最终也没解决了这个问题,还把Leader们、总监们、我都搞的精疲力尽。

索性回归到一切一切的本源,代码,就是程序员的唯一产出,是最有效的产出。那么,让代码写的不用注释也能看懂,咱得奔着这个目的走啊。

为啥看不懂,不就是意大利面条式代码么,又长又互相交杂。

OK,我就规定了,每个函数不能超过50行。用这一个简单规定和静态代码检查插件,来逼迫大家尝试着写函数。有的函数属于流程函数,是串起其他函数的,有的函数就是详细实现函数,实现一个且唯一一个明确作用的。

有了流程函数和功能函数,而且每个函数不超过50行,这就比过去容易看懂了。

六、为什么大部分程序员不抽象公共函数啊?

我经常说一句话:千万别抽象公共函数啊。为啥?

因为大部分程序员缺乏抽象洞察能力。特别是有些积极热情有余、爱学习爱看书、半瓶子醋晃悠的二杆子,看了几本UML、重构、设计模式、整洁代码之道,就跃跃欲试了,还真敢给你抽象公共函数了。

一开始,他觉得80%相似,20%不相似,于是在公共函数里面简单写几个if..else做个区隔就可以。没想到,越随着版本迭代,这些功能渐渐越变越不一样了,但是这个代码已经几经人手了,而且这是一个公共函数,谁也不知道牵扯多少,所以谁也不敢大改,发现问题了就加一个if..else判断。

没想到啊没想到,这个本来当初公共的函数,现在变成了系统最大的毒瘤,最复杂的地方,谁也不敢动,除非实在万不得已,手起刀落。

所以,我平时告诫程序员,纯技术的、纯通用的,你们可以尝试搞搞抽象公共函数,对于业务的,你们还是简单粗暴的根据Leader们做的代码模板代码框架,乖乖的复制、修改、填肉吧。

你们啊,先从做模板做代码片段开始吧,咱们放到咱们内部代码片段开源库里,看谁的代码片段被别人复制的多,说明你的代码抽象设计能力越好了。那时候,我就大胆放心让你撒丫子跑了。在没有学会跑之前,给老子乖乖的复制、修改、填肉吧。

C. 程序员斗图装逼时最爱用的表情有哪些

小编也有好久没有更大家分享快乐了,今天来给头条上的小伙伴分享一波程序员的表情包,工作之余斗斗图放松自己也是不错的嘛,表情包是小编我精心潜藏群里数月收藏的!今天全贡献出来了,望大伙们能够喜欢!也希望各位小伙伴能在工作中,学习中都有收获,并且能快乐的去工作,能拿到高薪!

分享之前我还是要推荐下我自己建的前端学习群:635808125,史上第一个前端2000人群,都是学前端开发的,如果你正在学习前端,小编欢迎你加入,大家都是前端党,不定期分享干货(只有web前端相关的),包括我自己整理的一份2017最新的前端资料和零基础入门教程,欢迎初学和进阶中的小伙伴。

现在很多人都想转行来做程序员,认为程序员工资很高,但是确不知道有多辛苦,今天小编就带大家了解下,程序员平时有多辛苦吧!

工作几年以来,伴随着接触程序员的面极速增长,我对下面观点的体悟越来越深:

一、其实每个行业都有各自的辛苦

二、控制欲望,做正确的事情,就不累

三、好的程序员并不累,他们乐此不疲

闲聊一下,如果你觉得很累,那就要回到原点问问自己为什么要做程序员:)

因为见过太多在职位事业、人生方向上随转如流的人,累了疲乏了就去做别的事情了。如果一辈子找不到自己该有的坚守和立足的点,并基于这个点在这个时代的大趋势中不断乘风破浪前进,自我主动驱动有所作为建树,而是沦为在别人的体制制度中被驱赶一生,我想无论什么工作都只是一时的寄托,外加自己错误的欲望肯定苦累不断。

加油!共勉

D. IT培训分享做java软件工程师,怎样才能写出好的代码

Java代码之于java程序员而言就是左膀右臂,java代码写的好的java程序员明显更是企业的欢迎,一个优秀的java程序员的考核标准之一也是看他的编程水平。

其实有的java程序员java代码会受到大家的追捧,是因为他在写代码时注意的细节往往多于那些不怎么关注java代码编程细节的程序员,俗话说:“细节决定成败”,那么如何写出好的java代码呢?IT培训介绍一起来讨论下:

1.重视注释

有举正的java程序员在写代码时,从来没有想过要在java代码后加上相关的注释,甚至是上万行的代码也没有想过加上注释,这就存在很大的问题,不说你的代码会跟其他人分享讨论,就你自己回顾你是怎么写好这篇代码的,你也是半天无法理出头绪,这就为维护和修改等等工作添加了很大的麻烦。所以,要想写出好的java代码,一定从简短的java代码编写开始注重在java代码后面加上相应的注释,养成良好的习惯。

2.重视排版整洁

看很多java程序员的排版总觉得在欣赏一幅艺术品,但是看到一些java程序员的排版却总觉得无力吐槽。同样是编写代码,但是给人的视觉体验是相当的不同,当然好的java代码给人的享受也是美的,所以要想写出好的代码,一定要重视排正滑悔版整洁。

3.注重命名规让闷则

现在在一个团队开发中,都会提前定制一个统一的命名规则,这样利于提高工作效益。但是很多java程序员是缺乏这个意识的,每次敲代码,更喜欢按照自己惯常的方式老命名模块、函数,这样是方便了自己,但是忽视团队协作,所以在日常工作中,特别是团队工作中一定要重视命名规则。

4.养成备份习惯

备份的重要性不用小编强调,相必你也知道。但是有的java程序员就是没有养成这样的好习惯,每次敲完代码就不记得随手保存,每次等到除了事故,比如电脑出了故障,辛辛苦苦敲打的java代码没保存找不回来的情况下就开始懊恼,与其这样还不如在一开始就养成良好的备份习惯,这样也方便自己日后查找利用。


E. 怎么样通俗的解释程序员所说的代码

程序员所说的代码就是简单的理解为一种计算机系统能够读懂的语言,它是使用二进制的语言,也就是0和1去表示信息的传递的,当然实际编的时候肯定不是一直敲0或者一直敲1,因为那样代表的信息有限,输入量太大,是有固定的代码库去帮助他们的,也就是说有一些基础可以直接引用。

公益诉讼。程序员的工作在我们看来是比较复杂的,因为一些数据库都要使用英文作为根本性的语言,因为电脑是1946年美国人发明的,所以他们的语言都是外国的语言,我们存在语言的障碍,所以这比较困难,但是对于一些语音英语为母语的人来说,懂得相应的运行规则做一个码程序的就是一些基本的程序,没有那么困难。

F. 程序员们,见过这种代码吗 %CE%C4%BC%FE%C3%FB

附图说明***
1。首先程序员是不是一个打字员。代码是需要思考,需要结合企业的实际,而不是一个简单的打字。

2。节拍代码是为了让计算机根据自己的代码逻辑(例如,你可以让它去打开一个文件),完成某些特定的功能

程序员的工作是基于一种计算机语言,用这种语言实现某些特定功能

分类如##程序员:java程序员,C + +程序员,等等。

##代码的作用:例如,你去银行存钱。

A。古代最原始的方式,以节省金钱,你去银行存钱,然后用自己的银行,以一个单一的计费记录,下一次存款,然后找到相应的记录,该记录信息。

法案页面了很多时间,这段时间来查找用户信息时,它会变得非常困难。

B。“目前的做法,银行将有一些应用程序,你想省钱,但计算机不直接明白你想要做什么。

这个时候,我们需要保存这件事情,你要转换成计算机能够理解的东西。这些计算机可以明白你说了些什么

代码,该代码会经过一些处理成二进制数据,计算机可以理解

3。需要什么样的知识:
电脑常用操作将至少有一个编程语言,它使用一个开发工具,数据库等熟悉的那种...

阅读全文

与程序员的斗图代码相关的资料

热点内容
程序员涉黄 浏览:698
maven编译resources下的js 浏览:519
ubuntu文件移动命令 浏览:227
安卓i怎么查找苹果手机 浏览:949
云服务器宕机概率 浏览:229
在线买药用什么app知乎 浏览:813
ubuntu解压xz文件 浏览:674
宏杰加密时电脑关机 浏览:388
自己写单片机编译器 浏览:598
单片机按键闪烁 浏览:380
为什么icloud总是显连接服务器失败 浏览:888
如何设置域控服务器 浏览:738
想在上海租房子什么app好 浏览:184
编译程序各部分是必不可少的吗 浏览:885
编程不超过十行 浏览:763
数电编译器的作用 浏览:337
时间算法与现在有什么区别 浏览:164
7zip解压后没文件夹 浏览:904
为什么安卓送玫瑰ios收不到 浏览:10
美篇文章加密是什么意思 浏览:84