菜鸡程序员是如何写代码的?

每个程序员都要历经从菜鸡到大牛过程蜕变胡过程。当初大家起点都差不多,工作多年后,有些人依然停留在菜鸡,有些人却已成为大牛,所有的事情,都是一点一滴习惯养成。让我们看看菜鸡程序员是如何写代码的?有可能找到你当初的影子,甚至是现在的影子。

一、命名不规范

命名很随意,当时写代码特别High,什么奇奇怪怪的命名都有的:xiaonaigou,xxxx,j1,jl,llst.完全意识不到全名规范的价值和意义。

file

二、日志不规范

日志?那是什么鬼东西,能吃么?

曾经有一个从文思海辉出来的小伙伴,三年后端工程师经验,出了问题不知道怎么解决。只好重启。找我来协助,问他,怎么错了? 不知道。 日志呢? 没有。

file

晕,那怎么解决问题,神仙也搞不定啊。

后来才知道,他们解决问题都是本地改代码然后直接部署,重新访问看错误消失没,没有消失就继续在本地改源码。

三、拒绝写接口和假数据

一个菜鸡不可怕,可怕的是菜鸡遇到菜鸡。曾经有一个项目中的两个菜鸡,一个前端一个后端,他们很欢快的调接口,根本不写文档 ,两个人效率特别高。直到有一天,发现项目可能做不完了,需要另外两个前端菜鸡协助一下。新来的两个菜鸡要获取后端的数据,不知道接口的Url地址,不知道Get还是Post,不知道发送的参数和返回值。就这样写!我压根没想到可以这么写代码,两个菜鸡很开心!拍手称快:通了,通了,通了!

file

我说你们通什么呢?他们说接口终于通了!原来他们两个参考之间的页面,硬生生的一次一次不停的尝试,就这样把接口猜出来了!这就是编程的乐趣吗?还有不写假数据。曾经有一个马姓小哥,对赵姓小哥信誓旦旦的说:3天,给我3天时间 ,我把真数据给你。于是赵姓小哥信以为真。就这样,3天又3天,3天又3天,3天又3天,3天又3天,3天又3天。整整一个半月,赵姓小哥都没有拿到全部的数据!

四、不写单元测试

确切来说,是不按TDD的方式开发。在现在IDE这么强大的情况下,先写单元测试的习惯,不仅仅是代码的严谨性,也是效率的代名词啊。可是很多菜鸡理解不了单元测试的价值,没关系,等到代码重构,需求变更的时候,就哭都哭不出来了!好的单元测试,你的逻辑必然会清楚。第一次启动我的单元测试时,往往是这样

file

五、先集成,再测试,再放弃。

很多时候,菜鸡在引入第三方的库,框架,接口或者是服务的时候,最喜欢的事情就是直接和自己原有的代码集成在一起。结果 是什么呢?突然间不能用了,跑不起来了,不知道问题出在哪了,根本分不清倒底是第三方的问题还是自己的问题。

file

好的方法是什么?先跑通官方提供的Demo,再想办法一点一点加上自己的业务。

六、理不清楚逻辑,边做边猜

前端在这里的问题特别多,做支付,不清楚支付的流程,分不清楚定义,总以为前端就是接口处理好数据展示好拉倒。很多菜鸡都会有这种习惯,这样不好,先把逻辑处理好,弄清楚流程,再去动手才好。

file

七、不做方案

不做方案代表什么含义呢?就是完全凭直觉行走啊。

file

跟闭上眼逛窑子一样。写代码的好习惯应该是先在脑袋里把所有的需求细节过一遍,实现细节拿出来。上个月就有一个张姓小菜鸡,做一个匿名评论的功能。基本上没有什么经验,脑子也不好使,给出的方式是什么你们猜得到么?用户刷新一次就往用户表里插入一条数据,密码默认昵称随机。不多说了都是泪,我见过太多让人目瞪狗呆的方案了,看着满屏的代码,你怎么帮他调错调优,最好的方式就是全部重写。做方案的好处太多了。

8、不关注性能

不关注性能也是新人很容易犯的错。什么是性能呢。对后端来说就是TPS和响应时间,对前端来说就是响应时间。很多新人程序员的习惯就是把东西做出来,然后再优化。最后就是东西做出来了,优化留给别人了。对性能的关注也是晋升中级程序员最关键的技能点。在写代码的时候,有经验的工程师已经知道了这个方法这个函数这个功能点的性能怎么样,瓶颈在哪里。

file

9、害怕重构

“程序员最大的勇气就是看自己三个月之前写的代码。”

file

其实重构并不应该是在几个月之后重构,最好的方式是实时重构。写一天代码,70%的时间都放到重构上都不过份。而新人呢,磕磕跘跘的完成一个功能,就跟多米诺骨牌做成的大黄蜂一样,你敢动一下他的代码试试?他会跟你拼命。你让他自己动一行代码试试?不重构在某种程度上也意味着你的代码实现无法重塑。当你再看到自己几个月没碰过的代码,往往是这样:

file

10、做出来就好,不考虑优雅的方案

有个词叫做最佳实践,其实编码规范和最佳实践,是编程功底的重要体现。优雅方案可以认为是最佳实践的升级版,它和上面说到的不断的重构是相辅相成的。不好的方案是什么呢?硬编码居多,没有可扩展性,用很丑陋的方式完成了功能。比如轮子是正方形的,也认为车子能开就行:

file

上次他们去做了一个关于试听课的方案,一个人能试听多少节课,正常的逻辑应该是在用户的表里加一个字段来表示。需求是写着邀请几个人,可以试听多少节课,所以他们判断试听多少节课就直接在通过邀请人的表里查询去做。完全没考虑到以后如果我变换了试听课的判断条件怎么办?实际上这是应该拆解成两部分,一个是试听课的产生条件,这是一个独立的模块,加一个是试听课的确认。像这种例子太多了,也和不做方案,不考虑扩展性有关系。就是接下来要说的。

11、不考虑未来需求的变化

工程师的水准,其实可以分成以下几个阶段:

1、面向功能编程
2、面向性能编程
3、面向未来编程

工程师拿到需求的第一件事,应该聚集在以下几个问题:

第一 、哪些需求是我之前完成过的
第二 、哪些需求是有可能变化的
第三 、有几种方案,分别支持什么样的需求变化

当一个新续期来时,往往都要推到重新来:

file

但是差一点的程序员就考虑不到那么远,一个是对业务不熟悉,判断不出来哪些需求可能会产生变化,一个是对可选的方案掌握的不多,根本就没有什么可选的余地,还有就是没有这种思维习惯,分不清楚哪些是现在要完成的,哪些是未来可能会支持或者是变动的。

12、遇到问题的时候不会试错

这也是新手常见的问题。很多时候新人会遇到问题,解决不了,去找一个有经验的工程师,这个有经验的工程师呢,大概也未曾遇到这种情况,但是他解决问题的思路清楚啊。一会儿试试这个,一会儿删删那段代码,很快就跑通了。解决问题是一个很见功底的技术点,而且是有很多方法论的,之前总结过一些,简单列举过来:

1.寻找正确的代码
2.理清楚正确的执行顺序
3.重现错误
4.最小化错误产生的场景
5.修改代码到一个已知的错误类型等等等。

解决问题就是一个分析推理的过程,而在这里呢,背后的功底就是你知道很多哪些是肯定不会错的小公理,然后再挨个去定位可能产生错误的环节,分解流程是最基础的工作。高级开发调试问题,往往如下:

file

13、不会写伪代码

伪代码是什么呢?就是自然语言啊。其实编程只有三种逻辑控制块,顺序,循环,判断。所以你只要用自然语言来描述出来,先做什么,再做什么,什么时候循环,什么时候判断,代码写出来的问题就不大。这是一个先写伪代码再写细节的过程。你不要上来就开始平铺写代码。

平铺代码是最菜的方式,好的代码是有结构的,有不同的抽像层级。

第一步,干嘛。
第二步,干嘛。
第三步,干嘛。
先把这个列清楚,这是伪代码的第一级。
然后变成注释,这是第二级。
删掉注释变成函数名,这是第三级。

所以说,好的程序员写代码是不需要注释的,不是说让你把注释删掉,而是让你完成这三步升华的过程。写的好的代码,命名规范,你看到的真的是一首诗, 是一种编程语言,是在用语言来描述一件功能的完成,这种编程艺术的工业感很爽快,你看那些不爽的代码,简直了。一步一个坑:

file

14、不做数据量的预估

后端工程师在前期经常会忽视数据量的大小,没有影成一个好的习惯。写代码只注重功能,没有一个关于数据量的概念。这个地方其实还和性能是一致的,在性能上,前后端并没有太大的差别。推荐的做法是,程序员要对数据很敏感,后端要知道每一个表的规模可能会有多大,当前的系统能支持的数据库表的大小是多大,而前后端都需要知道每一个操作,都分成了哪几个步骤,每一个步骤花费的时间是多少,大概占用的内存是什么样的。做到这一点其实并不难,难的是养成这种习惯,初级工程师眼里看的是功能和代码,中级工程师眼里看到的是数据和时间。没有预估,最后起火了,往往是这样的:

file

欢迎关注我的微信公众号「码农突围」,分享Python、Java、大数据、机器学习、人工智能等技术,关注码农技术提升•职场突围•思维跃迁,20万 码农成长充电第一站,陪有梦想的你一起成长。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/56880.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

看完这篇文章,还不知道怎么学单片机,来打我!

大家好,我是张巧龙,今天给大家分享一篇文章,来自科岩大佬,推荐大家阅读! 经常有人问我,嵌入式该怎么入门,怎么学习,怎么精通,怎么成为专家。我前思后想掏心掏肺&#xff…

开放原子训练营(第二季)RT-Thread Nano学习营线下学习心得

前言 目前市面上有很多种RTOS(Real-time operating system,实时操作系统),还在犹豫选择学习哪种RTOS的小伙伴,推荐你们学习RT-Thread操作系统,这也是本人最喜欢的一个RTOS,喜欢的原因很简单&am…

21届本科大数据菜鸡:我是怎么在互联网寒冬拿到腾讯、华为、京东、美团、快手等大厂offer的?

YOU CAN 前言正文不要自卑,去提升实力互联网行业谁技术牛谁是爹你这么聪明,你会被游戏控制?朋友是你在玩它。 前言 学得越多,不会得越多 活着就是为了改变世界 下一阶段目标:工作第一年攒10w,在老家买房子付…

关于菜鸡在安装paddle时遇到的坑

关于解决安装paddle 遇到的困难困难的开头后续终于的终于 遇到的困难 原本希望在win环境下安装 paddle 模块,但是感觉win对于paddle不太友好,需要下载docker tool中安装Docker,然后再在其中下载paddle。所以突然想着在虚拟机中的centos7系统…

菜鸡程序员的一天都在折腾些什么?

在影视作品中,程序员多以技术大神的形象出现。 他们经常在电脑上随意插一个U盘,对着黑色的界面飞速敲下绿色的代码,10秒钟后合上电脑,冲主角邪魅一笑表示“我已经黑进五角大楼了。” 邪魅一笑.gif 别急着崇拜。当我入了这一行后&…

半路出家的菜鸡程序员,北漂五年,给刚入行朋友的一些忠告,发自肺腑

大家好,我是陈哈哈。认识我的朋友们知道,我是非科班出身,半路出家,大学也很差!这种背景来北漂,你都不知道你会经历什么🙃🙃。   如今虽没有风生水起,但在技术这块儿也算…

无监督学习 — — 聚类方法分类

无监督学习 — — 聚类方法分类 0. 聚类1. K均值聚类(1). K均值聚类存在问题:(2). K均值聚类实现代码: 2. 凝聚聚类(1). 凝聚聚类实现代码: 3. DBSCAN 聚类(1…

菜鸡教程(1):简易游戏每周推荐小程序制作

写在前面: 1. 阅读本文最好具备一定htmlcssjs基础,并已成功注册微信小程序,成功下载了开发工具   2.菜鸡菜笔,如有不正,还请大佬们不吝惜赐教 接下来开始小程序的制作 1.首先需下载小程序所需图片 2.hello world(万物的起源&…

HFSS学习日记

(纯纯菜鸡,不懂理论和专业术语,单纯记录遇到的问题,欢迎大家批评指正) 1.仿真天线模型,工作频率与预期有偏差,可能的原因有: 空气盒子的长度设置过小。当对天线在一定的频率范围内进…

菜鸡前端2022年总结

我正在参加2022年,博客之星评比,请投我一票。 点此链接,投我一票 再过两年回家种地啦,年总结,写一年,少一年。 简单回顾一下今年,有哪些遗憾,有哪些成果。 工作 今年工作上的内…

三种常见的移动底盘运动学模型分析

目录 前言 一、四轮差速运动模型 二、麦克纳姆轮运动学模型 三、两轮差速运动学模型 总结 前言 现在大三暑假,开学就要着手准备毕设了,接手了实验室师兄的激光SLAM小车项目,先从下位机学起,争取把整个项目接受下来&#xff…

菜鸡学Unity 之 坑神之路 (记录坑点,不断更新中~)

LZ-Says:万事儿开头难,枪在手,不得不发~ 前言 最近在了解Unity这块的内容,不得不说,新的领域,陌生的代码世界,初入茅庐,太多的陌生与不适,唯有咬紧牙关,坚持…

如何从零学习游戏开发

如何做游戏?从哪里开始学习?找工作需要会哪些东西?我已经工作只想业余时间做游戏该学什么?不知道你是不是和当初的我一样有很多困惑。根据我自身的经验带你去了解如何开始学习游戏开发。 我目前已经 工作2年了,大学时期…

菜鸡学Unity 之 Unity中的坐标系(世界坐标系和局部坐标系)

LZ-Says:哎呦喂,时间,时间,慢点过~ 前言 Today,一起来了解下在Unity中的坐标系。 首先,我们要清楚的是,在Unity中,坐标系分为俩种: 世界坐标系;局部坐标系…

菜鸡学Unity 之 汇总撸码过程中遇到的低级错误(一)

LZ-Says:不畏艰难,一起干!!! 前言 对于任何一门新接触的语言,我们总会因为不熟悉从而导致犯一些基本的低级错误,对于错误,我们要秉承拥抱的态度,遇到的越多,…

菜鸡学Unity 之 Unity中对游戏物体的常用操作旋转移动放缩

LZ-Says:愿时光依旧,美好前方~ 前言 本小节,我们一起来看下Unity中对游戏物体的常用操作旋转移动放缩这些基本骚操作吧~ 基本骚操作 全程都可以简单操纵鼠标完成,当然,直接有效是直接设置数值喽~ 鼠标控制完成基本…

菜鸡学Unity 之 Unity中的基本模型和场景操作

LZ-Say:努力,只是为了有个更好的未来~ 前言 如果我们要做一个3D游戏,那么就会需要一些模型,而模型的设计工具有玛雅,3D MAX,通常由美工和专业人员为我们设计好模型,然后导入Unity&#xff0c…

菜鸡学Unity 之 了解 Unity 中的五个视图窗口

LZ-Says:书山有路勤为径,学海无涯苦作舟~ 简述 本文作为Unity学习的第四篇博文,诣在通过简单了解本质,说白了,让我们一起一步步的熟悉Unity的使用,其次愉快的开启我们的撸码之路。 而今天,我们…

潘云鹤院士获吴文俊人工智能最高成就奖!第十一届“吴文俊人工智能科学技术奖”揭晓...

来源:中国人工智能学会 文章整理:自央视新闻、北京日报 链接: https://content-static.cctvnews.cctv.com/snow-book/video.html?item_id7729020039002188616&t1657962648440&toc_style_idvideo_default&share_towechat&tra…

程序员用300行代码,让外婆实现语音搜索购物

“阿强,手写板怎么又不见了?” 最近,程序员阿强的那位勇于尝试新事物的外婆,又迷上了网购。在不太费劲儿地把购物软件摸得门儿清之后,没想到,本以为顺畅的网购之路,卡在了搜索物品上。 在手写…