吉林网站建设哪家有,建设论坛网站自学,宣传册设计与制作模板免费,网页小游戏免费的小游戏分享自己写代码时的好习惯#xff0c;让你的编程能力突飞猛进#xff01;大家好#xff0c;我是鱼皮#xff0c;上回说到#xff0c;很多同学在学编程时不注重代码质量#xff0c;养成坏习惯的同时#xff0c;失去了提升自己编程能力的机会。还没读上篇文章的同学#… 分享自己写代码时的好习惯让你的编程能力突飞猛进大家好我是鱼皮上回说到很多同学在学编程时不注重代码质量养成坏习惯的同时失去了提升自己编程能力的机会。还没读上篇文章的同学请先阅读劳资的代码会有问题 在文末我抛出了问题如何有意提升自己的代码质量呢我根本就发现不了自己代码中的问题以为已经写得很棒棒了怎么办要解决这个问题其实非常简单既然自己经验不足、或者是 “只缘身在此山中”看不出来代码哪里写的不好那就找其他朋友或有经验的程序员帮你看看代码给出一些意见。虽然每个正常的程序员都无法忍受自己写的代码被人说是辣鸡但是虚心接受指正并加以修改的确能大大加深我们的印象下次写代码时就会注意了。慢慢地就养成了好习惯不仅注重自己的代码质量还会 “继承传统”开始说别人写的代码辣鸡从而帮助更多人改进。但有一个很残酷的现实谁这么好心帮我看代码呢我大学期间虽然做过很多项目写过很多代码但是自己的代码基本都只给自己看。即使把大作业的代码交给老师他们也根本不看代码只看运行效果的这也是上次提到的为什么大家越来越不注重代码质量的原因之一。而且实不相瞒我也曾经求学长帮我看代码但换位思考一下如果不是和你关系非常好谁闲的蛋疼免费去帮你看你写的辣鸡代码求人不得只能求己。一种方式就是把自己开发好的作品上线让用户来使用它从而帮你发现一些自己没注意到的 Bug 或功能问题驱使你去仔细阅读和改进代码。还可以把自己的代码公开到 GitHub 等代码托管平台允许其他同学阅读和指出问题。但是这种方式过于硬核前期需要耗费大量精力去做推广否则根本没人用你的项目也没人去看你的 GitHub比如我的 编程导航 项目已经开源 4 个多月了文档编写非常用心也做过一点推广才收获了 600 star确实是很不容易。编程导航开源项目这几天我又大大地优化了下文档并且将后端的代码也开源了如果大家对前端、React、后端、Java、Spring Boot、腾讯云开发、公众号开发、文档站点生成等感兴趣都欢迎大家的关注~地址 https://github.com/liyupi/code-nav也可以点击文章下方阅读原文直达编程导航开源项目回归正题硬核的方式咱玩不了那我就教大家人人都能轻松学会的一招也是我自己一直坚持的编程习惯。下面一起来看看我写代码时的 小倔强 吧有效提高你的代码质量编程能力突飞猛进我的编程习惯就像之前说的我们之所以发现不了代码中的问题很大程度上是因为我们的编程态度是 “乐观” 的相信视频教程、相信书本、相信编辑器只要没报错那就是对的。但我写代码时非常地 “悲观” 且倔强我会细致入微地把自己写过的每一行代码都看作是病人坚持认为他们是有问题的甚至可以说是从鸡蛋里挑骨头有同学说了你特么不就是在说废话么这不就是仔细检查代码或者说是防御性编程啥是防御性编程可以看我的这篇文章揭秘软件开发的达摩克利斯之剑先别急这和防御性编程可不一样我有多倔举个栗子你就明白了下面请跟上我的思路~我有多倔假如我写了这样一端前端代码作用是获取某条狗的名字// 默认狗名
let name 无名狗;
// 狗、狗信息、狗名称都存在
if (dog dog.info dog.info.name) {name dog.info.name;
}
你觉得这段代码有问题么如果你觉得没有问题那么很好你很乐观。无所谓了我才不要你觉得我很倔我就偏偏觉得这段代码有问题没问题我也得挑挑问题 。嗯代码逻辑好像没毛病那硬要说有问题的话代码量是不是有点多比如在获取狗名时为了防止报错要先判断狗是否存在再判断狗的信息是否存在最后才能取到狗名好啰嗦啊。如果还要获取一堆其他的信息这代码简直没法看了。所以我就开始思考如何让这段代码更加精简有没有更好的写法呢通过百度我发现了一个牛逼的玩意儿叫 可选链操作符 ?. 允许读取对象深处的属性值而不必明确验证链中的每个引用是否有效在引用为空的情况下不会引起错误会自动短路返回值。于是代码变成了这样// 默认狗名
let name 无名狗;
// 狗、狗信息、狗名称都存在
if (dog?.info?.name) {name dog.info.name;
}
已经比刚刚简化了不少但我不满足获取个狗名竟然要写 4 行代码这肯定有问题啊能不能再简化一下呢思考了一下这次我凭着自己贼硬的基础知识储备没有百度就想出了更精简的写法使用 JavaScript 的三元运算符就行了代码如下let name dog?.info?.name ? dog.info.name : 无名氏;
怎么样一行代码搞定下面给大家个机会代码写成这样还有问题不或者说你看这行代码觉得舒服么反正我觉得不太行我鱼某偏要从鸡蛋里挑骨头仔细看我们发现 dog、info、name 这三个单词都重复出现了两遍那有什么办法再精简一下呢再次打开搜索引擎这次搜了半天都没找到优化的方法那我干脆就去搜了 “JavaScript 小技巧”、“JavaScript 高级写法” 等关键词终于找到了答案。空值合并操作符 ?? 当左侧的操作数为 null 或者 undefined 时返回其右侧操作数否则返回左侧操作数。最终代码缩成了这样let name dog?.info?.name ?? 无名狗;
舒服多了吧这就是我写代码时的倔强通过这次挑问题起码帮助我学到了两个 JavaScript 操作符的用法爽死了值得么那有同学说了像你这样写代码不累么这么认真地去抠代码的细节不会很花时间么小了格局小了。从这一次写代码来看的确我花了更多的时间代码能跑就行了管那么多别的干啥呢但从长远来看这是学习的必经之路通过自己思考去发现问题、解决问题学到的知识可以说是深深地刻在了脑海里以后再写类似的代码时就能更轻松、规范和高效省下的时间是无限的当然抠细节也要看情况如果你要开发的东西很紧急肯定还是先以完成功能为主。但等后面有空了一定要记得优化一下否则你也算是为代码 “屎山” 贡献了自己的一份力量。悲观编程还有什么其他的好处呢乐观编程时我们往往是被动地发现问题以为代码跑的很顺利但却往往被别人来提 Bug再被迫修改心态会越来越差。而悲观编程时我们是自己主动找问题主动去优化代码。当你通过思考、搜索和实践将原本很复杂的代码化繁为简后你会惊喜地发现我去原来代码还可以这样写牛逼牛逼然后你就会收获成就感继续坚持这种习惯不断进步。这让我不禁想起了拼多多早期没有给用户很高的预期让他们觉得这是个多牛逼的产品。而是主动降低用户的预期让大家都觉得这是个土味儿产品后来再一次次地超出预期最终走向成功。找不到问题看到这里大家应该理解我写代码时的倔强了。但一定会有同学表示我没有这种敏锐的直觉看不出自己代码中的问题咋办呢我自己有一些经验方法大家可以尝试一下当你觉得有段代码写起来很麻烦时多半有问题不妨去搜索下有没有现成的组件或者别人是怎么实现的。当你重复写某段代码时一定有问题不妨把它抽象成函数或组件、或者用设计模式来优化。当某段代码中写了大量的 If Else 时一定有问题试着重新梳理逻辑减少条件和分支。多关注开发工具的报黄和报红提示通常能得到很多好的优化建议尽早发现问题。再给大家一道练习题上面举的栗子是前端的这次就举个 Java 的吧。目标是获得所有狗的名字列表老弟小阿巴写的代码如下// 获得所有狗的名字列表
ListDog dogList new ArrayList();
ListString dogNameList new ArrayList();
if (dogList ! null dogList.size() 0) {for (int i 0; i dogList.size(); i) {Dog dog dogList.get(i);if (dog ! null) {dogNameList.add(dog.getName());}}
}
return dogNameList;
这段代码有问题么如何优化呢大家快来试试吧~小提示一行代码就可以实现同样的功能欢迎在评论区交流。好了以上就是本期分享有帮助的话求个 赞 在看 希望让更多人学到。往期推荐网友炸锅IE 不再痛失挚爱在烧烤店约了一位阿里练习生前端老弟第一次写后端崩了