当前位置: 首页 > 编程日记 > 正文

程序员:提高编程效率的技巧

本文写给那些认为在项目上所花时间和效率成正比的程序员。我要说的是,事实并非如此。虽然你需要在电脑前敲键盘输入东西,但这只和编程沾上一点边。那么,程序员该如何利用时间呢?

俗话说,磨刀不误砍柴工,拿出一部分时间提升自己的技能,可以提高工作效率。你可以参考以下几条建议:

1. 编写单元测试,提高效率(如果你还没有这样做)

这是一个十分基础的工作,但是许多程序员并没这么做。但你应该这么做。这样做不仅能够提高代码质量,还能提高工作效率。你不但能够在发布和修改你的程序时更加自信,而且还节省了相当多的时间。

试想一下,如果你正编写一个大型网络应用程序,其中一个小小的代码出现了差错,要修改它便意味着整个程序的重建、数据的重新配置以及特性的重新检查(而这个错误很可能隐藏很深)。再设想一下,你可能需要一遍又一遍地重复类似的事。现在,借助“单元检测”,就可以让你避免重复以往的修改/检查工作,可以节省很多时间。

2. 训练你的编程能力

这其实很容易。看看其他专业人员。板球队员通过“网上训练”提高技能。音乐家通过练习演奏来提升水平。歌手也需要不断通过练习改进。令人吃惊地是,绝大部分的程序员却不练习。但你需要不断练习。

阅读一些诸如《Effective Java》和《Design Patterns》等类型的书,并每天做些基础训练。从欧拉项目中找出些问题,然后 用你最喜欢的计算机语言解决它。

编者注:欧拉项目,一个知识检测网站,定期发布题目,提交正确答案即可进入关于该问题的讨论,学习题目的不同解法。

和你做的普通项目不同,这些练习没有时间限制。因此,好好安排利用你的时间正确地做事。通过这样的练习,你的工作效率将有很大提高。这是显而易见的,不是吗?

3. 使用并改进开发库

很多编程人员不喜欢用开发库。他们宁愿自己编写代码,也不愿意使用开发库。主要理由如下:

a. 他们不了解开发库;

b. 开发库里有很多他们并不需要的信息;

c. 相比于开发库,他们更容易掌握自己编写的代码;

不妨考虑下以下几个方面:

a. 开发库已经过严格测试,覆盖范围广,可以帮助你节约很多时间。如果你改进了开发库,你可以帮助很多人。

b. 但如果你仅改进你的私有代码,则不可能有那样的影响。

c. 最重要的是,其他同行也在帮忙补充开发库的信息,这可以间接地帮助你。

总而言之,除非开发库与你的要求太不相符,你最好考虑选择使用开发库。

4. 阅读代码和技术资料

阅读代码和修改/编写代码一样困难。在当今开源世界的情况下,可以参阅大量优质代码。选择一个你最喜欢的开发库,然后仔细阅读以充分利用里面的资源。或许你不能很快便理解所有的内容,但是通过不断的训练,你将能够区分其中使用的不同模式,同时把这些模式用到你的代码中。

除了看代码之外,你也可以订阅专业领域内优秀专家的博客,来获取最新趋势信息。

原文链接:http://www.jobbole.com/entry.php/313

转载于:https://www.cnblogs.com/bmate/archive/2010/11/15/1877506.html

相关文章:

Qunee for HTML5 V2.5新版本发布

为什么80%的码农都做不了架构师?>>> Qunee for HTMl5 V2.5 beta2版本正式发布,此次版本内核改动较大,采用了新的2D渲染引擎,增加了延迟绘制功能,大幅改善画布的浏览体验,此外重构了鼠标键盘以及触控交互监听处理,增加右键框选功能,改善了多点触控交互,增…

泛型推断类型不符合上限

程序报错推断类型不符合上限 springsecurity需要自定义用户服务 代码 Overrideprotected void configure(AuthenticationManagerBuilder auth) throws Exception {auth.userDetailsService(new CustomUserDetailsService());}public class CustomUserDetailsService implemen…

如何通过深度学习,完成计算机视觉中的所有工作?

Mask-RCNN做对象检测和实例分割作者 | George Seif译者 | 天道酬勤,责编 | Carol出品 | AI科技大本营(ID:rgznai100)Mask-RCNN做对象检测和实例分割:https://miro.medium.com/max/1200/1*s9raSe9mLeSSuxE3API-ZA.gif你想做计算机视…

Windows PowerShell 2.0语言之字面类型系统

PowerShell语言允许通过一个字面类型(type Literals)来访问类型,它是用括号抬起的类型名,返回.NET底层的System.Type对象实例,如: PS C:\> [System.Int32]IsPublic IsSerial Name …

建立名称server

一、实验的目的:实现DNSserver功能,提供正向、反向解析二、实验环境装有Linux的Windows系统IP为192.168.6.3的虚拟机三、实验目的建立gr.org域的主名称server。解析:名称 IP 用途ns.gr.org 192.168.…

Java的JSON操作存储List到Redis

使用jackson和json-lib都可以 <dependency> <groupId>org.codehaus.jackson</groupId><artifactId>jackson-mapper-asl</artifactId><version>1.9.13</version></dependency><dependency><groupId>net.sf.json-li…

关注基于云的下一代应用开发

接受经济和信息化的视频专访专访的主页地址为&#xff1a;http://www.enicn.com/article/2010-08-20/0R064b52010.shtml我的其他视频&#xff0c;请参考土豆空间&#xff0c;地址为http://www.tudou.com/home/larryvmw。

确认了!MySQL 狠甩 Oracle 稳居 Top1!

01几乎所有程序员都会用到的 MySQL稳居 Top 1科技长河&#xff0c;顺之者昌&#xff0c;错失者亡。在2019年&#xff0c;CSDN面向具备超强计算力的数字化世界&#xff0c;我们进行了「大数据技术应用现状分析」&#xff0c;并发布了《2019-2020 年中国开发者调查报告》。发现&a…

[AWK]使用AWK进行分割字符串以及截取字符串

如何split当前的字符串&#xff0c;用$0&#xff0c;例如&#xff1a; cat num.2012032911 | awk {print $2} | awk {split($0,b,".");print b[2]} | cut -c 3- 获取第二列&#xff0c;例如第二列是com.sb3456.you那么在split当前的这个字符串获得sb3456,最后截取sb3…

SpringMVC集成Tiles布局引擎框架

Tiles布局框架&#xff0c; http://tiles.apache.org/ Spring已经对Tiles进行了集成。页头页尾公共模板页要靠这个&#xff0c;不然重复代码太多。 <dependency><groupId>org.apache.tiles</groupId><artifactId>tiles-servlet</artifactId><…

VC 文件操作(文件查找,打开/保存,读/写,复制/删除/重命名)

右击项目->属性->字符集&#xff1a;使用多字节字符集。这样可以使用char到CString的转化。char sRead[20] ""; CString strtest sRead; 大气象 //文件查找/*CString strFileTitle;CFileFind finder;BOOL bWorking finder.FindFile(_T("C:\*.sys"…

程序员会懂的冷笑话:各大编程语言的内心独白

作者 | Anupam Chugh译者 | 弯月&#xff0c;责编 | 夕颜出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09;软件工程领域鱼龙混杂。有些人乐不思蜀&#xff0c;而有些人则饱受打击。然而&#xff0c;构建软件的工作让每个人倍感压力&#xff0c;这点毋庸置疑。在本文…

swift集成alamofire的简单封装

import UIKit import Alamofire enum MethodType{ case GET case POST } class NetworkTool: NSObject { class func request(type : MethodType ,urlString : String , paramters: [String :Any]? nil,finishedCallback : escaping (_ result : Any) -> ()) { //判断是什…

Go后台项目架构思考与重构 | 深度长文

作者 | 腾讯云后台工程师黄雷编辑 | 唐小引来源 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09;引言本文首先介绍了架构的重要性&#xff0c;随后从一个实际项目的重构过程作为主线&#xff0c;逐步引出主流的架构设计思想以及其所解决的实际问题是什么。通过阅读本文&…

前途到底是网络工程还是程序设计

本人89年年底生的&#xff0c;现在快满21了&#xff0c;大二的时候过的国家网络工程师考试&#xff0c;并不是cisco的网络支持工程师&#xff0c;大三也就是现在&#xff0c;在学校花销太大&#xff0c;想自己赚点钱&#xff0c;于是在学校招聘会上应聘了一家通信公司&#xff…

FAIL - Deployed application at context path / but context failed to start

IDE报错&#xff1a;FAIL - Deployed application at context path / but context failed to start 编译通过&#xff0c;这个错误原因是很多地方被误用&#xff0c;导致Spring运行时不能解析某些Class导致&#xff0c; 例如&#xff1a;ModelAndView用错 public ModelAndView…

项目ITP(五) spring4.0 整合 Quartz 实现任务调度

2014-05-16 22:51 by Jeff Li 前言 系列文章&#xff1a;[传送门] 项目需求&#xff1a; 二维码推送到一体机上&#xff0c;给学生签到扫描用。然后须要的是 上课前20分钟 。幸好在帮带我的学长做 p2p 的时候。接触过。自然 quartz 是首选。所以我就配置了下&#xff0c;搞了个…

Spring security防止跨站请求伪造(CSRF防护)

因为使用了spring security 安全性框架 所以spring security 会自动拦截站点所有状态变化的请求&#xff08;非GET,HEAD,OPTIONS和TRACE的请求&#xff09;&#xff0c;防止跨站请求伪造&#xff08;CSRF防护&#xff09;&#xff0c;即防止其他网站或是程序POST等请求本站点。…

从Ops到NoOps,阿里文娱智能运维的关键:自动化应用容量管理

作者| 阿里文娱高级开发工程师 金呈编辑 | 夕颜来源 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09;概述1. 背景随着业务形态发展&#xff0c;更多的生产力集中到业务创新&#xff0c;这背后要求研发能力的不断升级。阿里文娱持续倾向用更加高效、稳定、低成本的方式支…

JAVA目录树(全功能),Java+ajax实现

我自己要的功能全实现了 一&#xff1a;双击选中项进行编辑 二&#xff1a;右键菜单功能(新增&#xff0c;删除&#xff0c;修改&#xff0c;自定义颜色什么的) 三&#xff1a;选中项进行拖动事件 四&#xff1a;输入项进入搜索(并自动选中结果项) 2011.03.14更新功能 &#xf…

SiteMesh介绍

1. SiteMesh简介 SiteMesh是由一个基于Web页面布局、装饰以及与现存Web应用整合的框架。它能帮助我们在由大量页面构成的项目中创建一致的页面布局和外观&#xff0c;如一致的导航条&#xff0c;一致的banner&#xff0c;一致的版权等等。它不仅仅能处理动态的内容&#xff0c;…

商汤提基于贪心超网络的One-Shot NAS,达到最新SOTA | CVPR 2020

出品 | AI科技大本营&#xff08;ID:rgznai100&#xff09;导读&#xff1a;在CVPR 2020上&#xff0c;商汤移动智能事业群-3DAR-身份认证与视频感知组提出了基于贪心超网络的One-Shot NAS方法&#xff0c;显著提升了超网络直接在大规模数据集上的搜索训练效率&#xff0c;并在…

多样化实现Windows phone 7本地数据访问5——深入Rapid Repository

上一篇多样化实现Windows Phone 7本地数据访问<4>——Rapid Repository 中初步的介绍Repid Repository作为Windows phone 7数据库存储原理Repid具有特点以及数据CRUD基本操作.Rapid Repository 是一个基于WP7开源的数据库. 上周联系Rapid 数据库的作者Sean McAlinden.有…

调试Tomcat源码

需要调试Tomcat源码其实很简单&#xff0c; 1.保持你的Tomcat安装文件和源码是版本一致 http://tomcat.apache.org/download-80.cgi 下载安装版和源码2个版本 2.建立Java自由格式项目 先在IDE里配置好Tomcat&#xff0c;这个不复杂。 然后新建一个项目&#xff0c;这个需要…

开源 免费 java CMS - FreeCMS1.9 全文检索

项目地址&#xff1a;http://code.google.com/p/freecms/ 全文检索 从FreeCMS 1.7開始支持 仅仅有创建过索引的对象才干被lucene类标签查询到。 信息类数据会在信息更新、审核、删除、还原操作时自己主动进行全文检索处理。1. 创建索引 从左側管理菜单点击创建索引进入。 您能够…

Spring Mock单元测试

针对post和get import org.junit.Before; import org.junit.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.test.web.servlet.MockMvc; import org.springframework.test.web.servlet.setup.MockMvcBuilders; import org.…

tar、gzip、gunzip、bzip2、zip、unzip

tar [参数] 文件或目录名 •参数&#xff1a; -c&#xff1a; 建立新的备份档文件。 -f&#xff1a; 对普通文件进行操作。这个参数通常是必选的。 -r&#xff1a; 向备份档文件追加文件。 -x&#xff1a; 从备份档文件中解出文件。 -t&#xff1a; …

港科大谢丹阳教授问诊未来,预测长远趋势与转折点

阳春三月&#xff0c;万象更新&#xff0c;2020年注定是不平凡的一年&#xff01;有激荡就会遇见变革&#xff0c;有挑战就会迎来机遇。今天总会过去&#xff0c;未来将会怎样&#xff1f;香港科大商学院内地办事处重磅推出全新升级的《袁老师访谈录》全新系列【问诊未来院长系…

数字签名与数字证书

先看一下百度百科对数字签名和数字证书的解释&#xff1a; 数字签名&#xff1a; 将报文按双方约定的HASH算法计算得到一个固定位数的报文摘要。在数学上保证&#xff1a;只要改动报文中任何一位&#xff0c;重新计算出的报文摘要值就会与原先的值不相符。这样就保证了报文的不…

Spring源码分析【3】-SpingWebInitializer的加载

SpingWebInitializer的加载 Spring基于注解的配置代码&#xff1a; public class SpingWebInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {Overrideprotected Class<?>[] getRootConfigClasses() {return new Class<?>[]{RootCon…