我的10个开发原则

敏捷开发系列学习总结(7)——敏捷开发的10大指导原则 据Gartner的资料表明,一众CIO现在有压力,需要支持快速发展的数字业务发展,而同时又遇上传统项目和开发方法不能与时俱进的难题。企业现在大量采用敏捷开发,以加快项目进度及更好地显示其价值。 Gartner应用架构、开发和整合峰会下个月在悉尼召开。Gartner公司研究总监NathanWilson在会议前夕表示,敏捷方法如果使用得当,是有能力改变IT业务关系以及对IT价值交付产生重大的正面 阅读详情
在从事软件开发若干年之后,我已经对“软件应该如何设计”有些心得。实际上,我有了这样一个结论:所有的事情最后都浓缩成10个原则,如果我们很好地执行这些原则,任何软件开发都应该会取得成功。

   0. 客户至上

  “如果我们没有关注客户……其他人将会取代我们。”

  从客户的角度出发,客户首先会把焦点集中在产品开发的真正价值,其他方面(例如概念、需求、技术等等)在项目中是次要的。

  不关注客户,就是 程序员常犯的5个非技术性错误的其中之一。

   1. 代码质量
  
  即使代码质量是一些非常主观性的东西,(甚至有人说所有的代码都有问题),它却影响着很多重要的方面,比如:如何去维护应用程序,或者如何去带一个新手程序员。

  在我看来,代码质量的指标在于:简单性、可读性、健壮性和可测试性。其他特性,例如外观或者可扩展性,如果没有要求的话,在你的应用程序中可以灵活设计。

   2. 授权

  软件开发过程中最重要的资源是人力,而非技术。人力决定产品的好坏,但他们需要得到授权。

  授权是一个鼓励开发者积极做事和制定决策的过程。一些高效的机构的授权体现为:指导\配合或者委派。 不知你是否也有过和Derek相同的经历,每隔5分钟就有员工跑过来向他请示这个和那个问题?如果有,可以通过《 管理者的困境:放权或者崩溃》这篇文章看看Derek如何解决这个问题的。

   3. 持续集成

  从我的经验看来,集成是软件开发的主要问题。在项目后期或者大型功能模块完成后,等着集成是一个令人纠结的过程。

  持续的集成是保证每部分委托的代码在系统中自动集成的过程。请记住,持续集成优先于持续编译。

  Martin Fowler的 这篇文章是网上关于持续集成的最优秀的参考文献之一。

   4. 迭代

  迭代提供了持续的反馈信息。持续反馈很重要,因为它降低了软件开发的不稳定性。

  虽然迭代经常与敏捷方法有关系,不过有其他方法例如RUP,也使用迭代,他们却不是敏捷方法家族中的一员,记住这一点很重要。

   5. 自动化测试

  允许重构和递归,给开发者带来自信,如果得到有效贯彻的话,会提高最终产品的正确性。对于自动化测试,你可以考虑与测试有关的一些情况和如何编写一个良好测试组件的建议。

   6. 重构

  不管你如何关注编码,在你迈出第一步的时候,你将会走错路。重构是我们用来保持代码修改的做法,以满足系统说明的必要更迭。

   7. 非正式架构

  前期的大型设计,除非你是NASA,能够把项目50-60%的时间花在这上面,否则这完全是浪费,毫无准备去编码情形也一样。非正式架构是一种折衷解决方案,它在项目发展的基础上进行讨论,并存留于文件,留言板或者类似的物件之中。

   8. 沟通

  软件开发只与沟通有关。客户向软件开发团队阐述他想要达到的目标,以便于软件开发团队能通过编码形式向计算机解释。

   9. 避免浪费

  浪费是软件开发过程的主要生产力杀手之一。毫无必要的会议、毫无必要的要求、毫无必要的过程和毫无必要的文件成为最常见和最危险的浪费。
10位顶级PHP大师的开发原则 发现我电脑上保留的,不要资源分,给大家分享 立即下载

相关推荐

EOS5开发的方法论

这是一个介绍EOS5开发的方法论。感觉还行吧。

简述七大开发原则

设计模式的七大原则 1. 单一职责原则 概念:一个类只负责一个职责。 若一个类负责两个职责,当其中一个职责变更时,可能造成另一各职责执行错误(比如,在dao中,若是又对user表进行CRUD,并且同时又对order表进行CRUD,可能造成数据错误)。 优点: 2. 接口隔离原则 概念:客户端不应该依赖他不需要的接口。 也就是说一个类对另一个类的依赖应该建立在最小接口上。 减少依赖,通过接口隔离...

raojiaxing_的博客 2050

免费升级哨兵2号分辨率!用SRCNN深度学习模型实现10米→2.5米超分重建

本文详细介绍了如何利用SRCNN深度学习模型,将哨兵2号遥感影像的分辨率从10米免费提升至2.5米。文章提供了从数据准备、模型训练到部署应用的全流程实战指南,旨在通过AI应用技术,为农业监测、城市规划等领域提供更高精度的影像数据支持。

coffee的博客 523

开发十大原则

    这十条开发指导原则,最基本的思想是 “高效,高质量的写出满足业务功能目标的代码。”每人可以结合当前项目的实际情况应用,可以补充,修订删改进一步总结提炼。     1.先开发简单明确的功能模块,后开发复杂的功能模块。     2.先做简单的子功能,再做稍微复杂的子功能,后开发有难度逻辑复杂的子功能。     3.以满足业务功能要求为主要目标,不保留无用的垃圾代码。写出高质量满足功能要求的代码,是建立在对业务需求理解,明确业务目标,逻辑思路清晰的结果。有时往往需要反复多次修改精益求精才能最后实现客

boyone2009的专栏 1178

ST-LINK调试原理与STM32硬件连接实战指南

嵌入式调试器是连接开发环境与物理MCU的核心枢纽,其本质是基于ARM CoreSight架构的实时硬件观测与控制接口。它通过JTAG或SWD协议访问内核寄存器、内存及外设,实现断点、单步、内存监视等深度调试能力,远超简单程序烧录功能。ST-LINK作为主流ARM Cortex-M调试器,支持SWD(2线)与JTAG(多线)双模式,在电平匹配、复位控制、引脚复用规避等硬件层面临关键工程约束。掌握VREF参考电压配置、nSRST硬复位接线、调试引脚隔离策略及Keil MDK调试会话配置,是保障STM32稳定联机

weixin_42596214的博客 312

海思Hi3516CV610--SPI NAND Flash移植实战:从手册到驱动的完整适配

本文详细介绍了海思Hi3516CV610芯片上SPI NAND Flash的移植实战,包括从手册解读到驱动适配的完整流程。以GD5F2GM7UEYIGR Flash为例,重点讲解了关键参数确认、模式选择、时序配置以及U-Boot和Linux内核驱动的具体实现步骤,帮助开发者快速完成Flash移植工作。

weixin_29158413的博客 447

开发原则

1、模块原则:尽量使用简洁的接口套和简单的组件。2、清晰原则:清晰胜于取巧。3、组合原则:设计时,要考虑连接组合。4、分离原则:策略同机制分离,接口同引擎分离。5、简洁原则:设计尽可能简洁,复杂度能低则低。6、吝啬原则:除非别无他法,否则,不要去编写庞大的程序。7、透明原则:设计要透明可见,以便审查和调试。8、健壮原则:健壮的程序源于透明与简洁。9、表示(法)原则:把知识叠入数据,以求逻辑结构质朴...

weixin_34256074的博客 477

【HALCON+C#实战】3D点云测量系统开发全攻略:从源码解析到工业应用

本文详细介绍了基于HALCON和C#开发3D点云测量系统的全流程,从环境搭建、核心算法实现到工业应用优化。通过源码解析和实战技巧,帮助开发者解决点云数据处理、几何测量及系统集成中的常见问题,提升工业检测的精度与效率。

brown的博客 210

10个开发者原则,助你提升编码技能(让你爱上重构!)

让我们面对现实吧:写代码很容易。但写代码?嗯,这是个真正的挑战。无论你是经验丰富的开发者还是刚入门的新手,总有改进自己技艺的空间。想象一下,写出的代码不仅能运行,还干净、可维护,甚至**——敢说吗——有趣地重新审阅**。听起来太美好了吗?继续读下去,因为今天,我将分享,它们将把你从一个程序员变成代码工匠(或女工匠!别担心,我会加入一些幽默让内容轻松些。毕竟,编码应该是愉快的,对吧?

qq_28791753的博客 1871

从零到一:Zephyr RTOS 在 STM32F4 上的移植与实战(含设备树配置详解)

本文详细介绍了如何从零开始将Zephyr RTOS移植到STM32F4开发板,涵盖开发环境搭建、硬件抽象层分析、设备树配置及系统裁剪等关键步骤。通过实战案例,帮助开发者掌握Zephyr RTOS在嵌入式设备中的应用,提升物联网边缘计算设备的开发效率。

weixin_26976635的博客 591

2018南京大学计算机夏令营机试

1. Count number of binary strings without consecutive 1’s Given a positive integer n(3≤n≤90), count all possible distinct binary strings of length n such that there are no consecutive 1's . Examples...

climber16的博客 1万+

[观点]我的10个开发原则

[观点]我的10个开发原则 2011-08-15 10:17 | 2832次阅读 | 来源:webarya.wordpress.com 【已有3条评论】发表评论 关键词:开发者 | 作者:Alberto Gutierrez | 收藏这篇资讯 导读:本文译自意大利资深

SevenColorFish的专栏 937

一种白平衡增益计算中白点权重计算简易实现方式

一种白平衡白点距离权重简易实现方式

大熊 384

10个对开发者非常有用的设计原则

转自:http://www.codeceo.com/article/10-tips-for-designer.html 要点:我会尽力解释Jakob Nielsen的10设计启发式算法。我会用例子告诉你,作为一名开发人员,如何使你的产品以及你产品背后的代码更加有用。 为什么我要在乎这些? 开发者也是设计师,他们只是使用不同的媒介。因此,你知道如何设计系统也是你的最终产

shellching的专栏 676

RK3568平台(平台总线篇)Gsensor STK8BA50

Gsensor,即加速度传感器(Accelerometer),是一种用于测量物体加速度的电子设备。以下是其关键点:1.工作原理MEMS技术:大多数Gsensor基于微机电系统(MEMS),通过检测质量块的位移来测量加速度。压电效应:部分Gsensor利用压电材料在受力时产生电压的特性来测量加速度。2.主要功能加速度测量:测量物体在X、Y、Z三个方向上的加速度。倾斜检测:通过重力加速度判断设备的倾斜角度。运动检测:识别设备的运动状态,如静止、移动、晃动等。震动检测:感知设备的震动或冲击。

weixin_49303682的博客 480

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

android app开发UI的10dp原则

本文仅供搜索。

126

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

软件开发10个原则

    个人体会,欢迎随意转载和使用,版权不究:)    1、一定要有开发规范。    国内小软件公司,往往是程序员每个人自己一套规范,一个系统中,编码规则、命名规则经常是五花八门,任何软件公司都应该有一套标准的开发规范。    2、减少重复。     软件的一个作用就是用来处理重复性质的工作的,所以,如果工作中遇到重复性质的工作,就要考虑用软件来实现。    3、不要重复

boiney的专栏 537

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

10 位顶级 PHP 大师的开发原则

10 位顶级 PHP 大师的开发原则 ruby_chen发布于: 2013年03月28日 (61评) 分享到: 收藏+139 #深圳# 6月10日 亚马逊AWSome Day云计算免费培训报名中 在WEB开发世界里,PHP是最流行的语言之一,从PHP里,你能够很容易的找到你所需的脚本,遗憾的是,很少人会去用“最佳做法”去写一个PHP程序。这...

weixin_30783629的博客 107
上一篇: 管理者的困境:放权或者崩溃
下一篇: 职业规划与职业选择
Qicz
博客等级 码龄16年 56粉丝 122原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值