文档章节

最懒的程序员

jtn
 jtn
发布于 2015/04/13 15:08
字数 1819
阅读 3
收藏 0
首先下个定义,程序员是一群“懒人”。 看到此的定义,不要骂我啊,听我娓娓道来!

      曾经我在一个Python技术群,他们在吼哪个语言好,各说各有理,简直是火拼。最后我也吼了一句:一门语言或者工具的出现是有其背景的,它解决了一些问题(对程序员透明),同时也有一些问题没有解决。

      从程序语言的发展上来看这个问题,汇编->C/delphi->Java->Lisp,语言在发展着,我们可以看到在项目中用到的最多的是Java和一大堆脚本,当然在系统编程中还离不开C。在很多函数试编程语言中,将我们在编程中用到的最多的数据结构(表,映射等)写入了语言本身,在Python中我们不必去实现一个链表不用去管理那纠结的C语言指针问题。虽然STL为C++的快速开发奠定的基础,我们可以使用现成的那些类库,但其掌握和使用远不及Python快捷。这就是为什么有大牛去研发新语言的原因了,Go语言作为一个系统级编程语言也没有抛弃Java中的那些优良特性(GC),构程的出现让我们从繁琐的线程中解脱出来……所有的一切,单从语言上来看,它已经解决了很多问题,我们做开发是越来越简单,选择一门好语言往往事倍功半。

      在最初学编程的时候,我们最兴奋的就是实现了一种数据结构,实现了某一功能。从软件设计角度来说,这只是简单的算法层面的东西。在实际的软件设计过程中,软件的框架才是灵魂,良好的软件框架是将程序员解脱出来的法宝。每次看Java代码,特别是开源项目中的,都会神清气爽,我觉得它是把面向对象思想发挥的非常好的语言之一,以至于热爱C语言编程的我也开始享受面向接口编程的快感,编码过程行云流水的顺畅。在回头看看SSH框架,留给我们要做的并不是很多,简单实现几个接口就能实现非常复杂的功能,而作为企业级应用,我们则需要深入了解每个框架的实现原理,性能优势和瓶颈等等,并且针对其没有解决的问题,定制优化方案,而编码甚少。架构师总是能从模式中找出模式出来,使我们的设计变得简单明了。

      现在很少有人会用Windows SDK编程了,VC/.NET使用MVC模式让我们体验了控件直接拖的便捷,做深入开发我们当然要了解MFC的实现机制,使我们在编程中尽量的减少BUG,但实际编码过程确是简单明了的,MFC框架为我们做了太多的事情。编程中,在允许的情况下,什么好用用什么,在windows下.net做界面明显具有优势,干嘛还死死的爱着VC6.0不放;现成的库函数不用干嘛要自己写(现有的库足够你使用的时候[功能、性能],不要尝试自己去做,重复创造车轮的意义不大)。当然在实际项目中,需要考虑编码人员的学习成本,代码版本的融合等。

       现在写程序时,最先考虑的是是否有现成的,于是在liinux下最先想到的就是shell脚本和Python编程,几乎碰到的所有典型问题都能在Python中找到对应的库来解决,以至于百来行就能搞定一个程序,而最大的工作量却放在了对库函数的理解上。C语言的套接字编程太繁琐,而Python确只要两三行代码,其完备的封装让我们从复杂的API中解脱。喜欢Python的人都是爱上了它那丰富的库,网络编程、图像影音、文本解析、科学计算……比起用C语言完成的那臃肿的代码,Python更加的简单易于维护。很多同学做课程设计,都有一种考虑,“我是程序员,所以所有的代码要自己来写”,于是它们使用了更少的库,完全由自己去实现。比如一个下载程序,需要自己去解读HTTP/HTTPS/FTP协议,最后实现了一个小库,然后拿着和开源的wget一对比,Cookies好像不支持,断点续传好像又没做,于是乎这个设计还真变成了一个毕业设计了(公司里面称之为毕设水平)……我们要做的是对现有的东西进行改进,而不是设计出一个比现有的东西更烂的版本。

       知其然且知其所以然,是我们能好好利用工具的必备条件,知道原理后你将从中获益。使用一种语言,就要了解它的优势和劣势,就要明白它的实现机制,这样用起来才得心应手。有很多大牛设计出了优秀的框架、语言、库,使我们的开发变得容易,站在巨人的肩膀上,并且能够去解读巨人,那样会使我们更加强大。我是一个懒程序员,喜欢用别人的代码,喜欢拼凑别人的代码,但是在运用每一个模块的时候都去认真解读其原理。也许有一天你会成为大牛,可一步步走过来你不知道“偷懒”了多少次。我们可以创造,但不要抛弃那些已有的方法和思想,Hadoop中文件传输用的是SSH,没有任何理由让我们放弃使用它。

       在漫长的“偷懒”的岁月中,你认识的很多语言、框架、库、方法,似乎对他们都了如指掌。于是在设计的时候你对使用现成的东西会有更加深刻的认识,碰到问题的时候你可以大胆是说可以怎样怎样做,因为在某某框架中它就是这么做的,厚积而薄发,看得多了自然触类旁通。站在巨人的肩膀上学习,也要站在巨人的肩膀上创造。

        程序设计在一开始就是给懒人用的。现在的Oracle SQL引擎已经强大到优化的和非优化的查询能达到相同的效果,易语言让编程变得就想写作文……我相信编码会变得越来越简单,会有那么一天,仅需我们要在主函数中Load一个XML配置然后RUN一下就完成了我们这个设计。

        程序员是群“懒人”,无论是做事的目的还是做事的方法,可是你究竟“懒”到家了没呢?

       此文仅发表自己的愚见,有不妥之处请提出宝贵意见。

© 著作权归作者所有

jtn

jtn

粉丝 12
博文 879
码字总数 879609
作品 0
武汉
程序员
私信 提问
程序员懒惰之极的确凿证据

程序员很懒是出了名的,但很多书里都说程序员的懒是一种美德,但懒是应该有节制的,应该分场合。比如下面的这些懒惰的行为,相信没有人会欣赏他们的这种表现。 1、躺着编程。另外一个也是躺在...

oschina
2014/09/11
8K
53
程序员”偷“的不是懒,是高效!

程序员”偷“的不是懒,是高效! 2018-05-03 14:52编辑: yyuuzhu分类:程序人生来源:代码湾 程序员 招聘信息: C++工程师 Cocos2d-x游戏客户端开发 iOS开发工程师 京东招聘iOS开发工程师 ...

yyuuzhu
2018/05/03
0
0
程序员应该避免的5种代码注释

摘要: 我认识到一个非常有悖常理的现象,优秀的程序员都是即懒又傻的。因为懒,他才会写出各种各样的工具来替自己干活。因为懒,他才会想办法避免去写无聊重复的代码——因此避免的代码的冗余...

丨小丶牧灬
2015/08/21
222
1
只有程序员才能看懂的13件事!非程序员请勿点击!

专栏 | 九章算法 网址 | http://www.jiuzhang.com 当你开始学习编程时,一个新世界的大门就向你敞开了。不同于其他事情,编程创造性的融合了数学和工程科学。所以,有些事情只有我们程序员才...

九章算法
2018/05/20
0
0
【外刊IT评论】Python 程序员的进化

本文是从 The Evolution of a Python Programmer 这篇文章翻译而来。 不久前,在互联网上出现了一篇有趣的文章,讲的是对于同一个问题,不同层次的程序员编出的Phthon代码显示出了不同的风格...

红薯
2011/02/09
3.2K
13

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周六乱弹 —— 早上儿子问我他是怎么来的

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @凉小生 :#今日歌曲推荐# 少点戾气,愿你和这个世界温柔以待。中岛美嘉的单曲《僕が死のうと思ったのは (曾经我也想过一了百了)》 《僕が死の...

小小编辑
今天
1K
12
Excption与Error包结构,OOM 你遇到过哪些情况,SOF 你遇到过哪些情况

Throwable 是 Java 中所有错误与异常的超类,Throwable 包含两个子类,Error 与 Exception 。用于指示发生了异常情况。 Java 抛出的 Throwable 可以分成三种类型。 被检查异常(checked Exc...

Garphy
今天
22
0
计算机实现原理专题--二进制减法器(二)

在计算机实现原理专题--二进制减法器(一)中说明了基本原理,现准备说明如何来实现。 首先第一步255-b运算相当于对b进行按位取反,因此可将8个非门组成如下图的形式: 由于每次做减法时,我...

FAT_mt
昨天
17
0
好程序员大数据学习路线分享函数+map映射+元祖

好程序员大数据学习路线分享函数+map映射+元祖,大数据各个平台上的语言实现 hadoop 由java实现,2003年至今,三大块:数据处理,数据存储,数据计算 存储: hbase --> 数据成表 处理: hive --> 数...

好程序员官方
昨天
27
0
tabel 中含有复选框的列 数据理解

1、el-ui中实现某一列为复选框 实现多选非常简单: 手动添加一个el-table-column,设type属性为selction即可; 2、@selection-change事件:选项发生勾选状态变化时触发该事件 <el-table @sel...

everthing
昨天
11
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部