敲代码时,我们关注些什么

clylia · · 1423 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

相信很多人都听过这一个故事,一个计算机老师给自己的学生出了到程序题 题目如下: 请用最简单的方法打印如下字符,不用考虑其他任何因素 ``` 1 1 2 1 2 3 1 2 3 4 1 2 3 4 5 ``` 于是,有一位聪明的同学很快就就在自己的屏幕上打出了这串字符,于是,这位计算机老师过去看了下,他的程序,他说,你的程序写错了,他的程序如下: ``` package main import ( "fmt" ) func main() { var nums []int for i := 1; i < 6; i++ { nums = append(nums, i) for _, num := range nums { fmt.Printf("%d ", num) } fmt.Println() } } ``` 他不解,既然结果都对了,那程序为什么错了,于是,这位计算机老师给出了自己的答案: ``` package main import ( "fmt" ) func main() { fmt.Println("1\n"+"1 2\n"+"1 2 3\n"+"1 2 3 4\n"+"1 2 3 4 5\n") } ``` 是不是很简单的一行代码就把这个问题个解决了。 好了,故事到这,可能代码有各种版本的实现,这里我使用了golang。 可能很多人会说,这么简单的代码体现不出自己的能力,是的,它是很简单,这位同学写的代码用了很多语法, 说明他很用功学习,但是这位计算机老师要的只是在屏幕上打印出这串字符而已,有很多人会问,这位计算机老师的代码太简单了,没有扩展性。是的,它确实没有扩展性,但是他的需求就是要在屏幕打印那段字符而已,并没有其他要求。 有时候,我们一直在探讨代码的质量,如何写的有可扩展性,往往会陷进代码里边去出不来,而忘了自己最初的目的,我们敲代码是为了解决了工作上的问题,不是为了追求代码无所不能这种本末倒置的想法,我们应当追求的能用最简单快速有效的方式解决现有的问题,而不是沉溺于各种语法糖中,代码是用来解决问题,首先还是看清需求,再来敲代码。 最后,这些天b站源码泄露,很多人网上疯传甚至github上pull下来研究,很多惊呼b站的源代码写的如此高大上,用到了很多高级语法,底层封装,微服务架构等等,我们试想一下,bilibili也算蛮大的一家公司,这份源码肯定经过不同人的手,而这些人能力水平也有高低,而他们也会像我们一样因为生活离职跳槽,那么,人写出的代码都是会有bug的,也就是b站这份源码里面也是会有以前的人遗留下来的坑,等着下一批接手的人来填,所以,当我看见别人的源码时是如此的复杂,自己离别人是如此远,那么我们真的需要这么复杂的代码吗?并不需要,他们的代码复杂,只是为了解决他们所面临的问题,那我们面临的问题,可能远没人家的大,所以,也就不需要复杂的代码

有疑问加站长微信联系(非本文作者))

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

1423 次点击  ∙  1 赞  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传