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

程序员效率低下的35个坏习惯

优秀程序员与平庸程序员的最终差别其实是习惯,避开那些让自己低效的坏习惯是程序员让自己变优秀的有效途径。

1
.总是说“一会弄好”,但从来不兑现。(缺乏任务管理和时间管理能力)
2
坚持所谓的高效、优雅的“一行代码流”,事实上,可读性才是最重要的,聪明是第二位的。
3
无意义的优化。(类似网页大小之类的优化最后再做)
4
不注重代码样式和风格的严谨。
5
使用无意义的命名。
6
忽略经过验证的最佳实践(例如代码审核、TDD、QA、自动化部署等,推荐阅读软件开发必读经典著作:Making Software:What Really Works,and Why We Believe It)。
7
给自己埋雷。(例如使用不会报错的库或者忽略例外)
8
过早放弃计划。
9
坚持一个无效的计划。
10
总是单打独斗。(必须强迫自己与团队分享进度和想法,避免错觉,提高效率)
11
拒绝书写糟糕的代码。(日程紧迫的时候可以写一些“糟糕”的代码,这是程序员的能力而不是bug,当然,有时间的时候一定要回头偿还“技术债”)
12
抱怨他人。
13
不与团队分享所学。
14
向主管/客户反馈的速度过慢。
15
不会充分利用Google。
16
看重个人编码风格。
17
带着个人情绪看待他人对自己代码的评论和注释。
18
不懂优化策略。
19
使用错误的工具。
20
不追求对开发工具和IDE的精熟。
21
忽略报错消息。
22
迷恋称手的开发工具。(不同类型的开发任务需要匹配对应的最佳开发工具,例如Sublime适合动态语言,而Eclipse适合Java,如果你喜欢vim或emacs,并不意味着能用这些工具干所有事)
23
不注重代码中赋值的可配置性。(不养成把代码中的活动部件分离出来的习惯,会导致技术债暴增)
24
喜欢重新发明车轮。
25
盲目地剪切/粘贴代码。
26
应付差事,不求甚解,不花时间搞清楚项目运作的机理。
27
对自己写的代码过度自信。
28
不去考虑每一个设计、方案或者代码库的“副作用”。(一个成功的用例并不意味着“万灵药”)
29
在一个地方卡住了但坚持不呼救。

30
只去写能通过的测试。
31
重要项目中忽略性能测试。
32
不去核实代码是否真的可用,没有养成开发中及时快速测试的习惯。
33
重大改动延迟推送。
34
抛弃和逃避自己的代码。
35
忽略其他非功能性需求。(例如安全和性能,准备一份这方面的清单,忽略这些会毁掉你的所有成果)

相关文章:

PHP处理Oracle的CLOB

1. 写入数据在使用PDO的预处理方法时,如果使用bindParam()等而不指定字段的数据类型或使用execute(),PDO都会默认为string类型,并且限定一个默认长度 所以在存clob类型字段时必须使用bindParam()或bindValue()等,并指定字符…

c# 元组Tuple

Tuple类型像一个口袋,在出门前可以把所需的任何东西一股脑地放在里面。您可以将钥匙、驾驶证、便笺簿和钢笔放在口袋里,您的口袋是存放各种东西的收集箱。C# 4.0引入的一个新特性 Tuple类型与口袋类似,它可以存放不同类型的对象。CodeProject…

KVM之安装虚拟机

一、KVM安装:环境要求:1、如果是物理服务器,需要在BIOS中打开虚拟化VirtualizationTechnology一般的服务器默认是打开这个功能的。 2、如果是用VMware Workstation做实验,建立的虚拟机的CPU要勾选虚拟化功能,这样虚拟机…

使用 Strace 调试工具

strace是Linux环境下的一款程序调试工具,用来监察一个应用程序所使用的系统呼叫及它所接收的系统信息。 strace是一个有用的小工具,它可以通过跟踪系统调用来让你知道一个程序在后台所做的事情。Strace是一个基础的调试工具,在大多数Linux系 …

java——网络知识积累

1.获得局域网的所有主机ip地址 ping ip 等待每次回复的超时时间: -w 280 要发送的回显请求数:-n 1 Process processRuntime.getRuntime().exec("ping "); process.getInputStream()----InputStreamReader()----BufferReader in…

卸载v吧v字典序

数组-136. 只出现一次的数字题目描述题目样例Java方法:位运算算法思路代码复杂度题目描述 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 题目样例 示例1: 输入: […

《JavaScript高级程序设计(第3版)》教程大纲

词条 《JavaScript高级程序设计》是2006年人民邮电出版社出版的图书,作者是(美)(Nicholas C.Zakas)扎卡斯。本书适合有一定编程经验的开发人员阅读,也可作为高校相关专业课程的教材。 献给搬砖人士,求职人士很不错的基础扎实笔记 前四章 js诞…

鸡肋的PHP单例模式

单例模式的要点有三个&#xff1a;一是某个类只能有一个实例&#xff1b;二是它必须自行创建这个实例&#xff1b;三是它必须自行向整个系统提供这个实例。<?php /* 单例模式举例,其要点如下: * * 1. $_instance 必须声明为静态的私有变量 * 2. 构造函数和克隆函数必须声明…

彻底理解js中this

相关博文&#xff1a;http://blog.csdn.net/libin_1/article/details/49996815彻底理解js中this的指向&#xff0c;不必硬背。 首先必须要说的是&#xff0c;this的指向在函数定义的时候是确定不了的&#xff0c;只有函数执行的时候才能确定this到底指向谁&#xff0c;实际上t…

cvsdfgdfdf

数组-136. 只出现一次的数字题目描述题目样例Java方法&#xff1a;位运算算法思路代码复杂度题目描述 给定一个非空整数数组&#xff0c;除了某个元素只出现一次以外&#xff0c;其余每个元素均出现两次。找出那个只出现了一次的元素。 题目样例 示例1&#xff1a; 输入: […

怎样操作vue.js使用3DES加密

如何在VUE-CLI手脚架建立的工程中使用3des加密&#xff1a; 1npm install crypto-js --save-dev1import CryptoJS from crypto-js123456789101112131415161718192021222324252627//DES加密 Pkcs7填充方式encryptByDES(message, key){const keyHex CryptoJS.enc.Utf8.parse(key…

PHP 函数 ignore_user_abort定时执行任务的实现

ignore_user_abort 设置与客户机断开是否会终止脚本的执行。本函数返回 user-abort 设置的之前的值&#xff08;一个布尔值&#xff09;。int ignore_user_abort ([ string $value ] )参数描述setting可选。如果设置为 true&#xff0c;则忽略与用户的断开&#xff0c;如果设置…

echarts树图节点垂直间距_矿棉板吊顶标准工艺节点

材料探秘materials材料版块【矿棉板吊顶标准工艺】 材料探秘关键词&#xff1a;#吊杆与设备#吊顶龙骨#矿棉板#1 吊杆与设备相遇增加过桥节点图 ■ 本工艺管控要点◎ 顶面的水、电、风专业强制定位、预留、预埋必须全部完成&#xff0c;且电气穿线、测试完成并合格&#xf…

队列 queue

STL: 队列中pop完成的不是取出最顶端的元素,而是取出最低端的元素.也就是说最初放入的元素能够最先被取出(这种行为被叫做FIFO:First In First Out,即先进先出). queue:front 是用来访问最底端数据的函数. 1 #include <queue>2 #include <cstdio>3 uisng namespace…

Android精通:View与ViewGroup,LinearLayout线性布局,RelativeLayout相对布局,ListView列表组件...

UI的描述 对于Android应用程序中&#xff0c;所有用户界面元素都是由View和ViewGroup对象构建的。View是绘制在屏幕上能与用户进行交互的一个对象。而对于ViewGroup来说&#xff0c;则是一个用于存放其他View和ViewGroup对象的布局容器&#xff01; Android为我们提供了View和V…

redis删除过期key的算法_面试官别再问我Redis内存满了该怎么办了

概述Redis的文章&#xff0c;我之前写过一篇关于「Redis的缓存的三大问题」&#xff0c;累计阅读也快800了&#xff0c;对于还只有3k左右的粉丝量&#xff0c;能够达到这个阅读量&#xff0c;已经是比较难了。这说明那篇文章写的还过得去&#xff0c;收到很多人的阅读肯定&…

开源监控解决方案Nagios+Cacti+PNP4Nagios+NConf+NDOUtils+Nagvis(六)ndoutils安装

前面的文章已经说过&#xff0c;NDOUtils必须使用2.0的版本才支持nagios4x&#xff0c;比较幸运的是该版本2014年就已经发布。一.安装#tar -axf ndoutils-2.0.0.tar.gz -C /usr/local/src/#cd /usr/local/src/ndoutils-2.0.0#./configure --prefix/usr/local/nagios LDFLAGS-L/…

网络安全技术分析:DDoS的攻与防

根据墨者安全相关数据研究发现&#xff0c;从今年年初开始&#xff0c;DDoS功击的数量相比去年几乎是翻倍增长&#xff0c;特别是游戏、金融、政企、电商、医疗行业&#xff0c;更是DDoS功击的重灾区&#xff0c;很多企业是闻“D”色变。DDos(Distributed Denial of Service),中…

pcl求平面法向量_线性代数6——平面方程与矩阵

线性方程的几何意义二元线性方程该方程是一个二元线性方程组&#xff0c;包含两个方程&#xff0c;每个方程是一条直线&#xff0c;两条直线的交点就是该方程有唯一解&#xff0c;这就是二元线性方程的几何意义。平面方程空间内不在同一直线上的三点构成一个平面&#xff0c;平…

php 类中的各种拦截器

1、__get( $property ) 访问未定义的属性时调用class lanjie {function __get($name){echo $name." property not found! ";} }$ob new lanjie(); echo $ob->g; 当我们调用对象$ob未定义的属性g时&#xff0c;调用拦截器__get()方法&#xff0c;输出“g property…

[Vue CLI 3] 源码之 webpack-chain

我们看一下 webpack-chain 到底做什么? Use a chaining API to generate and simplify the modification of Webpack version 2-4 configurations.熟悉 cli-plugin-babel、cli-plugin-eslint 源码的话&#xff0c;你会时常看到它。 如何使用呢&#xff1f; 1、加载它 const Co…

openstack页面自定义插件使用详解(django、ajax、post)(zTree为例)

2019独角兽企业重金招聘Python工程师标准>>> 感谢朋友支持本博客&#xff0c;欢迎共同探讨交流&#xff0c;由于能力和时间有限&#xff0c;错误之处在所难免&#xff0c;欢迎指正&#xff01; 如有转载&#xff0c;请保留源作者博客信息。 Better Me的博客&#xf…

lazyload.js实现图片异步延迟加载

所谓图片异步加载&#xff0c;意思是不用一次把图片全部加载完&#xff0c;你可以叫它延迟加载&#xff0c;缓冲加载都行。 看看你有没有这种需求&#xff1a;某篇文章图片很多&#xff0c;如果在载入文章时就载入所有图片&#xff0c;无疑会延缓载入速度&#xff0c;让用户等…

postfilter中文什么意思_Filterpost请求中文字符编码的过滤器 --学习笔记

java代码&#xff1a;import java.io.IOException;import java.io.PrintWriter;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class Lo…

错误:You can't specify target table 'xxx' for update in FROM clause的解决

今天在MySQL数据库删除重复数据的时候遇到了一个问题。如下脚本&#xff1a; DELETE FROM tempA WHERE tid IN ( SELECT MAX(tid) AS tid FROM tempA GROUP BY name,age ) 会出现报错信息&#xff1a; You cant specify target table tempA for update in FROM clause 大致意思…

HTTPS的七个神话(译文)

原文网址&#xff1a;http://blog.httpwatch.com/2011/01/28/top-7-myths-about-https/ 译文地址&#xff1a;http://www.ruanyifeng.com/blog/2011/02/seven_myths_about_https.html 误解七&#xff1a;HTTPS无法缓存 许多人以为&#xff0c;出于安全考虑&#xff0c;浏览器不…

蓝牙写入数据库_蓝牙 数据写入 简单易懂版(适合没写过蓝牙的看)

//字符串转arrbufferfunction string2buffer(str) {// 首先将字符串转为16进制let val ""for (let i 0; i < str.length; i) {if (val ) {val str.charCodeAt(i).toString(16)} else {val , str.charCodeAt(i).toString(16)}}// 将16进制转化为ArrayBufferr…

Educational Codeforces Round 9 F. Magic Matrix 最小生成树

F. Magic Matrix题目连接&#xff1a; http://www.codeforces.com/contest/632/problem/F Description Youre given a matrix A of size n  n. Lets call the matrix with nonnegative elements magic if it is symmetric (so aij  aji), aii  0 and aij ≤ max(aik, …

【SqlServer】SqlServer中的更新锁(UPDLOCK)

UPDLOCK.UPDLOCK 的优点是允许您读取数据&#xff08;不阻塞其它事务&#xff09;并在以后更新数据&#xff0c;同时确保自从上次读取数据后数据没有被更改。当我们用UPDLOCK来读取记录时可以对取到的记录加上更新锁&#xff0c;从而加上锁的记录在其它的线程中是不能更改的只能…

Oracle CDC (Change Data Capture)更新数据捕获——概述

Change Data Capture能高效识别并捕获数据的插入、修改和删除&#xff0c;使更新数据供个人或应用使用。 CDC从oracle 9i开始引入&#xff0c;//TODO 在11G R2之后的版本里将取消支持&#xff0c;被Oracle GoldenGate取代。 CDC的一些概念 CDC有同步和异步两种模式&#xff0c;…