已阅读5页,还剩22页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
永远的1.0版程序员修炼之道,目录,前言1:一些关于程序员的偏见,程序员就是软件工厂中的蓝领,高中生就能做了一个项目只要需求搞清楚了,编程序一个月就搞定了程序员没有前途,30岁之后还不转型就是失败随着软件自动化程度的提高,程序员将越来越不值钱,前言2:我司过往部分程序员的牛叉表现(1),某档案馆项目查询功能记录始终查不全,用户投诉,我司的一名系统架构师过去解决问题,结果发现该查询语句的for循环是这样写的:rs=stmt.executeQuery(strSQL);for(inti=0;i1000;i+).据说该程序员是为了解决查询的性能问题,前言2:我司过往部分程序员的牛叉表现(2),某程序员离职之后,接手的人去修改他留下的程序,结果发现程序中的变量是这样命名的:publiclongGetSumSize(DBOperationdbo)longabc=0;ResultSetcba=null;Statementbca=null;Stringacb=selectsumsizefromt_my_table;trybca=dbo.getConnection().createStatement();cba=bca.executeQuery(acb);while(cba.next()abc=cba.getLong(sumsize);,前言2:我司过往部分程序员的牛叉表现(3),最近一个项目中,在档案分类树上点击全宗节点之后,要等10秒钟以上才能显示所有100多个全宗,系统架构师对程序运行进行跟踪之后发现:,共计执行了765条SQL语句!,前言2:我司过往部分程序员的牛叉表现(4),一个程序员在开发一个档案鉴定模块,领导看了之后告诉他,需要增加一个鉴定方案的列表界面,过了几天,他提交了这样一个界面:,一个操作按钮也没有的奇葩页面!,前言3:看完上述杰作,你还会觉得编程序简单吗?,关键不在于程序员是否低级,而在于你是不是认为他低级;出色的程序员对于公司而言绝对是一笔宝贵的财富,对于个人而言也将获得巨大的成就感和丰厚的回报;我一直对于出色的程序员充满敬意,因为我不是一个出色的程序员;(我的程序人生)要成为出色的程序员除了天赋,还需要修炼,正如程序员修炼之道中所说:“编程是一种技艺,一种需要用心学习的技艺”。,目录,天赋:出色程序员的潜质,早期采纳者、快速改编者好奇批判的思考者关注问题的内在本质兴趣广泛,一专多能,信念:哥编的是程序,看到的是用户使用软件的场景,我们采集的是石头,却必须时刻展望未来的大教堂!中世纪欧洲采石工人的信条软件开发(构建)是工程学科,但并不排斥个人的技艺;在一个团队中有一个程序牛人是团队之福,若干年之后,他的技艺仍将受到尊重。,坚持:每天为提升你所拥有的技能而工作,一位参观英格兰伊顿公学的游客问那里的园丁,他是怎样让草坪变得如此完美的。“那很容易,”园丁回答,“你只要每天早晨拂去露水,隔天割一次草,每星期碾压一遍就行了。”“就是这些吗?”游客问。“就是这些,”园丁回答,“做上500年,您也将拥有一片漂亮的草坪。”每天持续地做出许多小改进,是日本制造业在生产率和质量方面取得长足进步的主要原因;也是一个出色的程序员必须经历的过程。,责任:我的源代码被猫吃了,负责的方法论-必须完成承诺的事情,确定前进方向-控制风险,引入更好的测试-应急方案,需要哪些资源,在所有的弱点中,最大的弱点就是害怕暴露弱点,Tips3提供各种选择,不找蹩脚的借口。,如果有人(比如银行柜员、汽车修理工、收银员)对你说蹩脚的借口,你会怎么反应?结果你会怎样想他们以及他们的公司?,态度:软件的熵,熵某个系统中“无序”的总量,熵过大导致“软件腐烂”(Softwarerot)决定软件熵的因素?-程序员对待细微差错的态度破窗户一栋楼中只要有一扇破窗户,存在那么一段时间不修理,就会给周围的居民带来一种废弃感,于是,乱涂乱画、乱倒垃圾、乱砸乱抢等情况不断出现,最终将导致整幢楼废弃的严重后果软件中的破窗户:低劣的设计、错误的决策、糟糕的代码不要成为第一个弄脏代码的人!发现破窗户立即修理或者加上标识,警醒:温水煮青蛙,大多数项目的拖延都是一天一天发生的,大多数软件灾难都是从微不足道的小事情开始的,系统一个特性一个特性的偏离其规范,一个又一个补丁被打到某段代码上,直到最初的代码一点没有留下,“破窗户”要求约束自己,“煮青蛙”则要求提醒团队成员:既要记住大图景,也要关注小变化,适度:足够好的软件,过犹不及;欲求更好,常把好事变糟;无视进度和成本,一味地给程序添加新特性,或者一次又一次的润饰代码,这不是有职业素养的做法;同时,许诺不能兑现的期限,为赶上最后期限而削减基本的工程内容,这同样不是有职业素养的做法;今天好用的软件比明天完美的软件更有价值。,交流:别让你的程序成为无人关心的孤儿,知道你想要说什么了解你的听众选择时机选择风格让文档美观让听众参与做倾听者回复他人,目录,DRY:DontRepeatYourself,拒绝重复!,可靠的开发软件,并让我们的软件更易于理解和维护的唯一途径,就是DRY原则:系统中的每一项知识都必须具有单一,无歧义,权威的表示;“Outofmemory”曾经是我们多少个项目的梦魇,至今仍有残联网站、宝山档案局、司法局OA等项目需要定时重启服务器,归根到底,这个问题的出现就是无限制的拷贝代码,连同未关闭数据库连接池的代码一起拷贝,随着软件“熵”的不断增大,最终无法收拾;四类重复:强加的重复:代码注释,代码与文档,接口与实现等;有意的重复:缓存,冗余设计等;无耐性的重复:诱惑太大,忍不住就想拷贝,祸根也同时被种下;开发者之间的重复:加强沟通交流,复用成熟构件。,正交性:强内聚、松耦合,如果两个程序对象中的一个发生变化,不会影响到另外一个,这两个对象就是正交的。在设计良好的系统中,数据层、逻辑层、控制层、表示层都是正交的,更换数据库不需要修改界面程序;保持正交性对于设计组件、构件和平台软件尤其重要,构件的开发必须做到:只要外部接口不变,针对构件的修改就不会影响到其他部分;正交系统有两大好处:提高生产率和降低风险。,可撤销性:如果你只有一个选择,没有比这更危险的事情了,只要鼠标掌握在我手里,我能保证我的系统不出错!但问题是鼠标迟早总要到用户手里的;世界上不存在不变的需求,唯一不变的只有变化;这就要求我们必须采用灵活的架构,编写灵活的程序;如果你不能让用户的需求不变,你唯一能做的只有让你的程序去适应变化。(可配置性、可移植性、可伸缩性),Demo系统:曳光弹,你的想法或许很有道理,你脑海中的构想或许代表了今后引领市场的产品,但很遗憾,你的用户和投资人可能听不懂你的描述;我们都希望有明确的用户需求,但现实情况往往是用户只有一个概念,没有具体的想法;这时候你就需要曳光弹!曳光代码比界面原型更加深入,前者一般是进化型的Demo系统,不但可以演示功能,而且也模拟了实际环境;后者一般是抛弃型的界面示意,主要用于用户交流。,代码生成器:领域语言,根据自己的需要定义一套团队成员看得懂的语言(称为领域语言),然后编写代码生成器,将其转换成计算机程序;这样做的好处显而易见:提高工作效率和代码规范性;我司的历任技术大拿都做过这件事情:郑国强、张二伟、王宝勤、胡东平,但始终没有形成公司级的统一技术框架和代码生成器;新任技术大拿杨木江正在努力中,言出必践:开发时间估算,最有效方法问已经做过类似开发的人,结合自己的能力确定开发范围和约束条件建立模型并分解组件分析相似组件所用时间预留20%额外时间“等会儿回答”一旦承诺,必须做到(把信送给加西亚),目录,如果程序只有1.0版,需要多少年
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 薄膜加热器件制造工岗前安全行为考核试卷含答案
- 2026广西北海市产业投资有限责任公司招聘4人备考题库及1套参考答案详解
- 中移动金融科技有限公司2026春季园招聘备考题库及答案详解【新】
- 2026国家统计局琼中调查队招聘公益性岗位人员1人备考题库附完整答案详解【夺冠系列】
- 2026浙江金华市浦江县教育系统招聘教师20人备考题库及答案详解【必刷】
- 2026云南白药集团春季校园招聘备考题库及参考答案详解【模拟题】
- 2026内蒙古医科大学附属医院招聘合同制(编外)急需紧缺岗位工作人员3人备考题库附完整答案详解【典优】
- 2026湖南长沙市芙蓉区招聘中小学教师41人备考题库及答案详解【考点梳理】
- 实验动物养殖员岗前技能考核试卷含答案
- 新能源汽车维修工操作评估竞赛考核试卷含答案
- (完整版)新概念英语第一册单词表(打印版)
- 2024年湖南省高考政治试卷(真题+答案)
- 2023-2024学年四年级下册科学青岛版第六单元《电的本领》单元教学设计(教学设计)
- 锅炉设备检修技术规程
- 中国国航国际化战略分析
- 上海交通大学开题报告模板
- 汽车制造质量管理与控制
- 设立供应链管理服务公司可行性研究报告
- 学校信教情况排查报告范文(通用4篇)
- GB/T 15114-2023铝合金压铸件
- 目标成本动态成本培训
评论
0/150
提交评论