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

python采集keep运动数据 我国2009年确立“全民健身日”;2012年,“广泛开展全民健身运动”写入十八大报告;到2014年上升为国家战略,全民健身的分量越来越重。推动全民健身和全民健康深度融合,通过全民健身实现全民健康。 全民健身运动在我国越来越普及,每天清晨和傍晚时分,城市的广场上、公园里,到处是运动健身的人们,跑步、打球、跳舞、游泳、打太极拳等运动项目十分丰富,人们在运动中获得越来越多的幸福感。 随之诞生出了很多运动app,例如keep,咪咕,微信等,大家可以通过app随时记录自己的运动数据,特别是对于很多的减肥人群来说,通过 阅读详情

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

2011-08-15 10:17 | 2832次阅读 | 来源:webarya.wordpress.com 【已有3条评论】发表评论

关键词:开发者 | 作者:Alberto Gutierrez | 收藏这篇资讯

导读:本文译自意大利资深程序员Alberto Gutierrez的博文《My ten development principles》,译文来自伯乐在线《我的10个开发原则》。内容如下:

在从事软件开发若干年之后,我已经对“软件应该如何设计”有些心得。实际上,我有了这样一个结论:所有的事情最后都浓缩成10个原则,如果我们很好地执行这些原则,任何软件开发都应该会取得成功。

1.客户至上

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

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

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

2.代码质量

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

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

3.授权

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

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

4.持续集成

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

持续的集成是保证每部分委托的代码在系统中自动集成的过程。请记住,持续集成优先于持续编译。Martin Fowler的这篇文章是网上关于持续集成的最优秀的参考文献之一。

5.迭代

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

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

6.自动化测试

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

7.重构

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

8.非正式架构

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

9.沟通

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

10.避免浪费

浪费是软件开发过程的主要生产力杀手之一。毫无必要的会议、毫无必要的要求、毫无必要的过程和毫无必要的文件成为最常见和最危险的浪费。

文章出自:伯乐在线

英文出自:Alberto Gutierrez

 

 

小米汽车车载多摄像头视频链路深度解析 | MAX96792/MAX96724/MAX96781 实战分享 通过合理的输入输出规划 + 虚拟通道管理 + 加串行策略,可以在成本和性能之间取得最佳平衡,这就是多摄像头系统设计的核心精髓。 阅读详情

相关推荐

【Ensp】FTP服务器设置和FTP解析

大部分的多媒体多媒体应用协议,如SIP,FTP,NetMeeting协议等,使用约定的固定端口来初始化一个控制连接,再动态地选择端口用于数据传输,并且这些端口选择是不可预测的。在防火墙设置时,可以通过ASPF(应用层报文过滤)中的Server Map表来满足多通道协议的正常工作,它正常检测应用层报文信息,并动态地根据报文内容创建和删除临时的Server Map表项,以允许其它非约定端口通过防火墙。(5)我们可以在路由器或能访问ftp服务器的设备上,通过cli命令行的方式来访问ftp服务器。

进击的小小白 1862

敏捷宣言遵循的原则

转自:http://agilemanifesto.org/iso/zhchs/principles.html 当在团队中或者平时和一些其它的程序员聊天中聊起了“敏捷开发”这个话题,但是问起敏捷开发是什么时,大多是不知所云,只知道敏捷开发”快速“的一面,而忽略了敏捷开发”可持续“的一面 我们遵循以下原则: 我们最重要的目标,是通过持续不断地 及早交付有价值的软件使客户满意。欣然面对需求变化,即

oujiangping的博客 477

从ET到PT阶段:一文详解汽车零部件DV与PV测试的完整流程(含常见问题解析)

本文深入解析汽车零部件开发中的DV(设计验证)与PV(性能验证)测试全流程,涵盖从ET到PT阶段的关键技术要点与常见问题解决方案。针对车载开发工程师,提供实战指南与优化策略,帮助提升零部件质量与生产效率,确保符合行业标准与市场需求。

weixin_29273849的博客 782

历史:敏捷宣言诞生记

  历史:敏捷宣言诞生记 译者按 本文译自:http://www.agilemanifesto.org/history.html。要想了解敏捷软件开发,这篇文章是必读,对学习敏捷中的不少疑惑都给出了解释。感谢@AgileCoach和@徐毅-Kaveri的审校。 正文 2001年2月11日至13日,在美国犹他州瓦萨奇山雪鸟滑雪胜地,17个人聚到一起,交谈、滑雪、休闲,当然还有聚餐。他们试图...

weixin_33912246的博客 282

Windows server 2012R2安装Oracle11g

打开 开始——所有程序——Oracle-OraDb11g_home1——配置和移植工具——Database Configuration Assistant。打开 开始——所有程序——Oracle-OraDb11g_home1——配置和移植工具——Net Configuration Assistant。首先打开Oracle的安装位置找到下面的位置找到tnsnames.ora文件右键编辑。打开Oracle的安装位置找到下面的位置找到tnsnames.ora文件右键编辑。选择仅安装数据库软件。

qq_74770105的博客 3595

什么是PON(无源光纤网络)、PON的发展及演进

全球知名媒体Omdia在光纤和铜缆接入设备预测报告中对2022年2月的预测显示,PON设备端口收入预计在2020年至2027年期间以12.3%的年复合增长率增长,到2027年将达到163亿美元,远高于2020年的82亿美元。 此前,Omdia有份报告称,在3月份举行的美国OFC展会中,众多 CSP 正在顺利部署 XGS PON(10G 对称),其他 CSP 专注于基于 GPON 的低速 FTTH 服务。另外关于25G PON 和 50G PON 之间的争论仍在继续,而Omdia 认为 25G PON 和 5

4929

Agile敏捷开发模式

Agile敏捷开发模式

述而不作 1693

正负数据如何归一化_生信干货 | LC-MS代谢组学QI软件下机数据代谢物筛选和归一化如何做?...

上海·2019第一届多层组学前言技术发展华东区客户研讨会倒计时1天LC-MS非靶向代谢组学数据下机啦~~拿到一堆数据怎么办?不会高端代码,也不会自己写脚本,我怎么处理数据?​本期小编带来了LC-MS非靶向代谢组学下机数据处理实用干货,包括:下机定性结果表格的解析、代谢物筛选如何做?以及定量数据如何做归一化?实用干货,赶紧来抢~~话不多说,赶紧来学习吧~~非靶向LC-MS代谢组学的分析流程LC-MS...

weixin_36441329的博客 2983

敏捷开发以及开发人员与数据库管理员的联系

作者:Scott Ambler 现在数据库管理员应该用已在开发人员领域中采用的“敏捷”技巧来更新他们的技能 与以一种敏捷和渐进(重复并增加)的方式工作的现代开发人员不同,大多数数据库管理员趋向于以一种“串行”的方式工作。但随着面向服务应用程序 (SOA) 潜在地改变软件开发的特性,数据库管理员必须和它一起改变。 “敏捷”软件开发技巧的采用可能成为这个过程中的一个重要的因素。开发人员不仅使用了新的技

How To Fly -- PF's Blog 2336

Python之achatbot包语法、参数和实际应用案例

本书是一本PyTorch深度学习实战指南,分为基础(前6章)和进阶(后5章)两大部分。基础部分涵盖张量运算、神经网络、数据预处理及CNN等核心内容;进阶部分则深入图像、文本、音频建模技术,重点解析Transformer架构及大语言模型开发。全书采用"理论+实践"模式,适合从零基础到进阶的PyTorch学习者。

王国平的博客 631

SAP BOM批量反查代码分享

SAP BOM反查批量查询代码分享

我小时候很黑的博客 4967

My ten development principles

1.客户至上 “如果我们没有关注客户……其他人将会取代我们。” 从客户的角度出发,客户首先会把焦点集中在产品开发的真正价值,其他方面(例如概念、需求、技术等等)在项目中是次要的。 不关注客户,就是程序员常犯的5个非技术性错误的其中之一。 2.代码质量 即使代码质量是一些

nowgoant的专栏 559

【Flink】FlinkSQL如何触发执行计算

Table (通过 StatementSet.addInsert() 输出给某个 Sink)和 INSERT 语句 (通过调用 StatementSet.addInsertSql())会先被缓存到 StatementSet 中,StatementSet.execute() 方法被调用时,所有的 sink 会被优化成一张有向无环图。该方法是用来将一个表的内容插入到目标表中,一旦该方法被调用, TABLE API 程序立即被翻译。该方法是用来执行一个 SQL 语句,一旦该方法被调用, SQL 语句立即被翻译。

一杯咖啡半杯糖的博客 1006

敏捷开发修炼之道

摘出一些序言里面的有意思的观点: 习惯比实践更有味道,流水不腐,户枢不蠹。厨房脏了,就擦一下,总比等满墙都是油烟,然后再去清理的代价要小的多。回顾,测试,重构等有利于团队建设,以及提高生产力的实践要经常、频繁的做,进而变成习惯。 李笑来老师在《和时间做朋友》一书中提到。所有学习上的成功都只靠两件事,策略和坚持,而坚持本身就应该是最重要的策略之一,但是现实是,我们给自己制定...

weixin_30586257的博客 80

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

《Oracle 9i & 10g编程艺术》学习笔记之Tom大湿精彩语录

============================================================《Oracle9i&10g编程艺术-深入数据库体系结构》学习笔记之 To...

cthbl797150的博客 214

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

智能体工程中 10 个“一开始就该避免”的设计错误

也正因为如此,金加德的方法论才能在技术社区中持续被讨论和搜索,因为它并不是在教“怎么用 AI”,而是在教“如何让智能体系统不崩”。金加德老师在智能体工程方法论中,之所以反复强调“系统先于模型”,正是因为这些错误一旦在早期出现,后期几乎无法通过补丁彻底修复。很多工程问题,在单 Agent 阶段还勉强可控,但一旦引入多个智能体,状态组合和交互路径会呈指数级增长,系统立刻变得不可调试。金加德在讲智能体与业务系统的关系时,反复强调:智能体应该是“能力模块”,而不是“业务大脑”。,这是系统可维护性的根本前提。

2201_76121800的博客 377

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

[翻译]工作六年后,对软件开发的一些新观点

一个人的智力是否属于上乘,要看脑子里能否同时容纳两种相反的思想而无碍其处世行事;今天 pshu 翻译了一位有 6 年工作经验的软件工程师的观点。希望这些立场鲜明的观点可以成为你提高大脑容量...

qq_42152577的博客 213

程序员应该遵守的 10 个编程原则

主要的编程思想及设计模式,程序员拥有一个较好的编程原则能使他的编程能力有大幅的提升,可以使其开发出维护性高、缺陷更少的代码。

hpx666的博客 1075

【观点】优秀程序设计的18大原则

【优快云编译】良好的编程原则与良好的设计工程原则密切相关。本文总结的这些设计原则,帮助开发者更有效率的编写代码,并帮助成为一名优秀的程序员。 1.避免重复原则(DRY - Don’t repeat yourself) 编程的最基本原则是避免重复。在程序代码中总会有很多结构体,如循环、函数、类等等。一旦你重复某个语句或概念,就会很容易形成一个抽象体。 2.抽象原则(Abstrac

z_play_du 693

如何成为专家-让你的观点持久

观点会一产生便非常有趣还是人使得他们有趣?---戴维.海斯 你有两种和人交流观点的方式: 1.告诉人门你点观点对你而言是多么的有趣——很简单,但不幸的是,因为他人的不感冒,不了解或不同意,你的观点将被废止; 2.让你的观点变得生动而有趣,当然,对于其他人——很困难,但是其他人很可能因此而愿意给予你关注,理解并记住你的观点,并对你的观点做出反应。 接下来的这篇文章是写给对选项二有兴趣的人。

爱冒险的技术宅 2110

《第四届数字信任大会》精彩观点:大语言模型10大风险 2025与治理实践

摘要:本文基于ISACA中国2025年度大会演讲内容,重点探讨大语言模型(LLM)安全风险及治理框架。首先列出OWASP发布的LLM十大风险,包括提示注入、数据泄露等新型安全威胁。其次介绍ISO/IEC发布的AI治理国际标准,包括风险管理指南(23894)和首个AI管理体系标准(42001)。最后解析欧盟《AI法案》合规要求,并提出实施AI管理体系的关键步骤:明确角色定位、制定AI管理方针、开展风险评估等。全文系统阐述了AI安全风险、国际治理标准与合规实践三大核心议题。(149字)

ISACAChina的博客 1357

设计模式六大原则之:‌里氏替换原则

里氏替换原则LSP)是面向对象设计的基本原则之一,它确保在软件系统中,当使用一个子类对象替换一个基类对象时,程序的行为保持不变。‌ 这一原则是面向对象程序设计(Object-Oriented Programming, OOP)中的一个重要概念,它强调了子类必须能够替换其基类,而不会导致程序功能或行为的变化。里氏替换原则的主要目的是确保软件的可维护性可扩展性和健壮性,同时降低需求变更时引入的风险。里氏替换原则的具体含义可以概括为以下几点‌子类必须能够替换其基类‌。

在技术的广袤天地里,本博客如精准罗盘。剖析前沿科技,深掘代码奥秘,以精炼笔触,带您穿越复杂技术迷宫,速达知识彼岸。 3079

工作六年后,对软件开发的一些新观点

凌云时刻一个人的智力是否属于上乘,要看脑子里能否同时容纳两种相反的思想而无碍其处世行事;今天 pshu 翻译了一位有 6 年工作经验的软件工程师的观点。希望这些立场鲜明的观点可以成为你提高...

云布道师 344

程序员应该遵守的 10 个编程原则,你掌握了几个?

大家好,我是煎鱼。程序员拥有一个较好的编程原则能使他的编程能力有大幅的提升,可以使其开发出维护性高、缺陷更少的代码。以下内容梳理自 StactOverflow 的一个问题:编程时你最先考虑的准则是什么?本文目录:KISS(Keep It Simple Stupid)DRY(Don’t Repeat Yourself)YAGNI – You ain’t gonna need itCode For T...

EDDYCJY的博客 1307

产品设计初期需要注意什么? 这10项原则让你事半功倍

每个新产品都以一个简单的想法开始。但在激烈的创造过程中,事情会很快变得繁杂。当焦点从全局转向细节,大脑就会不断涌现新思路,视野也会像热气球一样膨胀。 在产品开发方面,我实际犯过的错误其实远比我承认的多。有时候我会把事情过度复杂化、过度设计、以及过度承诺,然后给产品带来灾难性的“毁灭”。但从每次失败中,都能使我更清晰明确:到底做什么更有效。 随着经验,我归纳总结出一套原则来支持我的决定,比如要做什么...

Lemonliyi的博客 847

《Unity 3D游戏开发》一书整理的30个核心观点

书中强调,组件化设计遵循“组合优于继承”的原则。书中强调,组件化设计遵循“组合优于继承”的原则。“Rigidbody组件的Mass(质量)、Drag(空气阻力)和Angular Drag(旋转阻力)需根据场景比例调整,避免物体‘漂浮’或‘过重’。“Awake()在脚本实例化时调用,Start()在首次帧更新前调用,Update()每帧调用——理解这些顺序是避免逻辑错误的关键。“Awake()在脚本实例化时调用,Start()在首次帧更新前调用,Update()每帧调用——理解这些顺序是避免逻辑错误的关键。

2502_90516142的博客 969
上一篇: VS2008 MFC对话框工程中,在对话框中添加ActiveX控件生成类的问题
下一篇: 怎样招聘出色的产品经理
SevenColorFish
博客等级 码龄22年 53粉丝 8原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值