- 浏览: 2543312 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (676)
- linux运维 (157)
- php (65)
- mysql (78)
- nginx (27)
- apche (18)
- framework (6)
- windows (9)
- IDE工具 (23)
- struts2 (7)
- java (13)
- 移动互联网 (14)
- memcache redis (23)
- shell基础/命令/语法 (37)
- shell (50)
- puppet (4)
- C (11)
- python (9)
- 产品经理 (27)
- Sphinx (4)
- svn (12)
- 设计构建 (12)
- 项目管理 (44)
- SEO (1)
- 网站架构 (26)
- 审时度势 (42)
- 网络 (14)
- 激发事业[书&视频] (81)
- 其它 (12)
- 摄影 (8)
- android (21)
最新评论
-
zhongmin2012:
原文的书在哪里
数据库水平切分的实现原理解析---分库,分表,主从,集群,负载均衡器 -
renzhengzhi:
你好,请问个问题,从master同步数据到slave的时候,s ...
数据库水平切分的实现原理解析---分库,分表,主从,集群,负载均衡器 -
ibc789:
你好,看了你的文章,我想请教个问题, 我在用 redis的时候 ...
redis 的两种持久化方式及原理 -
iijjll:
写得非常好
数据库水平切分的实现原理解析---分库,分表,主从,集群,负载均衡器 -
iijjll:
写得非常好
数据库水平切分的实现原理解析---分库,分表,主从,集群,负载均衡器
“开发工作不仅仅只是写代码”这句话来自3EV网站的Dan Frost,他在一篇文章中阐述了开发过程中应该注意的一些事项。原文内容如下:
开发者是创造数字世界的主力军,他们不应该只扮演编程工具的角色,而应该对开发工作有更高的要求。那么,开发者可以从哪些方面提高开发能力呢?下面我就谈一下我的想法。我的建议可能不全面,但希望能够给你带来一些帮助。
1. 不要只盯着代码
如今人人都会写代码。很多业余爱好者也可以搭建网站、编写应用程序,编程已经不再稀奇。
随着网络的普及,许多人只需通过自学就会编程,但无论是自学者还是科班出身的开发者们都有一些同样的问题。我面试过一些有很高学历的应聘者,这些人大多获得了计算机学位、修过AI课程,拥有各色计算机等级证书,但他们仍然缺乏一些很重要的认识。
开发者们不应该只盯着代码,还需要注意开发工作中的两个方面——横向面和纵向面,比如,开发者应该懂得如何在团队里与别人协作,也应该清楚开发项目中系统层面的设计。
我认为与开发者合作的人也应该阅读这篇文章。因为如果你对开发了解越多,你可以在合作的时候对开发者提出更高的要求,比如让他们概括出讨论的问题,让他们提炼出系统的核心功能,用图片和实例展现应用实现的功能等。
2. 重要提醒
我想我有资格给开发者们挑毛病,因为我也是一名开发者,并且我了解开发者一些共有的问题,尽管他们对代码了如指掌,并且能按时完成工作。但他们仍然要注意两方面:更专业和更具人性化。
3. 网络影响
你只要搜索一下专业网站上面的开发技术就可以得到许多答案。比如框架知识、浏览器、CSS 和JS。搜索引擎会为你找出需要的框架、平台和应该关注的发展趋势。
而这些东西只是我们的工具,它们帮助我们构造项目,但是它们不是项目成功的关键。即使一个开发者了解系统中每个细节、掌握了所有API功能和新的CSS技术,他也可能会开发出毫无意义的产品。
开发者需要知道如何运用工具,同样也需要了解观众,也就是用户、团队和其他开发者。他们需要了解他们的工具对环境的适应程度(换句话说,产品的环境)以及工具的用处。
有一种开发者被描述为“wide and deep”,这种开发者懂得如何做好团队合作,同时掌握着开发的核心技术。如果他们加入项目,会大幅度提升项目进程,改变项目的步调,如果没有他们,非技术人员就会陷入一些琐碎细节中停滞不前。
4. 我们需要的
我最近正在列一份清单,上面罗列了建立网站、管理主机需要的所有东西,可以作为新人学习技术的基础指南。我们通过不断的探讨来修改清单的内容,希望这份清单能为新人建立一个好的开始。
我们给出的清单包含了大部分学习开发需要的知识。其中有经典常用的工具,也有一些新式工具。
在开发实践中,这些工具对推进项目的进展很有帮助,优秀开发者的工具积累应该比编程语言、CMS、框架这些知识更丰富。因为你需要调度、测试、CI、强化版本控制(团队合作,不是单靠你自己),同时你不能只了解几条指南,还需要了解项目的核心理念。
5. DevOps
这些辅助工具和技巧适用于DevOps模式(DevOps是一组过程、方法与系统的统称,用于促进开发、技术运营和质量保障部门之间的沟通、协作
与整合)。一直以来,DevOps模式中“运营”和“开发”的对决都难分高下。运营主要用来保持事物的运作。而开发用来研制新事物(往往使事物停止运
作)。这种矛盾导致了两个阵营争执不休。
假如开发者不能充分了解产品,他开发的功能往往与产品不匹配,这样写出来的代码也不适合产品。因为他们没有考虑过产品的使用环境,所以他们的编码忽视了与产品的调配,而将重心放在了功能的完善中。
要注意,这些细节都会导致可怕的延迟,而远程服务器管理的形式则会加剧这种延迟。
如果想成为优秀的开发者,就应该深入学习开发过程中所使用的所有工具。一旦开发者全部学会了这些工具的用法,将会有很大的进展。
持续部署和DevOps的相关实践已成为了一种标准,还没有对这些理念进行研究的开发者或公司已经落伍了。如果你跟不上发展的步伐,那么其他人总有一天会超过你。
网上有许多对“DevOps”概念的介绍,这种理念与PHP、MySQL或是Rails不一样。它是降低软件和工程协作风险的一系列方法。DevOps理念关注的问题主要在于调度、自动化和保持生产流水线更快更好的运行。
如果你使用了这种开发模式,你会发现无论是在其他部门还是其他公司之间,开发者们都能有良好的团队协作。如果他们通过API与第三方合作,他们会
研究对方可能出现的问题。但如果他们与服务器管理员合作,他们只会关心他们需要如何配置以及他们的软件如何安装在服务器上,这样做遗留的问题是很麻烦的。
6. 代码调错
Onion's 首席技术官Michael Greer在关于Web开发者必会技能的问题上给出了一个很好的答案
:
- “懒惰”:拒绝两次做同一件事情——写一个脚本或算法来实现
- “懦弱”:经常测试,担心过载和代码影响
- “鲁莽”:经常尝试新鲜事物
“懦弱”是注意细节的另一种说法。要知道,开发者的生活中百分之九十九是由调错和测试组成的。
开发者要了解的是,修复应用程序不仅要懂得挑错误代码,还需要出色的解决问题能力。比如,解决用户的发票不能下载的问题,不需要花费一天的时间来
开发生成PDF文件的功能,只要简单的将页面设置成可打印即可。有时一条链接比一个星期的编程更能解决问题,而一个只知道写代码的程序员很难想到这样的捷
径。
尽管目前有各种各样的测试工具,但测试对开发者来说依旧是一个奇妙的盲点。开发者应该学会使用单元测试、Selenium、负载测试和像Xhprof
这样的分析工具。还应该学会使用一些性能检测工具,比如NewRelic
,这些工具可以帮助你保持应用程序尽量少的占用内存。
调错也是开发中一个重点环节。因此,开发者们不仅要学会运用调错工具,还要知道如何为一个问题调错——我对Michael Greer的清单做一点关于调错的补充:
“急躁”:忽略那些无关紧要的问题,将时间用在解决真正的问题上
以上就是一些基础原则,开发者要学会抓住主要,忽略次要。真正的开发高手不看代码就能找出问题。不幸的是,许多人容易盲目的对一个无关紧要的问题推敲数十小时甚至好几天,解决一个问题也要用同样的方法试验十多次。
7. 用户需求
作为开发者,要懂得其他人的真正需求。你可以尽情享受编码带给自己的乐趣,但与此同时要清楚所有的代码都是有用的。
开发者们需要了解业务、操作和业务流程,这些会有对开发工作很有帮助。只有懂得这些,开发者才可以开发出符合用户要求的产品。一些开发者能显示出不同寻常的生产力,不仅由于他们快速的编码能力和渊博的堆栈知识,更大的原因是他们懂得用户真正的需求。
回到我最初的观点,现在的开发变得越来越容易,对于开发人员来说市场也变得更有竞争力了。想要更加出色,就要懂得业务需求、开发出让客户满意的产品。因此,开发者应该关注市场。
懂得数据如何随时间变化。以开发者的角度考虑,这些数据应随着目前流行的或即将流行的技术一起改变。这样看来,当你的客户提出一个新点子时,应该考虑到用户的实际需求,并且提前做好预算。(相反,最坏的情况是,开发者宣称他们的新技术可以解决所有问题。)
开发者们需要掌握很多方面——比如了解终端数据库的每个领域,如果数据发生改变,客户端会如何显示?有没有更好的方法解决问题?数据库管理员们往
往认为,外界对数据库的反映很糟糕,但其实是他们展现给了外界一个很糟糕的数据库。这个世界充满了混乱和不可思议的情况,数据库管理员们一定要学会如何应
对。
8. 绘图和书写
绘图是最直接的描述事物的途径。开发者们必须有能力将他们的构想在白板、纸上展现出来。
优秀的开发者要能通过纸上绘制原型图来表述清楚意图。如果开发者只会点头、空口谈论或是只会使用编辑器演示,那么很难取得别人的信任。
最好的代码从速成的绘画原型开始,多次失败可以让你成功的更快。
9. 享受乐趣
如果要你花费数十小时去解决一个问题,你会怎么对待?
学会享受这种过程——即使这只是一般的工作。作为开发者,最失败的态度就是对团队的工作毫无兴趣。遗憾的是这样的情况很普遍,发生这种情况往往是由于开发者们没有把自己视为团队的一员。(热忱的程序员会使自己“在工作中得到更多的乐趣”,你也可以试试)
Web和应用程序的开发仍然属于新兴领域,计算机技术的发展需要更多的高级开发者。开发者们不能满足于现状,需要尽快投入到高级开发行列中,提升开发工作的效率。
10. 保持锐气
这是我要说的最后一件重要的事情:
保持锐气,寻求竞争,无论到哪个团队都成为最挑剔的那个。
团队中最挑剔的、也最惹人讨厌的开发者往往是开发能力最强的角色,而其他人往往满足于现状。如果团队中缺乏这些高要求就很容易造成团队进度缓慢、竞争力下降。提高自身要求是一种很好的习惯。
开发者们还可以通过工作以外的项目获得更多的经验,并且学会总结在这些项目中得到的反馈和批评。现在得到的批评越多,将来的批评就越少。当有一天你开始对别人提出的要求进行更全面的考虑,那时你就成为了炙手可热的高级开发者了。
发表评论
-
成为名副其实的领导前得表现的像个领导
2014-12-12 16:22 1067如果你想要成为真正的领导,不要只期待那好的头衔和角落的办 ... -
打工比创业难一百倍
2014-12-02 15:21 877http://blog.sina.com.cn/s/blog ... -
好领导应该学会问的5个问题
2014-12-01 16:14 697作为一个好的领导者, ... -
职场冲突,非关人格
2014-08-19 16:04 795冲突无处不在,职场也不例外。人们往往把职场上的矛盾归咎于性格 ... -
在争论中获胜的最佳途径
2014-08-19 15:58 629我恐怕得说,你错了。 ... -
【哈佛商评】要想卖出颠覆性的产品,先得颠覆买家的思维模式
2014-08-19 15:55 624人人都知道这样的故事:一个团队开发出一种突破性的创新产品,但 ... -
同程旅游CEO吴志祥:“PC将死”推动同程旅游转型移动端
2014-08-14 11:40 818近日在一场主题为“新连接·跨边界”腾讯创业公开课上,同程旅游 ... -
Google发现好领导要有这项“无聊”的特质
2014-08-11 16:46 429http://www.36kr.com/p/214402. ... -
混互联网圈的5大潜规则!
2014-02-11 10:44 1156想在中国互联网业界混 ... -
决定你是否真正成年的20个标志
2013-06-19 18:15 1103什么标准可以衡量一 ... -
管理的七个常识
2013-05-29 19:29 932有关管理的各种问题都 ... -
态度决定高度
2013-05-21 16:28 1015看待事物的态度不同,得到的结论往往不同,你的生活也会过 ... -
微软12年老将 Philip Su 的离职信
2013-03-05 13:54 1097编者注:Philip Su在1998 ... -
新研究:成为企业家的五大必备技能
2013-01-10 17:41 904拥有具有企业思想 ... -
[转]从开发走向项目管理
2013-01-07 20:46 1368从开发走向项目管 ... -
创业公司老板管理常识
2012-12-18 17:31 910本文摘录并整理自 ... -
程序员成熟的标志
2012-12-07 17:59 1017沟通能力(写和说)。除非你可以让你 ... -
有关孤独
2012-11-30 11:38 977“虚无空间,永恒沉默,使我战栗 ”(帕斯卡尔 ... -
为什么你觉得越来越忙碌
2012-11-30 10:41 991戴维·艾伦(David Allen)从事作家、讲师、顾问工作 ... -
【推荐】反馈艺术:让别人知道你的真实想法!
2012-11-30 10:09 905在众多公司中管 ...
相关推荐
本指南旨在为Web开发者提供详尽的C#.NET Web开发知识,结合实际的源代码示例,帮助你提升开发技能并解决常见问题。 首先,C#.NET是微软公司推出的一种面向对象的编程语言,它基于.NET框架,为Web应用提供了强大的...
AppCan移动应用在线开发平台是一个非常优秀的选择,Web开发者可以快速开发移动应用,解决跨平台问题,提供代码重复使用率,解决平台多和适配难的问题,并且提供了大量的原生UI和模拟器引擎。同时,AppCan的扶持计划...
总而言之,Web开发者要提升能力,不仅需要深入学习编程技术,更需要对团队合作、项目设计、工具使用和产品理解等多方面进行综合提升。掌握DevOps、持续集成和持续部署等现代开发流程,以及深入理解市场和用户需求,...
《开发者突击:Java Web主流框架整合开发 第2版》是一本深入探讨Java Web开发技术的专著,旨在帮助开发者熟练掌握各种主流框架的整合应用。本书涵盖了Java Web开发中的核心概念、工具和技术,旨在提升读者在实际项目...
【开发者突击:Java Web主流框架整合开发源代码】是一份专为Java Web开发人员准备的实践教程,旨在帮助他们深入理解和应用J2EE、Struts、Hibernate和Spring四大主流框架进行整合开发。这个资源包包含了丰富的源代码...
为了进一步提升开发效率和工作体验,本文将介绍10款必备的Sublime Text插件,这些插件对于全栈开发者来说至关重要。 1. **Package Control**:Package Control 是 Sublime Text 的一个核心插件,它提供了方便快捷的...
HTML5是现代网页开发的核心,它为Web开发者提供了丰富的功能和强大的工具,使得创建交互性强、用户体验优秀的网站成为可能。本资源是一个专为HTML5网站技术开发者设计的响应式Web简历模板,它融合了Bootstrap框架,...
### 10个优秀的Web UI库框架 #### ITMill Toolkit **知识点:** - **开源性质:** ITMill Toolkit 是一款完全开源的 Web UI 框架,这意味着开发者可以自由地使用、修改并分发该框架。 - **目标:** 旨在为开发者...
在“Web开发者新兵训练营”中,您将踏上成为一名优秀Web开发者的旅程。这个训练营专注于JavaScript技术,这是构建现代Web应用的核心语言。JavaScript以其灵活性、强大的功能和广泛的应用范围,成为全球开发者首选的...
- **Web Components**:原生Web组件技术,允许开发者创建可复用的自定义元素。 - **Service Worker**:离线存储和后台运行的能力,为Web应用实现更优秀的离线体验和性能提升。 - **WebAssembly**:允许其他语言...
根据提供的文件信息,内容主要围绕Java Web编程实战宝典一书的推广和分享,其中也涉及到电子书资源提供...对于学习者来说,系统地掌握这些知识点,并在实践中不断应用和深化,是成为一名优秀Java Web开发者的必经之路。
这些资源对于Web开发者,特别是专注于前端开发和交互设计的人员来说,是非常宝贵的工具。通过EXT 3.0,开发者可以构建具有复杂用户界面的应用程序;DHTML技术可以增强网页的交互性和动态性;JScript则是实现这些动态...
它是一款基于Fabric + Vue3开发的一款开源Web图片编辑器,二次开发简单、扩展便捷,可帮助开发者快速构建一个面向非专业设计人员的图形编辑器。 项目以Fabric.js 为底层,使用Vue3框架和精致的View UI Plus组件库...
Web开发必须考虑安全性,包括防止SQL注入、XSS攻击等。C++库如OpenSSL可以用来处理加密通信,确保数据传输安全。此外,开发者还需要遵循最佳实践,如正确过滤用户输入,使用安全的编码方法。 7. 部署与运维 部署C++...
此外,源码中的错误处理、异常处理、安全性考虑等方面也是学习的重点,这些都是成为一个优秀Java Web开发者所必须掌握的技能。 对于初学者来说,可以从简单的Servlet和JSP实例入手,逐步理解HTTP请求和响应的工作...
【描述】: 文档列举了成为优秀Web开发人员必备的10项关键技能,包括正则表达式、基本SEO、JavaScript库、跨浏览器调试等,这些技能对于前端和全栈开发都至关重要。 【标签】: Web开发, 正则表达式, SEO, JavaScript...
总的来说,"01-Web登录与主界面模板"是一个宝贵的资源库,为Web开发者提供灵感和起点,帮助他们快速构建出符合现代Web标准的登录和主界面。通过深入研究和实践,开发者能够提升他们的技能,创造出更加优秀的Web应用...
10. **持续集成和测试**:对于一个优秀的类库,通常会有自动化测试和持续集成流程,确保代码质量和版本控制。 总的来说,这个项目为C#开发者提供了一种构建自定义HTTP服务器的工具,通过学习和使用它的源码,开发者...