新闻资讯  快讯  焦点  财经  政策  社会
互 联 网   电商  金融  数据  计算  技巧
生活百科  科技  职场  健康  法律  汽车
手机百科  知识  软件  修理  测评  微信
软件技术  应用  系统  图像  视频  经验
硬件技术  知识  技术  测评  选购  维修
网络技术  硬件  软件  设置  安全  技术
程序开发  语言  移动  数据  开源  百科
安全防护  资讯  黑客  木马  病毒  移动
站长技术  搜索  SEO  推广  媒体  移动
财经百科  股票  知识  理财  财务  金融
教育考试  育儿  小学  高考  考研  留学
您当前的位置:首页 > IT百科 > 程序开发 > 程序员

新手程序员不知道的小技巧

时间:2019-06-06 13:16:58  来源:  作者:

在编写代码中有许多技巧,有的是程序语言实现层面的,有的是算法和数据结构方面的,类似的文章在网上已经有非常详细的说明了,本文打算从另一个比较抽象的角度来聊聊有哪些新手程序员不知道的小技巧,有了这些技巧会让你在日常写代码的过程中如虎添翼,提升工作效率。

 

 

思维层面

有哪些新手程序员不知道的小技巧?

 

假设我们要做一个课程设计,对于稍微有一些编程基础的同学来说可能一上来就写代码,然后反复修改。而学习软件工程的课程之后可能会考虑先做一个需求分析,新手可能会陷入比较混乱的思路中。所以在构思一个问题时,可以考虑从最大的几个方面出发,等大确定之后并记录下来,再一个个慢慢展开。比如一个常见的需求:写一个 xx 管理系统,如果思路是:用户管理 -> 用户数据库结构设计 -> CRUD 逻辑 -> 界面 -> 功能分析 的话,很快就会陷入混乱,但是如果思路改变一下,如下:

  • 用户管理
  • 用户数据库结构
  • 用户相关 CRUD 逻辑
  • 功能设计
  • xx 功能
  • yy 功能
  • 对应功能的 CRUD 逻辑
  • 功能相关的数据库结构

这样对于问题的分析就会清晰很多,实现起来也更加不容易遇到问题。

 

 

看官方文档

 

有哪些新手程序员不知道的小技巧?

 

一些语言/工具的官方文档可能是纯英文的,对于英文不是非常好的程序员来说第一眼看上去不是非常友好,但是作为相关工具的开发者,其官方文档的维护者势必是最为了解对应产品的人,加上一般我们能看到对应文档的工具都是开源的,在有官方背景情况下的文档一定相比一些 xx 知道,xx 博客等有更加好的入门能力,且能涉及到一些大家博客中难以涉及到的一些比较小的细节。

如果英语水平不好的话,一定要花功夫提升自己的英语水平,这样可以非常有效地扩展自己的知识面。

 

学会调试

 

有哪些新手程序员不知道的小技巧?

 

这里说的调试不是在 "合适的位置" 写一个 print 语句判断一下某个变量对不对,而是对于代码的调试。包括但不限于对性能不够的地方进行测试和调优,对于代码性能的分析被称为——profiling。

profiling 工具 vs 和 gcc 都有,gcc 下的叫 gprof ,功能都是通过检测堆栈采样每个函数的 cpu 时间,统计代码热点,方便程序员有针对性的优化代码。

进行代码调试,如果自己的代码具有模块性能提升调试的效率,模块间注意去掉循环依赖,这样所有模块会自然分层,遇到问题的时候可以一层一层往下调试,对于调试而言,建议如下:

训练可以这样。写一个稍微有点规模的项目,大于 2000 行代码的那种,然后尝试把它分成小模块,每个模块一个文件,每个文件不超过 300 行(或者 500 行,有的语言可能本身更啰嗦一点),每行不超过 80 个字符。每个模块尽量只做一件小事情。注意让模块之间没有循环依赖。给每个模块写单元测试。然后,写出来这个 project 之后,把模块之间的依赖关系画个图(像这个:Go standard library DAG visualization),拿着这个图给你的一个(同样高数没有问题的)朋友看,让他参照着这个图去读你的源代码,看他能不能读懂你的代码要做什么,是怎么做的。如果他能读懂,说明你模块分得非常好。如果他读不懂,可以具体看他读哪个模块读不懂了,研究一下有没有更好的模块化方式或者写法。——如何高效地增强编程(特别是debug)能力? - h8liu

看完这篇文章的你可以在下一次写代码的时候尝试一下~

本文作者:Nova Kwok
 



Tags:程序员   点击:()  评论:()
声明:本站部分内容来自互联网,内容观点仅代表作者本人,如有任何版权侵犯请与我们联系,我们将立即删除。
▌相关评论
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表
▌相关推荐
0.新建操作:mkdir abc #新建一个文件夹touch abc.sh #新建一个文件1.查看操作查看目录:ll #显示目录文件详细信息du -h 文件/目录 #查看大小pwd #显示路径查看文件内容:cat|hea...【详细内容】
2019-11-27   程序员  点击:(0)  评论:(0)  加入收藏
来源公众号Java爱好者社区 ,作者东升的思考本文导读: 物流仓库配送如何加速 静态资源文件部署方式 静态资源加速之CDN技术 解析过程中的名词解释 最后的总结1、物流仓库配送如...【详细内容】
2019-11-18   程序员  点击:(7)  评论:(0)  加入收藏
图的最短路径算法Floyd最短路算法(多源最短路)参考:https://www.cnblogs.com/ahalei/p/3622328.html 在这里插入图片描述上图中有4个城市8条公路,公路上的数字表示这条公路的长...【详细内容】
2019-11-07   程序员  点击:(7)  评论:(0)  加入收藏
两种实现方式分别是基于Ehcache和Redis的session管理策略。大家都知道服务器资源有限的,但是客户端来的请求是无限的(不排除恶意攻击), 为了保证大部分的请求能够正常响应,不...【详细内容】
2019-11-07   程序员  点击:(14)  评论:(0)  加入收藏
1. 宁可多算一周,不可少估一天。过于“乐观”容易让boss受惊吓。2. 最有用的语言是English。其次的可能是Python。3. 百闻不如一见。画出结果,一目了然。调试耗时将大大缩短。...【详细内容】
2019-10-31   程序员  点击:(8)  评论:(0)  加入收藏
当你遇到某个难题的时候,我猜你只知道baidu一下,可是你每次都能够快速并且精准的得到你想要的资源和资讯吗?为了提高大家的信息检索能力,在接下来的文章当中我会给大家介绍几款...【详细内容】
2019-10-31   程序员  点击:(12)  评论:(0)  加入收藏
现代人最大的缺点,是对自己的职业缺乏爱心。——罗丹 不管是媒体人还是职场人,都在为35岁以上人员制造焦虑,认为35岁以上职场人都没有生存的空间了。真实的职场到底...【详细内容】
2019-08-17   程序员  点击:(12)  评论:(0)  加入收藏
小编搜集了7个最有影响的衡量标注,让你可以不依赖日志文件来了解应用程序。现在,让我们看看这些性能指标,并了解如何查看并收集它们: 1.响应时间和吞吐量根据应用程序的响应时间...【详细内容】
2019-10-31   程序员  点击:(17)  评论:(0)  加入收藏
本篇文章主要介绍SqlServer使用时的注意事项。虽然现在开发中普通使用各种Orm框架,总结操作sql的机会越来越少,但是想成为一个高级程序员,数据库的使用是必须要会的。而数据库...【详细内容】
2019-10-31   程序员  点击:(17)  评论:(0)  加入收藏
一、前言”前后端分离“已经成为互联网项目开发的业界标杆,通过Tomcat+Ngnix(也可以中间有个Node.js),有效地进行解耦。并且前后端分离会为以后的大型分布式架构、弹性计算架...【详细内容】
2019-10-29   程序员  点击:(13)  评论:(0)  加入收藏
作者:黄轶来源:juejin.im/post/5d3a6d9e51882570d50f5566 程序员的标准与要求 初级程序员 中级程序员(阿里 p5) 高级程序员(阿里 p6) 程序员的进化之路 初级 -> 中级 中级 -> 高...【详细内容】
2019-10-28   程序员  点击:(7)  评论:(0)  加入收藏
1.Accept属于请求头, Content-Type属于实体头。Http报头分为通用报头,请求报头,响应报头和实体报头。请求方的http报头结构:通用报头|请求报头|实体报头响应方的http报头结构:通...【详细内容】
2019-10-23   程序员  点击:(11)  评论:(0)  加入收藏
小编今天为大家整理了9款程序员工具网站,每一款都不常被人知晓,建议大家收藏一份! 一、regex101官方网站:regex101.com强大的正则表达式工具,你可以实时查看匹配信息,并且会用不同...【详细内容】
2019-10-22   程序员  点击:(22)  评论:(0)  加入收藏
大家都是程序员,大家都是和计算机打交道的程序员,大家都是和计算机中软件硬件打交道的程序员,大家都是和CPU打交道的程序员,所以,不管你是玩儿硬件的还是做软件的,你的世界都少不...【详细内容】
2019-10-22   程序员  点击:(10)  评论:(0)  加入收藏
来自一个粉丝的来信,说他本来国庆期间好好规划了好好学习人工智能的一些算法,以此来应对即将到来的面试,可是时机情况下,到了放假的时候,自己要么一整天赖床、煲剧、打机,无所事事...【详细内容】
2019-10-15   程序员  点击:(13)  评论:(0)  加入收藏
我个人对陷阱的定义是这样的:代码看起来可以工作,但不是以你“想当然“”的方式。如果一段代码直接出错,抛出了异常,我不认为这是陷阱。比如,Python程序员应该都遇到过的“Unbo...【详细内容】
2019-10-15   程序员  点击:(13)  评论:(0)  加入收藏
图片来源:Unsplash/摄影NESA by Makers 软件工程师的技能发展都会经历一个自然的过程——经验从无到有,最后变成老手。而一旦到了经验丰富的阶段,他们对代码就不那...【详细内容】
2019-10-14   程序员  点击:(8)  评论:(0)  加入收藏
1. Linux Virtual Server项目针对高可伸缩、高可用网络服务的需求,我们给出了基于IP层和基于内容请求分发的负载平衡调度解决方法,并在Linux内核中实现了这些方法,将一组服务器...【详细内容】
2019-10-10   程序员  点击:(8)  评论:(0)  加入收藏
初始化一个类,生成一个实例的时候;newInstance() 和 new 有什么区别?用newInstance与用new是区别的,区别在于创建对象的方式不一样,前者是使用类加载机制,那么为什么会有两种创建...【详细内容】
2019-10-10   程序员  点击:(13)  评论:(0)  加入收藏
这篇文章覆盖了计算机科学里面常见算法的时间和空间的大 O 复杂度。参加面试前,经常需要花费很多时间从互联网上查找各种搜索和排序算法的优劣,以便在面试时不会被问住。最近...【详细内容】
2019-10-08   程序员  点击:(9)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条